Articulo de referencia

Arquitectura orientada a servicios

En ingeniería de software , la arquitectura orientada a servicios ( SOA ) es un estilo arquitectónico que se centra en servicios discretos en lugar de un diseño monolítico . [ 1...

Escucha este artículo

En ingeniería de software , la arquitectura orientada a servicios ( SOA ) es un estilo arquitectónico que se centra en servicios discretos en lugar de un diseño monolítico . [ 1 ] SOA es una buena opción para la integración de sistemas . [ 2 ] Por consiguiente, también se aplica en el campo del diseño de software, donde los componentes de la aplicación proporcionan servicios a otros componentes mediante un protocolo de comunicación en red. Un servicio es una unidad discreta de funcionalidad a la que se puede acceder de forma remota, sobre la que se puede actuar y que se puede actualizar de forma independiente, como por ejemplo, consultar un extracto de tarjeta de crédito en línea. SOA también pretende ser independiente de proveedores, productos y tecnologías. [ 3 ]

La orientación al servicio es una forma de pensar en términos de servicios y desarrollo basado en servicios y los resultados de los servicios. [ 1 ]

Un servicio tiene cuatro propiedades según una de las muchas definiciones de SOA: [ 4 ]

  1. Representa lógicamente una actividad empresarial repetible con un resultado específico.
  2. Es autónomo.
  3. Para sus consumidores, se trata de una caja negra , lo que significa que el consumidor no tiene por qué estar al tanto del funcionamiento interno del servicio.
  4. Puede estar compuesto por otros servicios. [ 5 ]

Se pueden utilizar diferentes servicios en conjunto como una malla de servicios para proporcionar la funcionalidad de una aplicación de software de gran tamaño , [ 6 ] un principio que la SOA comparte con la programación modular . La arquitectura orientada a servicios integra componentes de software distribuidos, mantenidos y desplegados por separado. Se habilita mediante tecnologías y estándares que facilitan la comunicación y la cooperación de los componentes a través de una red, especialmente a través de una red IP.

SOA se relaciona con el concepto de API ( interfaz de programación de aplicaciones ), una interfaz o protocolo de comunicación entre diferentes partes de un programa informático, cuyo objetivo es simplificar la implementación y el mantenimiento del software. Una API puede considerarse el servicio, y SOA la arquitectura que permite que dicho servicio funcione.

Cabe señalar que la arquitectura orientada a servicios no debe confundirse con la arquitectura basada en servicios, ya que son dos estilos arquitectónicos diferentes. [ 7 ]

Descripción general

En SOA, los servicios utilizan protocolos que describen cómo transmiten y analizan los mensajes mediante metadatos de descripción . Estos metadatos describen tanto las características funcionales del servicio como las de calidad. La arquitectura orientada a servicios (SOA) busca permitir a los usuarios combinar grandes bloques de funcionalidad para formar aplicaciones construidas exclusivamente a partir de servicios existentes, combinándolos de forma ad hoc. Un servicio presenta una interfaz sencilla al solicitante que abstrae la complejidad subyacente, actuando como una caja negra. Además, los usuarios pueden acceder a estos servicios independientes sin necesidad de conocer su implementación interna. [ 8 ]

Definición de conceptos

El término de moda relacionado, orientación a servicios, promueve un acoplamiento flexible entre servicios. SOA separa las funciones en unidades distintas, o servicios, [ 9 ] que los desarrolladores hacen accesibles a través de una red para permitir a los usuarios combinarlas y reutilizarlas en la producción de aplicaciones. Estos servicios y sus consumidores correspondientes se comunican entre sí mediante el intercambio de datos en un formato compartido y bien definido, o mediante la coordinación de una actividad entre dos o más servicios. [ 10 ]

SOA puede considerarse parte del continuo que abarca desde el concepto más antiguo de computación distribuida [ 9 ] [ 11 ] y programación modular , pasando por SOA, hasta prácticas como mashups , SaaS y computación en la nube (que algunos consideran descendientes de SOA). [ 12 ]

Principios

No existen estándares de la industria en relación con la composición exacta de una arquitectura orientada a servicios, aunque muchas fuentes de la industria han publicado sus propios principios. Algunos de estos [ 13 ] [ 14 ] [ 15 ] incluyen los siguientes:

Contrato de servicio estandarizado [ 16 ]
Los servicios se rigen por un acuerdo de comunicaciones estándar, definido colectivamente por uno o más documentos de descripción de servicios dentro de un conjunto determinado de servicios.
Autonomía de referencia de servicio (un aspecto del acoplamiento flexible)
La relación entre los servicios se reduce al mínimo, hasta el punto de que apenas son conscientes de su existencia.
Transparencia en la ubicación del servicio (un aspecto del acoplamiento flexible)
Se puede acceder a los servicios desde cualquier punto de la red en la que se encuentren, independientemente de su ubicación.
longevidad del servicio
Los servicios deben diseñarse para ser duraderos. Siempre que sea posible, deben evitarse los cambios que puedan suponer para los consumidores si no necesitan nuevas funcionalidades; si usted llama a un servicio hoy, debería poder llamar al mismo mañana.
Abstracción de servicio
Los servicios funcionan como cajas negras, es decir, su lógica interna está oculta para los consumidores.
Autonomía del servicio
Los servicios son independientes y controlan la funcionalidad que encapsulan, tanto desde la perspectiva del diseño como desde la del tiempo de ejecución.
apatridia del servicio
Los servicios no tienen estado, es decir, o bien devuelven el valor solicitado o bien generan una excepción, minimizando así el uso de recursos.
Granularidad del servicio
Un principio para asegurar que los servicios tengan un tamaño y alcance adecuados. La funcionalidad que el servicio proporciona al usuario debe ser relevante.
Normalización del servicio
Los servicios se descomponen o consolidan (normalizan) para minimizar la redundancia. En algunos casos, esto puede no hacerse. Estos son los casos en los que se requiere optimización del rendimiento, acceso y agregación. [ 17 ]
Componibilidad de servicios
Los servicios pueden utilizarse para componer otros servicios.
descubrimiento de servicios
Los servicios se complementan con metadatos comunicativos que permiten descubrirlos e interpretarlos de forma eficaz.
Reutilización del servicio
La lógica se divide en varios servicios para fomentar la reutilización del código.
Encapsulación de servicios
Muchos servicios que inicialmente no estaban previstos bajo SOA, pueden encapsularse o pasar a formar parte de SOA.

Patrones

Cada bloque de construcción SOA puede desempeñar cualquiera de los tres roles:

proveedor de servicios
Crea un servicio web y proporciona su información al registro de servicios. Cada proveedor debate sobre muchos aspectos, como qué servicio exponer, a cuál darle mayor importancia (seguridad o fácil disponibilidad), qué precio ofrecer y muchos más . El proveedor también debe decidir en qué categoría debe figurar el servicio para un servicio de corretaje determinado [ 18 ] y qué tipo de acuerdos de socios comerciales se requieren para utilizar el servicio.
Agente de servicios, registro de servicios o repositorio de servicios
Su principal función es poner a disposición de cualquier solicitante información sobre el servicio web. Quien implementa el intermediario decide su alcance. Los intermediarios públicos están disponibles en cualquier lugar, pero los privados solo están disponibles para un número limitado de usuarios. UDDI fue un intento inicial, que ya no recibe soporte activo, de proporcionar descubrimiento de servicios web .
Solicitante/consumidor del servicio
El sistema localiza las entradas en el registro del intermediario mediante diversas operaciones de búsqueda y, a continuación, se conecta al proveedor de servicios para invocar uno de sus servicios web. Los consumidores deben acceder al servicio que necesiten a través del intermediario, vincularlo con el servicio correspondiente y, posteriormente, utilizarlo. Pueden acceder a varios servicios si el proveedor ofrece múltiples opciones.

La relación entre el consumidor y el proveedor de servicios se rige por un contrato de servicio estandarizado , [ 19 ] que tiene una parte comercial, una parte funcional y una parte técnica.

Los patrones de composición de servicios tienen dos estilos arquitectónicos amplios y de alto nivel: coreografía y orquestación . Los patrones de integración empresarial de nivel inferior que no están ligados a un estilo arquitectónico particular siguen siendo relevantes y válidos en el diseño de SOA. [ 20 ] [ 21 ] [ 22 ]

Enfoques de implementación

La arquitectura orientada a servicios se puede implementar con servicios web o microservicios . [ 23 ] Esto se hace para que los bloques funcionales sean accesibles a través de protocolos de Internet estándar, independientes de plataformas y lenguajes de programación. Estos servicios pueden representar nuevas aplicaciones o simplemente envoltorios para sistemas heredados existentes, con el fin de habilitarlos para la red. [ 24 ]

Los implementadores suelen construir SOA utilizando estándares de servicios web. Un ejemplo es SOAP , que ha obtenido una amplia aceptación en la industria tras la recomendación de la versión 1.2 por parte del W3C [ 25 ] (World Wide Web Consortium) en 2003. Estos estándares (también conocidos como especificaciones de servicios web ) también proporcionan una mayor interoperabilidad y cierta protección contra la dependencia de software propietario de proveedores. Sin embargo, también se puede implementar SOA utilizando cualquier otra tecnología basada en servicios, como Jini , CORBA , Internet Communications Engine , REST o gRPC .

Las arquitecturas pueden funcionar independientemente de tecnologías específicas y, por lo tanto, pueden implementarse utilizando una amplia gama de tecnologías, entre las que se incluyen:

Las implementaciones pueden utilizar uno o más de estos protocolos y, por ejemplo, podrían emplear un mecanismo de sistema de archivos para comunicar datos siguiendo una especificación de interfaz definida entre procesos que se ajustan al concepto SOA. La clave reside en servicios independientes con interfaces definidas que pueden invocarse para realizar sus tareas de forma estandarizada, sin que el servicio tenga conocimiento previo de la aplicación que lo invoca, y sin que la aplicación tenga o necesite saber cómo el servicio realiza realmente sus tareas. SOA permite el desarrollo de aplicaciones que se construyen combinando servicios interoperables y débilmente acoplados .

Estos servicios interactúan basándose en una definición formal (o contrato, por ejemplo, WSDL) que es independiente de la plataforma subyacente y del lenguaje de programación. La definición de la interfaz oculta la implementación del servicio específico del lenguaje. Por lo tanto, los sistemas basados ​​en SOA pueden funcionar independientemente de las tecnologías y plataformas de desarrollo (como Java, .NET, etc.). Los servicios escritos en C# que se ejecutan en plataformas .NET y los servicios escritos en Java que se ejecutan en plataformas Java EE , por ejemplo, pueden ser consumidos por una aplicación compuesta común (o cliente). Las aplicaciones que se ejecutan en cualquiera de las plataformas también pueden consumir servicios que se ejecutan en la otra como servicios web que facilitan la reutilización. Los entornos gestionados también pueden encapsular sistemas heredados COBOL y presentarlos como servicios de software . [ 26 ]

Los lenguajes de programación de alto nivel, como BPEL , y las especificaciones, como WS-CDL y WS-Coordination, amplían el concepto de servicio al proporcionar un método para definir y respaldar la orquestación de servicios de grano fino en servicios empresariales de grano más grueso, que los arquitectos pueden, a su vez, incorporar en flujos de trabajo y procesos empresariales implementados en aplicaciones compuestas o portales .

El modelado orientado a servicios (SOMF) es un marco de trabajo SOA que identifica las diversas disciplinas que guían a los profesionales de SOA para conceptualizar, analizar, diseñar y desarrollar sus activos orientados a servicios. El marco de modelado orientado a servicios (SOMF) ofrece un lenguaje de modelado y una estructura de trabajo o "mapa" que representa los diversos componentes que contribuyen a un enfoque de modelado orientado a servicios exitoso. Ilustra los elementos principales que identifican los aspectos "qué hacer" de un esquema de desarrollo de servicios. El modelo permite a los profesionales elaborar un plan de proyecto e identificar los hitos de una iniciativa orientada a servicios. SOMF también proporciona una notación de modelado común para abordar la alineación entre las organizaciones de negocio y de TI.

Elementos de SOA, por Dirk Krafzig, Karl Banke y Dirk Slama [ 27 ]
Metamodelo SOA, The Linthicum Group, 2007

Beneficios para la organización

Algunos arquitectos empresariales creen que la SOA puede ayudar a las empresas a responder de forma más rápida y rentable a las cambiantes condiciones del mercado. [ 28 ] Este estilo de arquitectura promueve la reutilización a nivel macro (servicio) en lugar de a nivel micro (clases). También puede simplificar la interconexión y el uso de los activos de TI (heredados) existentes.

Con SOA, la idea es que una organización pueda abordar un problema de forma holística. Una empresa tiene mayor control general. Teóricamente, no habría una multitud de desarrolladores utilizando las herramientas que les plazcan, sino que programarían según un estándar establecido por la empresa. También pueden desarrollar una SOA a nivel empresarial que encapsule una infraestructura orientada al negocio. SOA también se ha comparado con un sistema de autopistas que proporciona eficiencia a los conductores. La idea es que si todos tuvieran un coche, pero no hubiera autopistas, todo sería limitado y desorganizado, dificultando cualquier intento de llegar a cualquier lugar de forma rápida y eficiente. El vicepresidente de servicios web de IBM, Michael Liebow, afirma que SOA "construye autopistas". [ 29 ]

En cierto modo, SOA podría considerarse una evolución arquitectónica más que una revolución. Incorpora muchas de las mejores prácticas de arquitecturas de software anteriores. En los sistemas de comunicaciones, por ejemplo, se ha desarrollado poco el uso de enlaces estáticos para comunicarse con otros equipos de la red. Al adoptar un enfoque SOA, estos sistemas pueden priorizar la importancia de interfaces bien definidas y altamente interoperables. Otros precursores de SOA incluyen la ingeniería de software basada en componentes y el análisis y diseño orientado a objetos (OOAD) de objetos remotos, como CORBA .

Un servicio comprende una unidad de funcionalidad independiente, accesible únicamente a través de una interfaz definida formalmente. Los servicios pueden ser una especie de "nanoempresas" fáciles de producir y mejorar. Asimismo, pueden ser "megacorporaciones", formadas por el trabajo coordinado de servicios subordinados.

Entre las razones para tratar la implementación de servicios como proyectos separados de proyectos más grandes se incluyen:

  1. La separación promueve en la empresa la idea de que los servicios pueden entregarse de forma rápida e independiente de los proyectos más grandes y de menor duración que son habituales en la organización. La empresa comienza a comprender los sistemas y las interfaces de usuario simplificadas que utilizan los servicios. Esto fomenta la agilidad ; es decir, impulsa la innovación empresarial y acelera el tiempo de comercialización. [ 30 ]
  2. La separación promueve el desacoplamiento de los servicios de los proyectos que los consumen. Esto fomenta un buen diseño, ya que el servicio se diseña sin conocer quiénes son sus consumidores.
  3. La documentación y los artefactos de prueba del servicio no están integrados en los detalles del proyecto general. Esto es importante cuando el servicio necesita ser reutilizado posteriormente.

SOA promete simplificar las pruebas indirectamente. Los servicios son autónomos, sin estado, con interfaces completamente documentadas y separados de las preocupaciones transversales de la implementación. Si una organización posee datos de prueba definidos adecuadamente, se crea un stub correspondiente que reacciona a dichos datos durante la creación del servicio. También se captura un conjunto completo de pruebas de regresión, scripts, datos y respuestas para el servicio. Este puede probarse como una "caja negra" utilizando stubs existentes que corresponden a los servicios a los que llama. Se pueden construir entornos de prueba donde los servicios primitivos y fuera del alcance son stubs, mientras que el resto de la malla son implementaciones de prueba de servicios completos. Dado que cada interfaz está completamente documentada con su propio conjunto completo de documentación de pruebas de regresión, resulta sencillo identificar problemas en los servicios de prueba. Las pruebas evolucionan para simplemente validar que el servicio de prueba opera de acuerdo con su documentación y detectan deficiencias en la documentación y los casos de prueba de todos los servicios dentro del entorno. La gestión del estado de los datos de los servicios idempotentes es la única complejidad.

Los ejemplos pueden resultar útiles para documentar un servicio hasta el nivel en que se vuelve útil. La documentación de algunas API dentro del Proceso de la Comunidad Java proporciona buenos ejemplos. Dado que son exhaustivos, el personal normalmente solo utilizaría subconjuntos importantes. El archivo 'ossjsa.pdf' dentro de JSR-89 ejemplifica un archivo de este tipo. [ 31 ]

Aplicaciones

Aunque la arquitectura orientada a servicios (SOA) se utiliza ampliamente en infraestructuras corporativas y gubernamentales a gran escala, varias plataformas destacadas demuestran su valor en la federación de servicios específicos de dominio para la investigación y la colaboración global:

  • Cancer Biomedical Informatics Grid (caBIG) : Una iniciativa creada por el Instituto Nacional del Cáncer de EE. UU. que utilizó SOA para federar herramientas bioinformáticas y datos clínicos. Al integrar diversos recursos médicos como servicios estandarizados, permitió a los investigadores del cáncer de diferentes instituciones compartir y analizar datos dentro de una red unificada. [ 32 ]
  • Observatorio Virtual (VO) : Una colección de archivos de datos y herramientas de software interoperables en astronomía. Utiliza principios SOA para federar diversas bases de datos astronómicas y herramientas de análisis distribuidas en observatorios globales, lo que permite a los investigadores consultar y procesar datos sin problemas como si se tratara de un único sistema transparente. [ 33 ]
  • Language Grid : Una plataforma de servicios multilingües que utiliza SOA para federar recursos lingüísticos dispares, como motores de traducción automática y diccionarios en línea, distribuidos mundialmente. Al encapsular estos recursos heterogéneos como servicios web estandarizados, la plataforma permite a los usuarios y las comunidades crear herramientas de comunicación intercultural personalizadas. [ 34 ]

Crítica

SOA se ha confundido con los servicios web ; [ 35 ] sin embargo, los servicios web son solo una opción para implementar los patrones que componen el estilo SOA. En ausencia de formas nativas o binarias de llamada a procedimiento remoto (RPC), las aplicaciones podrían ejecutarse más lentamente y requerir más potencia de procesamiento, aumentando los costos. La mayoría de las implementaciones incurren en estos gastos generales, pero SOA puede implementarse utilizando tecnologías (por ejemplo, Java Business Integration (JBI), Windows Communication Foundation (WCF) y el servicio de distribución de datos (DDS)) que no dependen de llamadas a procedimiento remoto ni de la traducción a través de XML o JSON. Al mismo tiempo, las tecnologías emergentes de análisis XML de código abierto (como VTD-XML ) y varios formatos binarios compatibles con XML prometen mejorar significativamente el rendimiento de SOA. [ 36 ] [ 37 ] [ 38 ]

Los servicios con estado requieren que tanto el consumidor como el proveedor compartan el mismo contexto específico del consumidor, el cual se incluye o se referencia en los mensajes intercambiados entre ambos. Esta restricción tiene el inconveniente de que podría reducir la escalabilidad general del proveedor de servicios si este necesita conservar el contexto compartido para cada consumidor. También aumenta el acoplamiento entre el proveedor y el consumidor y dificulta el cambio de proveedor. [ 39 ] En última instancia, algunos críticos consideran que los servicios SOA aún están demasiado limitados por las aplicaciones que representan. [ 40 ]

Un desafío fundamental para la arquitectura orientada a servicios (SOA) es la gestión de metadatos. Los entornos basados ​​en SOA incluyen numerosos servicios que se comunican entre sí para realizar tareas. Dado que el diseño puede implicar múltiples servicios trabajando conjuntamente, una aplicación puede generar millones de mensajes. Además, los servicios pueden pertenecer a diferentes organizaciones o incluso a empresas competidoras, lo que genera un grave problema de confianza. Por lo tanto, la gobernanza de SOA entra en juego. [ 41 ]

Otro problema importante al que se enfrenta SOA es la falta de un marco de pruebas uniforme. No existen herramientas que proporcionen las características necesarias para probar estos servicios en una arquitectura orientada a servicios. Las principales causas de la dificultad son: [ 42 ]

  • Heterogeneidad y complejidad de la solución.
  • Gran variedad de combinaciones de pruebas debido a la integración de servicios autónomos.
  • Inclusión de servicios de proveedores diferentes y competidores.
  • La plataforma está en constante evolución debido a la disponibilidad de nuevas funciones y servicios.

Extensiones y variantes

Arquitectura basada en eventos

Interfaces de programación de aplicaciones

Las interfaces de programación de aplicaciones (API) son los marcos de trabajo a través de los cuales los desarrolladores pueden interactuar con una aplicación web.

Web 2.0

Tim O'Reilly acuñó el término " Web 2.0 " para describir un conjunto de aplicaciones web que, según se percibe, está creciendo rápidamente. [ 43 ] Un tema que ha recibido amplia cobertura es la relación entre la Web 2.0 y las arquitecturas orientadas a servicios.

SOA es la filosofía de encapsular la lógica de las aplicaciones en servicios con una interfaz uniformemente definida y hacerlos accesibles públicamente mediante mecanismos de descubrimiento. La noción de ocultar la complejidad y reutilizar servicios, así como el concepto de acoplamiento flexible, ha inspirado a los investigadores a profundizar en las similitudes entre SOA y Web 2.0, y sus respectivas aplicaciones. Algunos argumentan que Web 2.0 y SOA tienen elementos significativamente diferentes y, por lo tanto, no pueden considerarse "filosofías paralelas", mientras que otros consideran que ambos conceptos son complementarios y ven a Web 2.0 como la SOA global. [ 44 ]

Las filosofías de Web 2.0 y SOA satisfacen diferentes necesidades de los usuarios y, por lo tanto, exponen diferencias con respecto al diseño y también las tecnologías utilizadas en aplicaciones del mundo real. Sin embargo, a partir de 2008Los casos de uso demostraron el potencial de combinar tecnologías y principios tanto de Web 2.0 como de SOA. [ 44 ]

Microservicios

Los microservicios son una interpretación moderna de las arquitecturas orientadas a servicios (SOA) utilizadas para construir sistemas de software distribuidos . Los servicios en una arquitectura de microservicios [ 45 ] son ​​procesos que se comunican entre sí a través de la red para lograr un objetivo. Estos servicios utilizan protocolos independientes de la tecnología [ 46 ] , lo que facilita la elección del lenguaje y los marcos de trabajo, convirtiendo su selección en una cuestión interna del servicio. Los microservicios representan un nuevo enfoque de implementación y realización de SOA, que se popularizó a partir de 2014 (y tras la introducción de DevOps ), y que también enfatiza el despliegue continuo y otras prácticas ágiles [ 47 ] .

No existe una definición única y comúnmente aceptada de microservicios. En la literatura se pueden encontrar las siguientes características y principios:

  • interfaces de grano fino (para servicios que se pueden implementar de forma independiente),
  • desarrollo impulsado por el negocio (por ejemplo, diseño impulsado por el dominio ),
  • Arquitecturas de aplicaciones en la nube IDEALES,
  • Programación políglota y persistencia,
  • despliegue ligero de contenedores,
  • entrega continua descentralizada y
  • DevOps con monitorización integral del servicio.

Arquitecturas orientadas a servicios para aplicaciones interactivas

Las aplicaciones interactivas que requieren tiempos de respuesta en tiempo real, como las aplicaciones 3D interactivas de baja latencia, utilizan arquitecturas orientadas a servicios específicas que satisfacen las necesidades particulares de este tipo de aplicaciones. Estas incluyen, por ejemplo, computación y comunicación distribuidas optimizadas de baja latencia, así como gestión de recursos e instancias. [ 48 ] [ 49 ] [ 50 ]

Véase también

Referencias

  1. 1 2 "SOA Source Book - ¿Qué es SOA?" . collaboration.opengroup.org . Consultado el 30 de marzo de 2021 .
  2. Fundamentos de la arquitectura de software: Un enfoque de ingeniería . O'Reilly Media. 2020. ISBN 978-1492043454.
  3. "Capítulo 1: Arquitectura Orientada a Servicios (SOA)" . msdn.microsoft.com . Archivado del original el 7 de julio de 2017. Consultado el 21 de septiembre de 2016 .
  4. "Estándares de arquitectura orientada a servicios - The Open Group" . www.opengroup.org
  5. "¿Qué es SOA?" . www.opengroup.org . Archivado del original el 19 de agosto de 2016 . Consultado el 21 de septiembre de 2016 .
  6. Velte, Anthony T. (2010). Computación en la nube: un enfoque práctico . McGraw Hill. ISBN 978-0-07-162694-1.
  7. Fundamentos de la arquitectura de software: Un enfoque de ingeniería . O'Reilly Media. 2020. ISBN 978-1492043454.
  8. "Migración a una arquitectura orientada a servicios, Parte 1" . 9 de diciembre de 2008. Archivado del original el 9 de diciembre de 2008. Consultado el 21 de septiembre de 2016 .{{cite web}}: CS1 maint: bot: estado de la URL original desconocido ( enlace )
  9. 1 2 Michael Bell (2008). «Introducción al modelado orientado a servicios». Modelado orientado a servicios: análisis, diseño y arquitectura de servicios . Wiley & Sons. pág . 3. ISBN  978-0-470-14111-3.
  10. Michael Bell (2010). Patrones de modelado SOA para el descubrimiento y análisis orientados a servicios . Wiley & Sons. pág . 390. ISBN  978-0-470-48197-4.
  11. Thomas Erl (junio de 2005). Acerca de los principios . Serviceorientation.org
  12. "Blog de estrategias de plataforma de aplicaciones: SOA ha muerto; ¡Viva los servicios!" . Apsblog.burtongroup.com. 5 de enero de 2009. Archivado del original el 15 de enero de 2009. Consultado el 13 de agosto de 2012 .
  13. Yvonne Balzer, Mejora tus planes de proyecto SOA , IBM , 16 de julio de 2004
  14. Equipo de Microsoft Windows Communication Foundation (2012). "Principios del diseño orientado a servicios" . msdn.microsoft.com . Consultado el 3 de septiembre de 2012 .
  15. Principios de Thomas Erl de SOA Systems Inc.: ocho principios específicos de orientación al servicio.
  16. "4.4 Directrices para el uso de tecnologías de contratos de servicios web: anatomía de un contrato de servicio web" . InformIT . 11 de junio de 2021. Consultado el 9 de septiembre de 2021 .
  17. Tony Shan (2004). «Construcción de una plataforma de banca electrónica orientada a servicios». Conferencia Internacional IEEE sobre Computación de Servicios, 2004 (SCC 2004). Actas. 2004. págs. 237–244 . doi : 10.1109/SCC.2004.1358011 . ISBN  978-0-7695-2225-8. S2CID 13156128 . 2004
  18. Duan, Yucong; Narendra, Nanjangud; Du, Wencai; Wang, Yongzhi; Zhou, Nianjun (2014). "Explorando la intermediación de servicios en la nube desde una perspectiva de interfaz". 2014 IEEE International Conference on Web Services . IEEE . pp. 329–336 . doi : 10.1109/ICWS.2014.55 . ISBN  978-1-4799-5054-6. S2CID 17957063 . 
  19. Duan, Yucong (2012). "Un estudio sobre contratos de servicio". 13.ª Conferencia Internacional ACIS de 2012 sobre Ingeniería de Software, Inteligencia Artificial, Redes y Computación Paralela/Distribuida . IEEE . págs. 805–810 . doi : 10.1109/SNPD.2012.22 . ISBN  978-1-4673-2120-4. S2CID 1837914 . 
  20. Olaf Zimmermann, Cesare Pautasso, Gregor Hohpe, Bobby Woolf (2016). "Una década de patrones de integración empresarial" . IEEE Software . 33 (1): 13– 19. doi : 10.1109/MS.2016.11 .{{cite journal}}: CS1 maint: varios nombres: lista de autores ( enlace )
  21. Rotem-Gal-Oz, Arnon (2012). Patrones SOA . Manning Publications. ISBN 978-1933988269.
  22. Julisch, Klaus; Suter, Christophe; Woitalla, Thomas; Zimmermann, Olaf (2011). "Cumplimiento por diseño: cerrando el abismo entre auditores y arquitectos de TI" (PDF) . Computers & Security . 30 ( 6–7 ): 410–426 . CiteSeerX 10.1.1.390.3652 . doi : 10.1016/j.cose.2011.03.005 . 
  23. Brandner, M., Craes, M., Oellermann, F., Zimmermann, O., Arquitectura orientada a servicios web en la producción en la industria financiera, Informatik-Spektrum 02/2004, Springer-Verlag, 2004
  24. "www.ibm.com" . IBM . Consultado el 10 de septiembre de 2016 .
  25. ^ "SOAP Versión 1.2 の公開について (W3C 勧告)" (en japonés). W3.org. 24 de junio de 2003 . Consultado el 13 de agosto de 2012 .
  26. Okishima, Haruhiru (2006). "Estudio de caso de arquitectura de sistema que utiliza recursos COBOL"" (PDF) .
  27. SOA empresarial . Prentice Hall, 2005
  28. Christopher Koch Un nuevo plan para la empresa Archivado el 16 de enero de 2009 en Wayback Machine , Revista CIO , 1 de marzo de 2005
  29. Elizabeth Millard (enero de 2005). "Construyendo un mejor proceso". Computer User . Página 20.
  30. Brayan Zimmerli (11 de noviembre de 2009) Beneficios empresariales de la SOA , Universidad de Ciencias Aplicadas del Noroeste de Suiza, Escuela de Negocios
  31. "Especificación de la API de activación de servicios OSS JSR-000089, versión final 1.0" . 26 de julio de 2011. Archivado del original el 26 de julio de 2011. Consultado el 18 de mayo de 2024 .
  32. Saltz, Joel; Oster, Scott; Hastings, Shannon; Langella, Stephen; Kurc, Tahsin (2006). "caGrid: diseño e implementación de la arquitectura central de la red de bioinformática oncológica". Bioinformatics . 22 (15): 1910– 1916. doi : 10.1093/bioinformatics/btl324 . PMID 16809386 . 
  33. Quinn, Peter J.; Barnes, David G.; Csabai, Istvan; Cui, Chenzhou; Genova, Francoise; Hanisch, Robert J. (2004). "La Alianza Internacional de Observatorios Virtuales: desarrollos técnicos recientes y el camino a seguir". Actas de la SPIE . 5493 : 137–145 . doi : 10.1117/12.551249 .
  34. Ishida, Toru; Murakami, Yohei; Lin, Donghui; Nakaguchi, Takao; Otani, Masayuki (2018). "Infraestructura de servicios lingüísticos en la web: la red de lenguajes". Computer . 51 (6). IEEE: 72– 81. Bibcode : 2018Compr..51f..72I . doi : 10.1109/MC.2018.2701643 .
  35. Joe McKendrick. "Bray: SOA demasiado complejo; 'pura palabrería de los proveedores'"" . ZDNet.
  36. Jimmy Zhang (20 de febrero de 2008) "Indexar documentos XML con VTD-XML" Archivado el 4 de julio de 2008 en Wayback Machine . XML Journal .
  37. Jimmy Zhang (5 de agosto de 2008) "i-Technology Viewpoint: The Performance Woe of Binary XML" Archivado el 9 de enero de 2020 en Wayback Machine . Microservices Journal .
  38. Jimmy Zhang (9 de enero de 2008) "Manipular contenido XML de la manera Ximple" Archivado el 30 de julio de 2017 en Wayback Machine . devx.com .
  39. "La razón por la que SOA no ofrece software sostenible" . jpmorgenthal.com. 19 de junio de 2009. Consultado el 27 de junio de 2009 .
  40. "Los servicios SOA siguen estando demasiado limitados por las aplicaciones que representan" . ZDNet . 27 de junio de 2009. Consultado el 27 de junio de 2009 .
  41. "Capa de gobernanza" . www.opengroup.org . Archivado del original el 4 de junio de 2016. Consultado el 22 de septiembre de 2016 .
  42. "Cómo probar de manera eficiente la arquitectura orientada a servicios | WSO2 Inc" . wso2.com . Consultado el 22 de septiembre de 2016 .
  43. "¿Qué es la Web 2.0?" . Tim O'Reilly. 30 de septiembre de 2005. Consultado el 10 de junio de 2008 .
  44. 1 2 Christoph Schroth; Till Janner (2007). "Web 2.0 y SOA: conceptos convergentes que posibilitan el Internet de los servicios" . IT Professional . 9 (3): 36– 41. Bibcode : 2007ITPro...9c..36S . doi : 10.1109/MITP.2007.60 . S2CID 2859262. Archivado del original el 3 de diciembre de 2013. Recuperado el 23 de febrero de 2008 . 
  45. Dragoni, Nicola; Giallorenzo, Saverio; Alberto Lluch Lafuente; Mazzara, Manuel; Montesi, Fabricio; Mustafin, Ruslán; Safina, Larisa (2016). "Microservicios: ayer, hoy y mañana". arXiv : 1606.04036v1 [ cs.SE ].
  46. James Lewis y Martin Fowler. "Microservicios" .
  47. Balalaie, A.; Heydarnoori, A.; Jamshidi, P. (1 de mayo de 2016). "La arquitectura de microservicios permite DevOps: migración a una arquitectura nativa de la nube" (PDF) . IEEE Software . 33 (3): 42– 52. Bibcode : 2016ISoft..33c..42B . doi : 10.1109/MS.2016.64 . hdl : 10044/1/40557 . ISSN 0740-7459 . S2CID 18802650 .  
  48. Frank Glinka; Allaithy Raed (2009). «Una interfaz orientada a servicios para aplicaciones distribuidas altamente interactivas» . Conferencia Europea sobre Procesamiento Paralelo . Lecture Notes in Computer Science. Vol. 6043. pp. 266–277 . doi : 10.1007/978-3-642-14122-5_31 . ISBN   978-3-642-14121-8. Consultado el 9 de febrero de 2021 .
  49. Dieter Hildebrandt; Jan Klimke (2011). "Visualización interactiva 3D orientada a servicios de modelos 3D masivos de ciudades en clientes ligeros" . COM.Geo '11: Actas de la 2.ª Conferencia Internacional sobre Computación para la Investigación y Aplicaciones Geoespaciales . p. 1. doi : 10.1145/1999320.1999326 . ISBN  9781450306812. S2CID 53246415 . Consultado el 9 de febrero de 2021 . 
  50. Mahy Aly; Michael Franke (2016). "Motores de medios interactivos orientados a servicios (SOIM) habilitados por el intercambio optimizado de recursos" . Simposio IEEE de 2016 sobre ingeniería de sistemas orientados a servicios (SOSE) . págs. 231–237 . doi : 10.1109/SOSE.2016.47 . hdl : 1854/LU-7215326 . ISBN  978-1-5090-2253-3. S2CID 9511734 . Consultado el 9 de febrero de 2021 . 
  • Mauro, Christian; Leimeister, Jan Marco; Krcmar, Helmut (enero de 2010). «Integración de dispositivos orientada a servicios: un análisis de patrones de diseño SOA» (PDF) . 43.ª Conferencia Internacional de Hawái sobre Ciencias de Sistemas, 2010. págs. 1-10 . doi : 10.1109/HICSS.2010.336 . ISBN  978-1-4244-5509-6. S2CID 457705 . Archivado del original (PDF) el 24 de enero de 2022 . Recuperado el 21 de septiembre de 2021 .