Friday, February 27, 2009

Invocar un proceso BPEL desde BPM usando el BUS

 

Automatización de procesos de negocio no es lo mismo que sistematización.  Este último es utilizar un software que permita modelar, ejecutar y monitorear procesos de negocio donde se involucra interacción humana, es decir, los roles asocian participantes que van a interactuar en las actividades del proceso.

Automatizar es reemplazar dichos participantes por sistemas de información o reglas de negocio, utilizando para ello la definición de servicios de acuerdo a lineamientos de SOA (Service Oriented Architecture).  BPEL es un estándar que busca la automatización de procesos de negocio a través de la orquestación de servicios.

Teniendo en cuenta lo anterior, un proceso de negocio podría involucrar actividades humanas y actividades automatizadas, las cuales podrían estar modeladas en un proceso BPEL.  Este es el caso que se pretende explicar, donde un proceso de negocio BPM tiene una actividad automática, que a su vez es un proceso de negocio completo en BPEL, pero que es visto como un servicio publicado en el BUS.

En  BPM Studio debemos tener un proceso de negocio, y en el swimlane de actividades automáticas (rol por defecto) se debe colocar una actividad automática (en este caso sería la actividad Validación) que representa el subproceso en BPEL.

image

En BPEL tendríamos el proceso con las actividades automatizadas, pero no detallaremos este caso.  Simplemente se debe tener definido el proceso y funcionando correctamente.  En este caso, el proceso en BPEL es sincrónico.

image

En el BUS es necesario crear el Proxy Service y Business Service para el proceso de negocio de BPEL.  Para ello se crea primero el recurso WSDL del proceso y luego cada uno de los servicios (proxy y business).

image

image

En el BUS se puede probar la invocación del proceso de BPEL a través de las opciones de testing, y así validar que desde el BUS existe interoperabilidad con el proceso.  Finalizado esta parte, que es como la creación normal de cualquier servicio en el BUS, se prosigue con la invocación de este en BPM Studio.  En el catálogo de elementos se selecciona el módulo donde se quiera importar el objeto de negocio de BPEL, se selecciona la opción Catalogar componente –> Oracle Service Bus.

image

Allí se selecciona una configuración de servidor o se crea una nueva, la cual corresponde al lugar donde se encuentra en ejecución el BUS.  Dentro de esta se selecciona el componente relacionado con el servicio que encapsula al proceso de negocio de BPEL.

image

Esto crea la representación del objeto de negocio operado por el servicio, con los atributos correspondientes.

image

El siguiente paso es relacionar este componente en la actividad automática del proceso.  Para ello se selecciona la actividad para definir como tipo de implantación Componente.  En el nombre de componente se busca el correspondiente al elemento creado en el catálogo.

image

image

En nombre del método, se selecciona la operación de invocación del proceso en BPEL (si el proceso es sincrónico la operación será process).  Después se define la asignación de argumentos donde se configura como entrada la variable payload con el valor de la variable de instancia que representa los datos a enviar al servicio, y como salida la variable de instancia con el valor del resultado del servicio (proceso en BPEL).

image

Una vez realizado esto, lo único pendiente sería establecer actividades para manejar la información obtenida por la actividad y vincularla con el proceso actual.  El modelo de invocación del proceso en BPEL en BPM se vería similar a  la siguiente figura.

image

Con esto estaría listo el proceso en BPM invocando un proceso en BPEL a través de la publicación de un servicio en el BUS que lo representa.

No comments: