Articulo de referencia

coreografía de servicio

La coreografía de servicios en la informática empresarial es una forma de composición de servicios en la que el protocolo de interacción entre varios servicios asociados se defi...

La coreografía de servicios en la informática empresarial es una forma de composición de servicios en la que el protocolo de interacción entre varios servicios asociados se define desde una perspectiva global. [ 1 ] La idea subyacente a la noción de coreografía de servicios se puede resumir de la siguiente manera:

"Los bailarines bailan siguiendo un escenario global sin un único punto de control".

Es decir, en tiempo de ejecución, cada participante en una coreografía de servicio ejecuta su parte de acuerdo con el comportamiento de los demás participantes. [ 2 ] El rol de una coreografía especifica el comportamiento de mensajería esperado de los participantes que la interpretarán en términos de la secuencia y el momento de los mensajes que pueden consumir y producir. [ 3 ]

La coreografía describe la secuencia y las condiciones en las que se intercambian los datos entre dos o más participantes para lograr algún propósito útil. [ 4 ]

Coreografía y orquestación del servicio

La coreografía de servicios se comprende mejor comparándola con otro paradigma de composición de servicios: la orquestación de servicios . Por un lado, en las coreografías de servicios, la lógica de las interacciones basadas en mensajes entre los participantes se especifica desde una perspectiva global. En la orquestación de servicios, en cambio, la lógica se especifica desde el punto de vista local de un participante controlador, denominado orquestador . En el lenguaje de orquestación de servicios BPEL , por ejemplo, la especificación de la orquestación de servicios (p. ej., el archivo de proceso BPEL) es un flujo de trabajo que se puede implementar en la infraestructura de servicios (p. ej., un motor de ejecución BPEL como Apache ODE ). La implementación de la especificación de orquestación de servicios transforma un flujo de trabajo en un servicio compuesto. [ 5 ]

En cierto sentido, la coreografía y la orquestación de servicios son dos caras de la misma moneda. Por un lado, los roles de una coreografía de servicios pueden extraerse como orquestaciones de servicios mediante un proceso llamado proyección . [ 6 ] Mediante la proyección es posible crear esqueletos , es decir, orquestaciones de servicios incompletas que pueden usarse como bases para crear los servicios web que participan en la coreografía de servicios. Por otro lado, las orquestaciones de servicios ya existentes pueden integrarse en coreografías de servicios.

Representación de coreografías de servicio

Las coreografías de servicio no se ejecutan: se ponen en práctica . Una coreografía de servicio se pone en práctica cuando sus participantes desempeñan sus funciones. [ 7 ] Es decir, a diferencia de la orquestación de servicios, las coreografías de servicio no son gestionadas por algún motor en la infraestructura de servicios, sino que “suceden” cuando se ejecutan sus funciones. Esto se debe a que la lógica de la coreografía de servicio se especifica desde una perspectiva global y, por lo tanto, no se implementa mediante un único servicio como en la orquestación de servicios.

La pregunta clave que gran parte de la investigación sobre coreografía busca responder es la siguiente: Supongamos que se construye una coreografía global que describe las posibles interacciones entre los participantes en una colaboración. ¿Qué condiciones debe cumplir la coreografía para garantizar el éxito de la colaboración ? Aquí, éxito significa que el comportamiento emergente que resulta cuando se lleva a cabo la colaboración, con cada participante actuando de forma independiente según su propio esqueleto , sigue exactamente la coreografía a partir de la cual se proyectaron originalmente los esqueletos. Cuando esto sucede, se dice que la coreografía es realizable . [ 8 ] En general, determinar la realizabilidad de una coreografía es una cuestión no trivial, particularmente cuando la colaboración utiliza mensajería asíncrona y es posible que diferentes participantes envíen mensajes simultáneamente.

Coreografía de servicios lenguajes

En el ámbito de las especificaciones relativas a los servicios web , las siguientes especificaciones se han centrado en definir lenguajes para modelar coreografías de servicios:

Además, la especificación BPMN versión 2.0 de OMG incluye diagramas para modelar coreografías de servicios. [ 9 ]

Las propuestas académicas para lenguajes de coreografía de servicios incluyen:

Además, se han propuesto varios formalismos de coreografía de servicio basados ​​en:

coreografía de servicios web

La coreografía de servicios web ( WS-Choreography ) es una especificación del W3C que define un lenguaje de modelado de procesos de negocio basado en XML que describe protocolos de colaboración entre participantes de servicios web cooperativos , en los que los servicios actúan como pares y las interacciones pueden ser duraderas y mantener estado. ( Orquestación es otro término con un significado muy similar, pero diferente ).

El principal esfuerzo para obtener una coreografía, el Grupo de Trabajo de Coreografía de Servicios Web del W3C, se cerró el 10 de julio de 2009 [ 24 ] dejando a WS-CDL como Recomendación Candidata.

