Orquestación Un proceso es de orquestación cuando es controlado totalmente por una única entidad. Esta define completamente las interacciones y la lógica requerida para conducir correctamente estos procesos. Este tipo de procesos puede entenderse como privado y ejecutable: privado porque la definición de la lógica del proceso es hecha enteramente por un participante en la interacción; y ejecutable porque tiene un comportamiento de conversión de entradas en salidas y tiene efectos en el mundo real.[1] La orquestación de componentes es la tecnología que permite que los componentes sean integrados de acuerdo a patrones predefinidos y ejecutados por medio de restricciones, estas restricciones representan llamadas a procesos, normalmente describen las interacciones entre las aplicaciones identificando sus mensajes, lógica jerárquica y sus secuencias de invocación. El componente que ejecuta estas restricciones es el componente orquestador.[2] El componente orquestador es el componente que actúa como intermediario inteligente entre un conjunto de componentes, la interacción entre estos se representa por el modelo de paso de mensajes. Orquestación vs Coreografía Dado que en ocasiones hablar de orquestación o coreografía parece indicar que se refiere a los mismos conceptos e ideas, ya que estas definiciones suelen variar sutilmente una de otra, vamos a indicar una serie de ideas que pueden ser útiles para saber diferenciar que es cada cosa. Según esto tenemos: Orquestación o Con la orquestación lo que realizamos es componer servicios para generar un nuevo proceso de negocios y puede usarse de dos formas distintas: para preparar la información que se intercambia en la ejecución de la coreografía o como la invocación siguiendo unas determinadas reglas. o Es un sistema jerárquico en el que la idea de proceso organiza la manera de invocar a otro mediante un flujo de control que determina que invocar y cuando hacerlo. o La orquestación debe verse como algo atómico a sí mismo, ya que lo que se ve es el proceso de negocio como tal. Coreografía o Con la coreografía lo que realizamos es componer servicios para permitir la colaboración entre dos negocios, de forma que se defina la forma en que múltiples participantes colaboran entre pares, como parte de una operación o transacción de negocio duradera, que se realiza mediante el intercambio de mensajes tanto síncronos como asíncronos y que requiere una descripción formal de los protocolos de intercambio de mensajes y que debe estar visible para cada participante que interviene dentro de la coreografía. o Es un sistema entre pares, por tanto muchos participantes pueden colaborar, por tanto es posible la existencia de varios flujos de control diferentes. o Se describen interacciones con estado y duraderas.[2] Propósito El propósito de la orquestación es crear un servicio para un cliente de un sistema, para llevar a cabo dicho servicio es necesario crearlo mediante el desarrollo de un modelo de proceso, el cual se debe basar en un motor de orquestación. En los sistemas que utilizan la orquestación se utiliza un concepto interesante como lo es el de la armonía: significa que dos o más notas diferentes suenan bien juntas, basándonos en esto, podemos decir que la armonización es la que permite a un servicio de cualquier fuente funcionar bien dentro de la orquestación. Para lograr que un servicio sea armónico necesitamos que este sea comprensible para el motor de orquestación. Al no ser humano, el motor de orquestación realmente no tiene la comprensión de sí mismo, pero puede ser preparado para entender un determinado conjunto de formatos de datos. Esto significa que el primer paso es crear una definición de interfaz para un servicio que es comprensible por un motor de orquestación previamente preparado. En síntesis, la armonización consiste en • Sintetizar los servicios a las personas. Descubrir las capacidades disponibles en los empleados y contratistas y la asignación de las funciones correspondientes a los tipos de servicios que puede proporcionar, así como las interfaces de usuario necesarios. • Sintetizar los servicios de los sistemas. Descubriendo los servicios disponibles de negocios que están expuestos a través de una determinada tecnología en un determinado servidor, la generación automática de un conector. • La exposición de los servicios. Creación de una plantilla de uso y la documentación para los servicios que serán utilizados en su forma nativa. Orquestación como paradigma La orquestación es más que una categoría de productos de tecnología. También es un enfoque holístico hacia la mejora de rendimiento del negocio mediante la extracción de la totalidad del valor de sus activos existentes. Uno no funciona sin el otro. Este enfoque es lo que vamos a considerar el paradigma. La orquestación como paradigma se refiere al modelo ejemplar de cómo crear nuevos servicios que brinda el sistema sin necesidad de cambiar o modificar sus componentes existentes. Basados en esto, realizaremos una diferencia entre este modelo de otros modelos que se están aplicando en la actualidad. Diferencias con la integración de aplicaciones empresariales (EAI) y el paradigma de integración Business-to-Business Las metas y los objetivos de la integración de aplicaciones empresariales (EAI) y la integración del negocio empresariales (B2Bi) son automatizados para facilitar la interacción entre las aplicaciones empresariales dispares o transacciones inter-empresariales. Con estos paradigmas se deben mantener las aplicaciones existentes para ser utilizadas como las interfaces primarias a los usuarios existentes, intentando optimizar operaciones de los usuarios en el movimiento de datos de una aplicación a otra para mantener la sincronía y la consistencia de los datos. Estos paradigmas se basan en las aplicaciones existentes, ya que estas poseen toda la funcionalidad necesaria para permitir la completa automatización de los procesos. Por el contrario, las metas y objetivos de la orquestación es crear servicios para los clientes del actual sistema. Está claro que el alcance de la orquestación es más amplio que el ámbito de aplicación del EAI y B2Bi juntos. Otro punto importante de la orquestación es que no utiliza ninguna de las aplicaciones existentes debido a que estas no son suficientes para automatizar los procesos ya que a medida que evoluciona el negocio serán insuficientes y los nuevos servicios tendrán que ser construido o comprados, así que las aplicaciones existentes no son tenidas como la fuente de información para orquestar procesos automatizados. Es posible que tengan información que se pueden utilizar y puede simplificar la orquestación, pero esto no se requiere para su éxito. Diferencias con Service or Component-Brokering Paradigm (SCB) Bajo el paradigma SCB, agrupamos todas las tecnologías que de una forma u otra exponga los servicios de aplicación en forma de funciones reutilizables o componentes. En este paradigma encontramos el procedimiento de llamada remota (RPC), las peticiones de objetos y los servidores de aplicaciones finales. El objetivo de estas tecnologías es proporcionar una plataforma donde los servicios de aplicación se puedan ejecutar, se puedas invocar el uno al otro y puedan ser invocados como componentes. En este paradigma también encontramos a los servicios pre-compilados, que ofrecen hacer más fácil la construcción de componentes al tiempo que oculta los servicios de más de nivel técnico. Por ejemplo, los servidores de aplicaciones modernas que se encuentran con servicios pre-compilados son aquellos que gestionan las conexiones, el inicio de sesión de usuario, los clústeres de servidores y balanceo de carga, la integridad transaccional y otras capacidades. Sus principales objetivos y metas son hacer más fácil el desarrollo de nuevas aplicaciones de soluciones bajo una arquitectura de tres niveles: la lógica de negocio la cual es independiente de la lógica de presentación, está a su vez es independiente de la de persistencia. Al igual que con cualquier plataforma, para obtener todos estos beneficios, es necesario construir todas las nuevas aplicaciones en la plataforma de elección. Las plataformas SCB no son realmente buenas en la interacción con otras plataformas SCB. Para ello, se suelen utilizar sistemas de mensajería. Este es un enfoque para el desarrollo de nuevos aplicaciones y no se proporciona un enfoque más allá de esta arquitectura, debido a esto se tenía que decidir qué metodología utilizar. Por el contrario, las metas y objetivos de la orquestación son la creación de servicios para clientes internos y externos de los servicios existentes a disposición de las personas, aplicaciones internas y externas. Sin embargo, la orquestación se puede beneficiar de un paradigma subyacente SCB en la medida en que proporciona un fácil acceso a los servicios o componentes con sus servicios asociados. La orquestación tiene que ser capaz de hablar a los servicios que se ejecutan en cualquier plataforma, por otra parte, el objetivo de la orquestación es precisamente la construcción de nuevos servicios basados en los servicios existentes de todo tipo de sistemas y organizaciones. Servicios de personas que se pueden recibir a través de la capa de presentación. Por lo tanto, la orquestación ve una aplicación de presentaciones como un servicio, un brazo robótico como un servicio, de la misma manera en que ve los servicios que pueden ser acogidos por servidores de aplicaciones o un objeto de solicitud de los servidores de servicios de intermediación o se puede llamar como un comando en un equipo remoto. Impacto de la orquestación en las disciplinas de IT El impacto de la orquestación en la disciplinas IT puede ser mayor de lo que inicialmente se pueda imaginar. A nivel de empresa las disciplinas IT tradicionalmente han estado dominados por una o más de los siguientes rasgos: • Arquitecturas centradas en datos, • Diseño funcionalidad de motor. • Implementaciones centralizadas, • Proyecto de pliego de condiciones centrada en la gestión. Estos rasgos, después de haber sido útil para la creación de aplicaciones específicas de dominio, son en muchos sentidos opuestos a pensar en la orquestación: • Arquitecturas orientadas al servicio, • El diseño por procesos, • Implementaciones descentralizadas, • Proyecto de retorno de la inversión centrada en la gestión. Impacto sobre la Arquitectura Los dos efectos fundamentales que tiene la orquestación en las soluciones de arquitecturas es que introduce una nueva capa o nivel y crea un ámbito de absolutamente nuevas posibilidades en términos de aplicaciones informáticas. Esta nueva manera tendrá un impacto enorme no sólo en los aspectos formales de la arquitectura, sino también en los aspectos materiales de la misma. Esto es, no solo afecta la arquitectura sino también al entorno en general al que se le aplica. Por ejemplo, un sistema de compras en un futuro no hablará con sí mismo para crear una orden de compra y luego permitir que un el usuario imprima y tenga que enviarlo. Se hablará directamente a los sistemas de los proveedores adecuados para lo que está comprando. No tendrá que tener su propio catálogo de proveedores, sino que utilizará un servicio para seleccionar dinámicamente los proveedores más adecuados de un determinado producto o servicio, dado un cierto nivel de exigencia de servicio. Como vemos, por medio de la orquestación no solo se manejan las aplicaciones en componente, sino que también se posibilita la construcción de forma dinámica de los servicios por la selección automática de los componentes adecuados. Impacto en la implementación de soluciones de TI En la actualidad, el desarrollo de soluciones se realiza basado en una plataforma determinada y en algunas ocasiones, cuando es necesario, se debe utilizar una plataforma de mensajería para realizar la integración con otras aplicaciones las cuales están desarrolladas en otra plataforma, por esto se tiene una segmentación en los procesos, debido a la disparidad de plataformas, así como a la disparidad de aplicaciones. Por ejemplo, en un proceso de realización de pedidos, que cuentan con servicios de financiación, como la aprobación de crédito y la creación de facturas. Se tienen los servicios de la producción, tales como las reservas de inventario y reposición de inventarios, y otros tiene servicios de logística, tales como la selección del operador y el transporte marítimo. Normalmente, estos servicios están fragmentados por las aplicaciones. Pueden ser aún más fragmentado por las plataformas que están en uso. Este escenario no es un problema para el paradigma de orquestaciones, ya que cada fragmento se ve como un contenedor de servicios de la que el motor de orquestación invocará servicios discretos y se coordina con otros servicios. Para realizar la integración orientada a mensajes, cada fragmento se ve como un stand-alone en el que se pueda confiar para saber qué mensajes debe enviar y qué hacer con los que recibe. Esto no siempre es cierto. Todo se reduce a una cuestión de razonabilidad en cuanto a la granularidad de servicios. Cuanto más grande de los fragmentos de los procesos o servicios, menor es la flexibilidad y la fiabilidad de la solución final, cuanto más pequeños son, más compleja será la solución. En resumen, el impacto más importante de la orquestación en la aplicación es que permite un enfoque de arriba hacia abajo. Este enfoque comienza por modelar el servicio que se necesita y a continuación profundiza a través de tantos niveles de subprocesos es necesario para alcanzar los servicios.