La coreografía de servicios es una forma de composición de servicios [ aclaración necesaria ] en la que el protocolo de interacción entre varios servicios asociados [ aclaración necesaria ] se define desde una perspectiva global. [1] La idea subyacente a la noción de coreografía de servicio se puede resumir de la siguiente manera:
"Los bailarines bailan siguiendo un escenario global sin un solo 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 papel 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 tiempo 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 cumplir algún propósito útil. [4]
Coreografía de servicios y orquestación de servicios
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 servicio, la lógica de las interacciones basadas en mensajes entre los participantes se concreta desde una perspectiva global. En la orquestación de servicios, por otro lado, la lógica se especifica desde el punto de vista local de un solo participante, llamado orquestador . En el lenguaje de orquestación de servicios BPEL , por ejemplo, la especificación de la orquestación de servicios (por ejemplo, el archivo de proceso BPEL) es un flujo de trabajo que se puede implementar en la infraestructura de servicios (por ejemplo, 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 las orquestaciones del servicio son dos lanzamientos de la misma moneda. Por un lado, los roles de una coreografía de servicio se pueden extraer como orquestaciones de servicio a través de un proceso llamado proyección . [6] A través de la proyección es posible realizar esqueletos , es decir, orquestaciones de servicios incompletas que se pueden utilizar como líneas de base para realizar los servicios web que participan en la coreografía del servicio. Por otro lado, las orquestaciones de servicios ya existentes pueden componerse en coreografías de servicios.
Representación de coreografías de servicio
Las coreografías de servicio no se ejecutan: se promulgan . Se promulga una coreografía de servicio cuando sus participantes ejecutan sus roles. [7] Es decir, a diferencia de la orquestación del servicio, las coreografías del servicio no las ejecuta algún motor en la infraestructura del servicio, sino que "suceden" cuando se ejecutan sus roles. Esto se debe a que la lógica de la coreografía del servicio se especifica desde un punto global vista, y por lo tanto no se realiza mediante un solo 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í, tiene éxito significa que el comportamiento emergente que resulta cuando se realiza la colaboración, con cada participante actuando de forma independiente de acuerdo con su propio esqueleto , sigue exactamente la coreografía desde la cual se proyectaron originalmente los esqueletos. Cuando este es el caso, 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 asincrónica y es posible que diferentes participantes envíen mensajes simultáneamente.
Idiomas de coreografía de servicio
En el ámbito de las especificaciones relativas a los servicios web , las siguientes especificaciones se han centrado en la definición de lenguajes para modelar coreografías de servicios:
- El lenguaje de descripción de coreografías de servicios web (WS-CDL) es una especificación basada en XML del W3C para modelar coreografías utilizando construcciones inspiradas en el cálculo de Pi
- Web Service Choreography Interface (WSCI) es una especificación basada en XML que fue presentada al W3C por Intalio , Sun Microsystems , BEA Systems y SAP AG , y que sirvió como entrada para Web Service Choreography Description Language (WS-CDL)
Además, la especificación OMG BPMN versión 2.0 incluye diagramas para modelar coreografías de servicio. [9]
Las propuestas académicas para los lenguajes de coreografía de servicio incluyen:
Además, se han propuesto varios formalismos de coreografías de servicios basados en:
- Redes de Petri , por ejemplo Redes de Petri de interacción [14] y Redes de flujo de trabajo abiertas [15]
- Máquinas de estado finito [16]
- Autómatas vigilados [17]
- Autómatas cronometrados [18]
- Cálculo de Pi [19] [20] [21]
- Cálculos de proceso [22] [23]
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 de participantes de servicios web que cooperan , en los que los servicios actúan como pares y las interacciones pueden ser duraderas y con estado. ( Orquestación es otro término con un significado muy similar, pero aún diferente ).
El principal esfuerzo para conseguir 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 candidata a recomendación.
"Muchas presentaciones en el taller del W3C sobre servicios web del 11 al 12 de abril de 2001 señalaron la necesidad de una interfaz común y un lenguaje de composición para ayudar a abordar la coreografía. El borrador de trabajo de requisitos de arquitectura de servicios web creado por el Grupo de trabajo de arquitectura de servicios web también enumera los 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 diferentes para la arquitectura naciente de servicios web " [1] .
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) se enviaron al W3C y se publicaron como Notas técnicas. Además, se pusieron en marcha esfuerzos complementarios: [25]
- BPML , ahora BPMN
- BPSS por ebXML [2]
- WSFL de IBM
- XLANG de Microsoft
- BPEL4WS de IBM, Microsoft y BEA
"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 envió al W3C como nota en agosto de 2002. Desde entonces, el W3C ha formado un nuevo grupo de trabajo denominado Servicios web Grupo de trabajo de coreografía dentro de la actividad de servicios web. La especificación WSCI es una de las entradas principales en el 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 " [3] . "XLang, WSFL y WSCI ya no son compatibles con ninguna organización o empresa estándar. BPEL reemplazó a Xlang y WSFL WSCI fue reemplazado por WS-CDL " [4] .
La próxima versión 2.0 de Business Process Modeling Notation presentará diagramas para especificar coreografías de servicios. [9]
El ámbito 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 servicios 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 de mensajería esperado). 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
Hay varios proyectos de investigación activos sobre el tema de la coreografía de servicio.
- 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 confiable y eficiente
- SwarmESB: un centro ligero, de código abierto, ESB o de mensajes para node.js
- PrivateSKY: desarrollo experimental en asociación público-privada para plataformas en la nube locales con funciones avanzadas de protección de datos
Referencias
- ^ Modelo de conocimiento de S-Cube: Coreografía de servicio
- ^ Chris Peltz: Orquestación y coreografía de servicios web . Computadora IEEE (COMPUTADORA) 36 (10): 46-52 (2003)
- ^ Jianwen Su, Tevfik Bultan, Xiang Fu, Xiangpeng Zhao: Hacia una teoría de las coreografías de servicios web . WS-FM 2007: 1-16
- ^ "Descripción general del modelo de coreografía WS" . 24 de marzo de 2004 . Consultado el 16 de febrero de 2019 .
- ^ Arellanes, Damián; Lau, Kung-Kiu (2017). "Conectores exógenos para la composición de servicios jerárquicos" . 2017 IEEE 10th Conference on Service-Oriented Computing and Applications (SOCA) . Kanazawa: IEEE: 125-132. doi : 10.1109 / SOCA.2017.25 . ISBN 9781538613269.
- ^ Hongli Yang, Xiangpeng Zhao, Chao Cai, Zongyan Qiu: "Explorando la conexión de coreografía y orquestación con manejo de excepciones y finalización / compensación" . FORTE 2007: 81-96
- ^ Howard Foster, Sebastián Uchitel, Jeff Magee, Jeff Kramer: Análisis de obligaciones basado en modelos en la coreografía de servicios web . AICT / ICIW 2006: 149
- ^ Ashley McNeile: contratos de protocolo con aplicación a colaboraciones multipartitas coreografiadas . Computación orientada a servicios y aplicaciones Volumen 4, Número 2, 109-136 (2010)
- ^ a b Jack Vaughan: BPMN 2.0 agrega notación para manejar la coreografía BPM . SearchSOA.com, 22 de octubre de 2009
- ^ a b c Johannes Maria Zaha, Alistair P. Barros, Marlon Dumas , Arthur HM ter Hofstede : Let's Dance: A Language for Service Behavior Modelling . Conferencias OTM 2006: 145-162
- ^ a b c Gero Decker, Oliver Kopp, Frank Leymann, Mathias Weske : BPEL4Chor: Ampliación de BPEL para modelar coreografías . ICWS 2007: 296-303
- ^ "Lenguaje de programación Chor" .
- ^ Carbone, Marco; Montesi, Fabrizio (2013). Libertad de interbloqueo por diseño: Programación global asincrónica multipartita . doi : 10.1145 / 2429069.2429101 .
- ^ Gero Decker, Mathias Weske : aplicabilidad local en las redes de Petri de interacción . BPM 2007: 305-319
- ^ Karsten Schmidt: controlabilidad de redes de flujo de trabajo abiertas . EMISA 2005: 236-249
- ^ 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
- ^ Tevfik Bultan, Jianwen Su, Xiang Fu: análisis de conversaciones de servicios web . Computación en Internet IEEE (INTERNET) 10 (1): 18-25 (2006)
- ^ Michele Mancioppi, Manuel Carro, Willem-Jan van den Heuvel, Mike P. Papazoglou: Protocolos comerciales multipartitos sólidos para redes de servicios . ICSOC 2008: 302-316
- ^ a b 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
- ^ ShuiGuang Deng, Zhaohui Wu, Mengchu Zhou, Ying Li, Jian Wu: Compatibilidad del servicio de modelado con Pi-calculus para coreografía . ER 2006: 26-39
- ^ Paolo Besana, Adam Barker: un cálculo ejecutable para la coreografía de servicio . Conferencias OTM 2009: 373-380
- ^ Raman Kazhamiakin, Marco Pistore: análisis de las condiciones de realizabilidad para coreografías de servicios web . FORTE 2006: 61-76
- ^ Zongyan Qiu, Xiangpeng Zhao, Chao Cai, Hongli Yang: Hacia la base teórica de la coreografía . WWW 2007: 973-982
- ^ Grupo de trabajo de coreografía de servicios web en W3
- ^ Carta
- ^ 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)
- ^ Modelo de conocimiento de S-Cube: Modelo de coreografía de interacción
- ^ Modelo de conocimiento de S-Cube: Modelo de coreografía de interfaz interconectada
enlaces externos
- Lenguaje de descripción de coreografías de servicios web : especificación W3C para WS-Choreography
- Lenguaje de descripción de la coreografía del servicio web: Introducción -
- Interfaz de coreografía de servicios web (WSCI) 1.0 : especificación de Intalio , Sun, BEA y SAP; entrada en WS-Choreography
- Coreografías a gran escala para la Internet del futuro - Proyecto de investigación FP7 de la Comisión Europea
- Coreografía de servicios web en la práctica - Motivación y descripción de WSCI
- Coreografías de servicios : sitio que promueve el concepto de coreografías de servicios como base para el diseño de sistemas orientados a servicios. El sitio también describe un lenguaje para modelar coreografías sobre WSCI, a saber, Let's Dance.
- Idioma de descripción de 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
- Una base teórica de la programación concurrente centrada en la comunicación
- Hacia la base teórica de la coreografía
- Explorando la esencia de la coreografía
Ver también
- BPEL - Business Process Execution Language, estándar OASIS
- Lenguaje de descripción de coreografías de servicios web : un lenguaje para describir coreografías desarrolladas en el ámbito del W3C.