Ir al contenido principal

la difusa linea entre orquestacion y Coreografía en SOA

Ambos términos ocupados en SOA, tienen que ver coordinación de servicios, el primero de ellos y mas fácil de entender es la "Orquestacion" esta se refiere a una coordinación de servicios por un proceso principal semejante a lo que hace un director de orquesta, de esta forma cualquier proceso BPEL(por poner un ejemplo tangible) que coordina a otros servicios como ente coordinador, esta "Orquestando" servicios,que es lo que sucede en la mayoría de los procesos BPEL, por ultimo es necesario decir que la orquestacion esta personificada por el proceso coordinador, si queremos saber la secuencia, mensajeria y lógica de orquestacion debemos ver el proceso coordinador.

Como ejemplo veamos el siguiente flujo, expresado en BPMN (Bussines Process Managment Notation), este flujo expresa la orquestacion de servicios para obtener un servicio que realice el cierre de una compra y programe el envió en en un sistema de despacho.


Aquí todas las tareas son llamadas a servicios, en el caso de "registra pago" y "reversa pago" corresponden a llamadas a servicios a un sistema "Gateway de Pagos" que gestiona los pagos electrónicos y la tarea de "Solicita Envío de Mercadería" corresponde a una llamada al "sistema de Despacho" de estas manera el proceso CierraCompra mostrado en el diagrama Orquesta los servicios para lograr realizar el cierre de la compra.

Siguiendo con el ejemplo,  podemos ver que para completarlo es necesario detallar los mensajes entre el proceso CierreCompra y los servicios con que tiene interacción y los sistemas que lo albergan, el diagrama quedaría así de la siguiente manera:


Las interacciones en "Cierre de Compra" y "Gateway de pagos" tienen definidos mensajes y una secuencia, es decir no puedo llamar a "Reversa Pago" si no se ha llamado a "registra Pago", estas definiciones de interacciones entre dos entidades es lo que se llama "Coreografia".

En el siguiente vemos gráficamente que parte corresponde a la coreografía, coordinación (mensajes + secuencia de ejecución).


Comentarios

Entradas populares de este blog

Registro en BAM de actividad en OSB

En esta entrada intentaré describir los aspectos mas relevantes para habilitar y usar registro de actividad en BAM de Oracle desde el ESB de Oracle (OSB). Primero entender que el BAM (Bussines Activity Monitor), como lo dice su nombre tiene por objetivo del monitoreo activo (osea en linea) de actividad de negocio, en este sentido el BAM es genérico puede registrar la actividad que tu definas, por eso el proceso parte por la definición de la estructura de datos que se utilizará para registrar dicha información denominado "Objeto de datos" (Data Object). A continuación los pasos que seguiremos: Definición de Objeto de Datos en BAM (Architect) Definición de Reportes Iniciales en BAM (Active Studio) Exposición de Servicio de Negocio en OSB, para Insertar información en el Data Object definido en BAM.  Definición de Objeto de Datos en BAM Esta acción se realiza en la opción d...

¿Como en Oracle BPEL hacer una llamada a BD?

Para hacer acciones directas sobre base de datos inserciones utilizar un Adaptador de tipo "Database Adapter" como se muestra en la figura, siempre trabajándolo como un servicio externo (External Reference) como método de desacoplar las acciones sobre la base de datos: al arrastrar este componente sobre el diagrama de composición, este iniciara un asistente como se muestra en la figura: Se indica el nombre del servicio  y Siguiente(Next). Aquí se especifica el nombre JNDI de la conexión que se utilizara y la conexión dentro del IDE en la parte superior, presionando el botón + como se ve en la siguiente figura. luego de esto se selecciona el tipo de acción que se realizara en la base de datos y este asistente generara la interfaz de entrada y salida de acuerdo a esto. En el despliegue un punto importante para que esto funcione es configurar el adaptador y la fuente de dat...