Numerosas presentaciones en el Taller del W3C sobre servicios web, celebrado del 11 al 12 de abril de 2001, destacaron la necesidad de una interfaz común y un lenguaje de composición para facilitar la coreografía. El borrador de trabajo sobre los requisitos de la arquitectura de servicios web, elaborado por el Grupo de Trabajo sobre Arquitectura de Servicios Web, también incluye la idea de las capacidades de coreografía de servicios web como un factor crítico de éxito , en apoyo de varios objetivos de alto nivel para la incipiente arquitectura de servicios web..

El problema de la coreografía fue de gran interés para la industria durante ese tiempo; esfuerzos como WSCL (Web Service Conversation Language) y WSCI (Web Service Choreography Interface) fueron presentados al W3C y publicados como notas técnicas. Además, se lanzaron esfuerzos complementarios: [ 25 ]

En junio de 2002, Intalio , Sun, BEA y SAP publicaron una especificación conjunta denominada Interfaz de Coreografía de Servicios Web (WSCI). Esta especificación también se presentó al W3C como nota en agosto de 2002. Desde entonces, el W3C ha creado un nuevo Grupo de Trabajo llamado Grupo de Trabajo de Coreografía de Servicios Web dentro de la Actividad de Servicios Web. La especificación WSCI es una de las principales aportaciones al Grupo de Trabajo de Coreografía de Servicios Web , que publicó una Recomendación Candidata sobre WS-CDL versión 1.0 el 9 de noviembre de 2005."XLang, WSFL y WSCI ya no cuentan con el soporte de ninguna organización ni empresa de estandarización. BPEL reemplazó a Xlang y WSFL, y WSCI fue reemplazado por WS-CDL .".

La próxima versión 2.0 de la Notación de Modelado de Procesos de Negocio introducirá diagramas para especificar coreografías de servicio. [ 9 ]

El campo académico ha propuesto otros lenguajes de coreografía de servicio, por ejemplo Let's Dance, [ 10 ] BPEL4Chor [ 11 ] y MAP. [ 19 ]

Paradigmas de coreografías de servicio

