Chakray integración-service-wso2 esb-bonitabpm-20140504
description
Transcript of Chakray integración-service-wso2 esb-bonitabpm-20140504
w w w . c h a k r a y . c o m
Integrar “Business Services”
publicados en WSO2 ESB con
Bonita BPM
Luis Peñarrubia Peñalba
En este documento detallaremos como integrar una serie de funcionalidades de OpenBravo
ERP expuestos como “Business Services” usando un Service Proxy publicado en WSO2
ESB (WSO2 Enterprise Service Bus) con Bonita BPM.
2
Por Luis Peñarrubia IT Consultant
Integrar “Business Services” publicados en WSO2 ESB con
Bonita BPM
En este documento detallaremos como integrar una serie de funcionalidades de
OpenBravo ERP1 expuestos como “Business Services” usando un Service Proxy
publicado en WSO2 ESB2 (WSO2 Enterprise Service Bus) con Bonita BPM3.
Para ello vamos a diseñar un simple diagrama BPM con la ayuda de Bonita Studio en
el que deberemos crear un conector para acceder al Service Proxy publicado en
WSO2 ESB con los “Business Services” de OpenBravo ERP. Hemos divido el artículo
en los siguientes puntos:
1. Instalación WSO2 ESB y Bonita BPM
2. Diagrama BPM con Bonita Studio
3. Ejecutar diagrama BPM
1 http://www.openbravo.com/ 2 http://wso2.com/products/enterprise-service-bus/ 3 http://www.bonitasoft.com/
3
Por Luis Peñarrubia IT Consultant
1. Instalación WSO2 ESB y Bonita BPM
Debemos tener instalados los productos WSO2 ESB y Bonita BPM. En este caso
hemos utilizado las versiones ESB 4.8.0 y Bonita BPM Community Edition 6.0.4 sobre
un entorno Windows.
1.1. Instalación WSO2 ESB
La instalación WSO2 ESB es muy sencilla, a continuación se detallan los pasos:
1) Descargar WSO2 ESB. Se descargará un zip con todo el contenido.
2) Descomprimir zip descargado, se creará una carpeta wso2esb-4.8.0.
3) Para arrancar el servidor simplemente debemos ejecutar el fichero
wso2server.bat que se encuentra en la carpeta bin.
4) Una vez arrancado el server podemos comprobar que la instalación ha sido
correcta accediendo a la consola de WSO2 ESB desde nuestro navegador:
http://localhost:9443
El puerto por defecto es el 9443 (en el log que aparece al arrancar el server se
puede comprobar) y el usuario administrador por defecto es admin/admin.
4
Por Luis Peñarrubia IT Consultant
1.2. Instalación Bonita BPM
La instalación de Bonita BPM es muy sencilla, simplemente debemos seguir los pasos
indicados en el wizard de instalación:
1) Descargar Bonita BPM. Se descargará un exe con todo el contenido.
2) Ejecutar exe descargado, aparecerá el típico wizard de instalación.
3) Seguir los pasos que aparecen en el wizard. No destacamos ningún paso ya
que son los típicos de cualquier instalación.
4) Una vez finalizada la instalación en el escritorio aparecerá un acceso directo al
aplicativo.
5
Por Luis Peñarrubia IT Consultant
2. Diseñar diagrama BPM con Bonita Studio
2.1. Introducción
Vamos a diseñar un diagrama BPM que simplemente realizará consultas contra las
funcionalidades de OpenBravo ERP expuestos como “Business Services” usando un
Service Proxy publicado en WSO2 ESB. Para ello, nuestro diagrama tendrá dos
formularios:
Un formulario para indicar que consulta vamos a realizar.
Un formulario que nos mostrará el resultado de la consulta.
Para acceder a los “Business Services” de OpenBravo ERP deberemos crear un
conector que acceda al Service Proxy de WSO2 ESB en el que se encuentran
publicados.
2.2. Crear diagrama
Para crear el diagrama BPM simplemente debemos pulsar sobre el icono New. Nos
aparecerá la página principal con todas las opciones que podemos realizar sobre el
diagrama.
6
Por Luis Peñarrubia IT Consultant
El objetivo de este documento no es explicar todas las opciones que ofrece el
mundo BPM, simplemente nos centraremos en las que nos interesan para la
creación de nuestro diagrama.
2.2.1. Variables a nivel de Pool
Definiremos una serie de variables que serán comunes a todas las tareas de nuestro
diagrama. Para ello definiremos las variables a nivel de Pool, de forma que serán
visibles en todo nuestro diagrama y evitaremos tener que crear las mismas variables
en cada tarea.
En concreto definiremos las siguientes variables:
endpoint: donde está publicado el Service Proxy de WSO2 ESB.
entity: listado de entidades de OpenBravo ERP que podremos consultar en
nuestro Service Proxy.
id: identificador de la entidad de OpenBravo ERP que queremos consultar.
usuario: usuario de OpenBravo ERP con el que realizaremos las consultas.
password: password del usuario de OpenBravo ERP con el que realizaremos
las consultas.
template_request_message: template del mensaje de request que se enviará
al Service Proxy publicado en WSO2 ESB.
request_message: mensaje de request que se enviará al Service Proxy
publicado en WSO2 ESB.
response_message: mensaje de response que nos devolverá el Service
Proxy publicado en WSO2 ESB.
next_step: indica cual es la siguiente tarea que debe ejecutarse de nuestro
diagrama.
Para definir estas variables, deberemos seleccionar el Pool de nuestro diagrama y en
la pestaña General, seleccionar el apartado Data.
7
Por Luis Peñarrubia IT Consultant
Definiremos todas las variables de tipo Text a excepción de la variable entity, que será
una lista con todas las entidades de OpenBravo ERP que podremos consultar.
El siguiente paso será diseñar el flujo de nuestro diagrama.
2.2.2. Flujo del diagrama
Como hemos mencionado, necesitaremos dos formularios en nuestro diagrama:
Datos búsqueda: para especificar los datos concretos de la consulta.
Mostrar resultados: para mostrar los resultados de la consulta.
Necesitaremos por tanto que un usuario rellene los datos de la consulta y visualice los
resultados. Esto significa que en nuestro diagrama BPM deberemos crear dos tareas
de tipo humanas: Datos búsqueda y Mostrar resultados. Además daremos la opción
al usuario de una vez visualizados los resultados, volver a realizar una consulta o
finalizar el proceso. Por tanto nuestro diagrama implementará el siguiente flujo:
8
Por Luis Peñarrubia IT Consultant
Como se puede ver en la imagen, desde la tarea Mostrar resultados podremos:
Finalizar el diagrama (opción por defecto).
Volver a la tarea Datos búsqueda. Para ello comprobaremos mediante un
simple script Groovy4 si en el formulario de Mostrar resultados se ha informado
la variable a nivel de Pool next_step con el valor Paso1 (hemos clicado sobre el
botón de realizar nueva consulta).
4 http://groovy.codehaus.org/
9
Por Luis Peñarrubia IT Consultant
En este punto ya tenemos todo listo para poder entrar en el detalle de cada tarea de
nuestro diagrama.
2.2.3. Datos búsqueda
La tarea Datos búsqueda será de tipo humana (en la tarea se puede observar un icono
de persona) e implementará el formulario donde introduciremos los datos de la
consulta.
Para crear el formulario deberemos seleccionar la tarea Datos búsqueda y en la
pestaña Application, seleccionar el apartado Pageflow.
10
Por Luis Peñarrubia IT Consultant
En este caso seleccionaremos las variables endpoint, entity, id, usuario y password
definidas a nivel de Pool y nos aparecerá un formulario con el siguiente aspecto.
Para definir el detalle de cada campo del formulario, simplemente deberemos
seleccionar el campo y nos aparecerán todas las opciones posibles. En este caso
11
Por Luis Peñarrubia IT Consultant
definiremos que todos los campos excepto id sean obligatorios, también indicaremos
que el campo endpoint sea sólo de lectura.
Por último, necesitaremos que en el botón Buscar del formulario se construya el
mensaje de request con la información introducida por el usuario en el formulario. Este
mensaje será el que se enviará al Service Proxy publicado en WSO2 ESB. Para ello
seleccionaremos el campo Buscar y en el apartado Actions definiremos una acción
que simplemente obtenga la variable de Pool template_request_message y sustituya
los valores del template por los seleccionados por el usuario.
12
Por Luis Peñarrubia IT Consultant
Para hacer esto como se puede observar en la imagen hemos utilizado un simple
script Groovy.
2.2.4. Mostrar resultados
La tarea Mostrar resultados será de tipo humana (en la tarea se puede observar un
icono de persona) e implementará el formulario donde podremos consultar los
resultados de la consulta.
Para crear el formulario deberemos seleccionar la tarea Mostrar resultados y en la
pestaña Application, seleccionar el apartado Pageflow.
13
Por Luis Peñarrubia IT Consultant
En este caso seleccionaremos las variables endpoint, entity, usuario, password,
request_message, response_message definidas a nivel de Pool y nos aparecerá un
formulario con el siguiente aspecto.
14
Por Luis Peñarrubia IT Consultant
Como en esta tarea simplemente mostraremos los resultados de la consulta,
definiremos que todos los campos sean sólo de lectura.
Por último, necesitaremos que el botón Nueva Búsqueda del formulario nos retorne a
la tarea Datos búsqueda. Para ello seleccionaremos el campo Nueva Búsqueda y en
el apartado Actions definiremos una acción que simplemente asigne a la variable de
Pool next_step el valor Paso1.
15
Por Luis Peñarrubia IT Consultant
2.2.5. Crear conector
Para acabar de diseñar el diagrama nos falta crear el conector que acceda al Service
Proxy de WSO2 ESB en el que se encuentran publicados los “Business Services” de
OpenBravo ERP.
En este diagrama el mensaje de request se construye en el submit de la tarea Datos
búsqueda, por lo que vamos a invocar el conector al inicio de la tarea Mostrar
resultados. Para ello debemos seleccionar la tarea Mostrar resultado y en la pestaña
General, apartado Connectors, añadiremos un conector de tipo WebService SOAP
1.2.
16
Por Luis Peñarrubia IT Consultant
Una vez creado el conector, aparecerá en la tarea un icono de identificativo.
Nos aparecerá el wizard para la creación del conector. En este punto necesitaremos
consultar la información del Service Proxy publicado en WSO2 ESB con los “Business
Services” de OpenBravo ERP. Dicha información la podemos obtener desde el
apartado Services List de la consola de WSO2 ESB.
En el primer paso del wizard definiremos los datos generales:
Name: nombre del conector.
17
Por Luis Peñarrubia IT Consultant
Select event: cuando queremos que el conector se ejecute (inicio o fin de la
tarea).
If connector fails: qué hacer si ocurre un error en el conector.
En el segundo paso definiremos los datos de conexión al WebService:
Service NS: nombre del namespace.
Service name: nombre del servicio.
En el tercer paso definiremos los datos de request del WebService:
Port name: nombre del puerto usado por el servicio.
18
Por Luis Peñarrubia IT Consultant
End point address: donde se encuentra publicado el servicio. En este caso le
asignamos la variable de Pool endpoint.
Binding: binding SOAP, en la mayoría de casos
http://www.w3.org/2003/05/soap/bindings/HTTP/
Envelope: envelope del mensaje SOAP. En este caso le asignaremos la
variable de Pool request_message.
En el cuarto paso definiremos datos adicionales del request del WebService:
HTTP headers: Cabeceras HTTP, en este caso no son necesarias.
En el quinto paso definiremos el response. En este caso nos interesa obtener el
envelope y body.
19
Por Luis Peñarrubia IT Consultant
En el sexto y último paso definiremos las operaciones del Output. Es decir que hacer
con la respuesta que obtiene el conector. En este caso asignaremos la respuesta
obtenida a la variable de Pool response_message. Para ello crearemos un simple
script Groovy.
20
Por Luis Peñarrubia IT Consultant
3. Ejecutar diagrama BPM
Una vez finalizado el diseño del diagrama, vamos a comprobar su correcto
funcionamiento. Para ello simplemente desde el Visual Studio de Bonita debemos
clicar sobre el icono Run.
Automáticamente se desplegará el diagrama sobre el engine de Bonita BPM y nos
abrirá un navegador con nuestro diagrama. En este caso como habíamos diseñado
aparecerá el formulario de la tarea Datos búsqueda, donde deberemos introducir los
datos de la consulta y clicar sobre el botón Buscar.
A continuación aparecerá el formulario de la tarea Mostrar resultados, donde
podremos consultar los resultados de la consulta y en caso de querer realizar otra
consulta, podremos volver a la tarea Datos búsqueda clicando sobre el botón Nueva
búsqueda.
21
Por Luis Peñarrubia IT Consultant
22
Por Luis Peñarrubia IT Consultant
Autor:
Luis Peñarrubia
IT Consultant
Chakray Consulting
www.chakray.com
LinkedIn: http://www.linkedin.com/in/luispenarrubia
Twitter: @LuisPenarrubia