Tabla de contenidos:
- En Inglés sencillo
- Estudio de caso
Las organizaciones que ya han empleado productos de middleware de integración de aplicaciones empresariales (EAI) para automatizar los procesos de negocio o integrar varios entornos heredados probablemente ya estén familiarizadas con el concepto de orquestación. En estos sistemas, un conjunto de lógica de flujo de trabajo controlado centralmente facilita la interoperabilidad entre dos o más aplicaciones diferentes. Una implementación común de orquestación es el modelo de hub y radio que permite a múltiples participantes externos interactuar con un motor de orquestación central.
Uno de los requisitos impulsores detrás de la creación de estas soluciones era adaptarse a la fusión de grandes procesos empresariales. Con la orquestación, se pueden conectar diferentes procesos sin tener que volver a desarrollar las soluciones que originalmente automatizaron los procesos individualmente. La orquestación cierra esta brecha mediante la introducción de una nueva lógica de flujo de trabajo. Además, el uso de la orquestación puede reducir significativamente la complejidad de los entornos de solución. La lógica del flujo de trabajo se abstrae y se mantiene más fácilmente que cuando se integra en componentes individuales de la solución.
El papel de la orquestación se amplía en entornos orientados a servicios. Mediante el uso de extensiones que permiten que la lógica de los procesos de negocio se exprese a través de servicios, la orquestación puede representar y expresar la lógica de negocio en un lugar estandarizado basado en servicios. Al construir soluciones orientadas al servicio, esto proporciona un medio extremadamente atractivo para alojar y controlar la lógica que representa el proceso que se está automatizando.
La orquestación aprovecha aún más la interoperabilidad intrínseca que buscan los diseños de servicios al proporcionar puntos finales de integración potenciales en los procesos. Un aspecto clave de cómo se posiciona la orquestación dentro de SOA es el hecho de que las orquestaciones en sí existen como servicios. Por lo tanto, al basarse en la lógica de orquestación, se estandariza la representación de procesos en toda la organización, al tiempo que se aborda el objetivo de la federación empresarial y se promueve la orientación a los servicios.
Figura 6.32. Una orquestación controla casi todas las facetas de una actividad compleja.
Una especificación principal de la industria que estandariza la orquestación es el Lenguaje de Ejecución de Procesos de Negocio de servicios Web (WS-BPEL). Este libro reconoce a WS-BPEL como una extensión clave de segunda generación y, por lo tanto, utiliza sus conceptos y terminología como base para una serie de discusiones relacionadas con el modelado de procesos de negocio.
Nota
WS-BPEL es el nombre más reciente dado a esta especificación, que también se conoce como BPEL4WS y solo BPEL. Para una descripción general de las partes principales del lenguaje WS-BPEL y una discusión de cómo se produjo el cambio de nombre, consulte el Capítulo 16.
En inglés Sencillo
Después de lavar con éxito varios coches juntos, Chuck, Bob, Jim y yo decidimos iniciar nuestra propia empresa. Formalizamos los pasos en nuestro proceso de lavado de automóviles para que podamos manejar diferentes tipos de automóviles con diferentes requisitos de limpieza.
Por lo tanto, nuestro proceso se ve afectado por los siguientes nuevos requisitos:
- Decidimos contratar ayuda adicional durante las horas punta. Esto introduce hasta dos miembros adicionales que se unen a nuestro equipo.
- Debido a que no tenemos capital de riesgo para este negocio, hacemos un acuerdo con una gasolinera local. A cambio de usar una parte de su lote para nuestra operación de lavado de automóviles, estamos de acuerdo en ayudar con las tareas de bombeo de gas durante sus horas pico.
Nuestro simple proceso de lavado de automóviles ahora se ha vuelto significativamente más complicado. El proceso ya no es fijo, ya que puede cambiar en un momento dado como resultado de varias condiciones y eventos.
- Cuando llegan nuestros trabajadores adicionales, la asignación de tareas de todo el equipo se altera.
- Cuando el personal de la gasolinera necesite ayuda adicional, estamos obligados a enviar a uno o más miembros de nuestro equipo de lavado de autos para que los ayuden.
Estos ejemplos se refieren a condiciones predecibles que ocurren diariamente. Nuestra operación se ve afectada aún más por algunas limitaciones:
- Si nuestro flujo de efectivo cae por debajo de cierta cantidad, no podemos pagar a los trabajadores a tiempo parcial.
- Si llueve, todo el trabajo se suspende (lo que también reduce el flujo de caja).
Estas restricciones introducen condiciones que son menos comunes, pero que siempre debemos tener en cuenta. Para acomodar estas situaciones potenciales, elaboramos un plan que traza nuestro proceso ampliado y proporciona procesos alternativos para lidiar con condiciones comunes y poco comunes.
Este plan es esencialmente un flujo de trabajo que une pasos individuales con procesos y subprocesos divididos por puntos de decisión. Este elaborado flujo de trabajo incorpora nuestro proceso original con el proceso de la gasolinera y el proceso extendido resultante de la llegada de nuestros trabajadores a tiempo parcial. Este flujo de trabajo es esencialmente una orquestación que administra los requisitos del proceso individual y los recursos relacionados, participantes, eventos, reglas de negocio y actividades.
6.6.1. Protocolos de negocio y definición de procesos
La lógica de flujo de trabajo que comprende una orquestación puede consistir en numerosas reglas de negocio, condiciones y eventos. Colectivamente, estas partes de una orquestación establecen un protocolo de negocio que define cómo los participantes pueden interoperar para lograr la finalización de una tarea de negocio. Los detalles de la lógica de flujo de trabajo encapsulada y expresada por una orquestación están contenidos dentro de una definición de proceso.
6.6.2. Los servicios de proceso y los servicios para socios
Identificados y descritos dentro de una definición de proceso son los participantes de proceso permitidos. En primer lugar, el proceso en sí se representa como un servicio, lo que resulta en un servicio de proceso (que resulta ser otro de nuestros modelos de servicio, como se muestra en la Figura 6.33).
Figura 6.33. Un servicio de proceso que coordina y expone la funcionalidad de tres servicios asociados.
Otros servicios a los que se permite interactuar con el servicio de proceso se identifican como servicios de socios o enlaces de socios. Dependiendo de la lógica del flujo de trabajo, el servicio de proceso puede ser invocado por un servicio de socio externo o puede invocar otros servicios de socio (Figura 6.34).
Figura 6.34. El servicio de proceso, después de ser invocado por un servicio asociado, invoca a otro servicio asociado.
6.6.3. Actividades básicas y actividades estructuradas
WS-BPEL descompone la lógica del flujo de trabajo en una serie de actividades primitivas predefinidas. Las actividades básicas (recibir, invocar, responder, lanzar, esperar) representan acciones de flujo de trabajo fundamentales que se pueden ensamblar utilizando la lógica proporcionada por las actividades estructuradas (secuencia, conmutador, mientras, flujo, selección). En el capítulo 16 se analiza cómo se pueden utilizar estas actividades para expresar la lógica real de los procesos de negocio.
6.6.4. Secuencias, flujos y enlaces
Las actividades básicas y estructuradas se pueden organizar de manera que el orden en el que se ejecutan esté predefinido. Una secuencia alinea grupos de actividades relacionadas en una lista que determina un orden de ejecución secuencial. Las secuencias son especialmente útiles cuando una parte de la lógica de la aplicación depende del resultado de otra.Los flujos
también contienen grupos de actividades relacionadas, pero introducen diferentes requisitos de ejecución. Partes de la lógica de la aplicación pueden ejecutarse simultáneamente dentro de un flujo, lo que significa que no hay necesariamente un requisito para que un conjunto de actividades espere antes de que termine otro. Sin embargo, el flujo en sí no termina hasta que todas las actividades encapsuladas hayan completado el procesamiento. Esto garantiza una forma de sincronización entre la lógica de la aplicación que reside en flujos individuales.
Los enlaces se utilizan para establecer dependencias formales entre las actividades que forman parte de los flujos. Antes de que una actividad pueda completarse por completo, debe asegurarse de que se cumplan primero los requisitos establecidos en los enlaces salientes. Del mismo modo, antes de que pueda comenzar cualquier actividad vinculada, primero deben cumplirse los requisitos contenidos en los enlaces entrantes. Las reglas proporcionadas por los enlaces también se conocen como dependencias de sincronización.
6.6.5. Orquestaciones y actividades
Como definimos anteriormente, una actividad es un término genérico que se puede aplicar a cualquier unidad lógica de trabajo completada por una solución orientada a servicios. El alcance de una sola orquestación, por lo tanto, puede clasificarse como una actividad compleja y, muy probablemente, de larga duración.
6.6.6. Orquestación y coordinación
La orquestación, representada por WS-BPEL, puede utilizar completamente el marco de gestión de contexto de coordinación de WS incorporando el tipo de coordinación de WS-Businesactivity. Esta especificación define protocolos de coordinación diseñados para soportar actividades complejas y de larga duración.
6.6.7. Orquestación y SOA
La lógica de procesos de negocio está en la raíz de las soluciones de automatización. La orquestación proporciona un modelo de automatización en el que la lógica de procesos está centralizada, pero sigue siendo extensible y componible (Figura 6.35). Mediante el uso de orquestaciones, los entornos de soluciones orientadas a servicios se vuelven inherentemente extensibles y adaptables. Las propias orquestaciones suelen establecer un punto común de integración para otras aplicaciones, lo que hace que una orquestación implementada sea un habilitador de integración clave.
Figura 6.35. Orquestación relacionada con otras partes de SOA.
Estas cualidades conducen a una mayor agilidad organizacional porque:
- La lógica de flujo de trabajo encapsulada por una orquestación se puede modificar o ampliar en una ubicación central.
- Colocar una orquestación de forma centralizada puede facilitar significativamente la fusión de los procesos de negocio al abstraer el pegamento que une las soluciones de automatización correspondientes.
- Al establecer arquitecturas de integración orientadas a servicios potencialmente a gran escala, la orquestación, en un nivel fundamental, puede apoyar la evolución de una empresa federada de forma diversa.
La orquestación es un ingrediente clave para lograr un estado de federación dentro de una organización que contiene varias aplicaciones basadas en plataformas informáticas dispares. Los avances en middleware permiten que los propios motores de orquestación se integren completamente en entornos orientados a servicios.
El concepto de orquestación orientada a servicios aprovecha por completo todos los conceptos que hemos discutido hasta ahora en este capítulo. Para muchos entornos, las orquestaciones se convierten en el corazón de SOA.
Estudio de caso
La serie de pasos que incluimos en una actividad empresarial en el ejemplo de estudio de caso anterior demostró cómo TLS usaba el protocolo WS-Businesactivity para agregar administración de contexto y manejo de excepciones a una actividad compleja de larga duración. Aunque el alcance de una actividad empresarial puede constituir un proceso empresarial, no proporciona a TLS un medio estándar para expresar la lógica de flujo de trabajo subyacente. Para ello, TLS emplea una orquestación WS-BPEL (Figura 6.36).
Figura 6.36. El Proceso extendido de Envío de Órdenes de Compra de TLS administrado por una orquestación e involucrado a numerosas organizaciones asociadas potenciales.
La orquestación establece una lógica de proceso integral que abarca la actividad empresarial y la extiende aún más para gobernar escenarios de interacción adicionales con múltiples servicios de proveedores. Por ejemplo, cuando un proveedor no puede completar un pedido, el siguiente proveedor en línea recibe la misma orden de compra. Este ciclo se repite hasta que un proveedor pueda completar el pedido en su totalidad (dentro de ciertas limitaciones de precio) o hasta que se haya consultado a todos los proveedores. En esta última situación, el sistema simplemente evalúa la mejor oferta sobre la mesa aplicando una fórmula que tiene en cuenta el precio, el porcentaje de pedido a completar y los términos de pedido pendiente.
La lógica de orquestación gestiona todos los aspectos del proceso, incluida la participación de múltiples servicios de socios proveedores, así como la actividad empresarial que se activa cuando se procesa una orden de compra.
RESUMEN DE LOS PUNTOS CLAVE
- Una orquestación expresa un cuerpo de lógica de procesos de negocio que normalmente es propiedad de una sola organización.
- Una orquestación establece un protocolo de negocio que define formalmente una definición de proceso de negocio.
- La lógica de flujo de trabajo dentro de una orquestación se divide en una serie de actividades básicas y estructuradas que se pueden organizar en secuencias y flujos.
- La orquestación ha sido llamada el «corazón de SOA», ya que establece un medio para centralizar y controlar una gran cantidad de lógica inter e intra-aplicación a través de un modelo de servicio estandarizado.