Las coreografías de servicio especifican interacciones basadas en mensajes entre los participantes desde una perspectiva global. De la misma manera que los lenguajes de programación se pueden agrupar en paradigmas de programación , los lenguajes de coreografía de servicio se pueden agrupar en estilos : [ 26 ]

  • Modelado de interacción: la lógica de la coreografía se especifica como un flujo de trabajo en el que las actividades representan los intercambios de mensajes entre los participantes [ 27 ] (por ejemplo, Web Service Choreography Description Language (WS-CDL) y Let's Dance [ 10 ] ).
  • Modelado de interfaces interconectadas: la lógica de la coreografía se divide entre sus participantes a través de los roles que desempeñan (es decir, su comportamiento esperado en cuanto a mensajes). Los roles se conectan mediante flujos de mensajes, canales o construcciones equivalentes [ 28 ] (este es, por ejemplo, el caso de BPEL4Chor [ 11 ] ).

Proyectos de investigación sobre coreografías

Existen varios proyectos de investigación activos sobre el tema de la coreografía de servicios.

  • CHOReVOLUTION: Síntesis automatizada de coreografías dinámicas y seguras para la Internet del futuro
  • CRC: Coreografías para un software de comunicación fiable y eficiente
  • SwarmESB: un ESB o centro de mensajes ligero y de código abierto para Node.js.
  • PrivateSKY: desarrollo experimental en colaboración público-privada para plataformas de nube locales con funciones avanzadas de protección de datos.

Véase también

Referencias

  1. Modelo de conocimiento S-Cube: Coreografía de servicios
  2. Chris Peltz: Orquestación y coreografía de servicios web . IEEE Computer (COMPUTER) 36(10):46-52 (2003)
  3. Jianwen Su, Tevfik Bultan, Xiang Fu, Xiangpeng Zhao: Hacia una teoría de las coreografías de servicios web . WS-FM 2007:1-16
  4. "Descripción general del modelo de coreografía WS" . 24 de marzo de 2004. Consultado el 16 de febrero de 2019 .
  5. Arellanes, Damian; Lau, Kung-Kiu (2017). «Exogenous Connectors for Hierarchical Service Composition» (PDF) . 2017 IEEE 10th Conference on Service-Oriented Computing and Applications (SOCA) . Kanazawa: IEEE. pp. 125–132 . doi : 10.1109/SOCA.2017.25 . ISBN  9781538613269. S2CID 31211787 . 
  6. Hongli Yang, Xiangpeng Zhao, Chao Cai, Zongyan Qiu: "Explorando la conexión entre coreografía y orquestación con manejo de excepciones y finalización/compensación" . FORTE 2007:81-96
  7. Howard Foster, Sebastián Uchitel, Jeff Magee, Jeff Kramer: Análisis basado en modelos de las obligaciones en la coreografía de servicios web . AICT/ICIW 2006:149
  8. Ashley McNeile: Contratos de protocolo con aplicación a colaboraciones multipartitas coreografiadas . Computación y aplicaciones orientadas a servicios, volumen 4, número 2, 109-136 (2010)
  9. 1 2 Jack Vaughan: BPMN 2.0 añade notación para manejar la coreografía BPM . SearchSOA.com, 22 de octubre de 2009
  10. 1 2 3 Johannes Maria Zaha, Alistair P. Barros, Marlon Dumas , Arthur HM ter Hofstede : Let's Dance: Un lenguaje para el modelado del comportamiento de servicio . OTM Conferences 2006:145-162
  11. 1 2 3 Gero Decker, Oliver Kopp, Frank Leymann, Mathias Weske : BPEL4Chor: Ampliación de BPEL para el modelado de coreografías . ICWS 2007:296-303
  12. "Lenguaje de programación Chor" .
  13. Carbone, Marco; Montesi, Fabrizio (2013). Deadlock-freedom by design: Multiparty Asynchronous Global Programming . doi : 10.1145/2429069.2429101 .
  14. Gero Decker, Mathias Weske : Aplicabilidad local en redes de Petri de interacción . BPM 2007:305-319
  15. Karsten Schmidt: Controlabilidad de redes de flujo de trabajo abiertas . EMISA 2005:236-249
  16. Nadia Busi, Roberto Gorrieri, Claudio Guidi, Roberto Lucchi, Gianluigi Zavattaro: Conformidad de coreografía y orquestación para el diseño de sistemas . COORDINACIÓN 2006:63-81
  17. Tevfik Bultan, Jianwen Su, Xiang Fu: Análisis de conversaciones de servicios web . IEEE Internet Computing (INTERNET) 10(1):18-25 (2006)
  18. Michele Mancioppi, Manuel Carro, Willem-Jan van den Heuvel, Mike P. Papazoglou: sólidos protocolos comerciales multipartitos para redes de servicios . ICSOC 2008:302-316
  19. 1 2 Adam Barker, Christopher D. Walton, David Robertson: Coreografía de servicios web . IEEE Transactions on Services Computing, volumen 2, número 2, páginas 152-166, IEEE Computer Society, abril-junio de 2009.
  20. ^ ShuiGuang Deng, Zhaohui Wu, Mengchu Zhou, Ying Li, Jian Wu: Compatibilidad del servicio de modelado con Pi-cálculo para coreografía . ER 2006:26-39
  21. Paolo Besana, Adam Barker: Un cálculo ejecutable para la coreografía de servicios . Conferencias OTM 2009:373-380
  22. Raman Kazhamiakin, Marco Pistore: Análisis de las condiciones de realizabilidad para coreografías de servicios web . FORTE 2006:61-76
  23. Zongyan Qiu, Xiangpeng Zhao, Chao Cai, Hongli Yang: Hacia la base teórica de la coreografía . WWW 2007:973-982
  24. Grupo de trabajo de coreografía de servicios web en W3
  25. Carta
  26. ^ Gero Decker, Oliver Kopp, Alistair P. Barros: Introducción a las coreografías de servicio (Servicechoreographien - eine Einführung). it - Tecnología de la información (TI) 50(2):122-127 (2008)
  27. Modelo de conocimiento S-Cube: Modelo de coreografía de interacción
  28. Modelo de conocimiento S-Cube: Modelo de coreografía de interfaz interconectada
  • Lenguaje de descripción de coreografía de servicios web : especificación W3C para WS-Choreography
  • Descripción de la coreografía del servicio web Idioma: Primer -
  • Interfaz de coreografía de servicios web (WSCI) 1.0 : especificación de Intalio , Sun, BEA y SAP; entrada para WS-Choreography.
  • Coreografías a gran escala para el futuro de Internet - Proyecto de investigación del 7.º Programa Marco de la Comisión Europea
  • Coreografía de servicios web en la práctica : motivación y descripción de WSCI.
  • Coreografías de servicio : sitio web que promueve el concepto de coreografía de servicio como base para el diseño de sistemas orientados a servicios. El sitio también describe un lenguaje para modelar coreografías sobre WSCI, llamado Let's Dance.
  • Descripción de la coreografía de servicios web Versión 1.0
  • Grupo de trabajo de coreografía de servicios web del W3C
  • Modelado formal de servicios web
  • Fundamentos teóricos de la programación concurrente centrada en la comunicación.
  • Hacia los fundamentos teóricos de la coreografía
  • Explorando la esencia de la coreografía