Proyecto simple de BPEL con Eclipse y el BPS BPEL...

11
Servicios Web JCCR ® 1 Proyecto simple de BPEL con Eclipse y el BPS BPEL de WSO2 Contenido 1. Introducción 2. Escenario del tutorial 3. Comienzo 3.1. Escribir una aplicación simple helloworld usando el plug-in de Diseño BPEL de Eclipse 3.2. Despliegue del proyecto BPEL en Apache ODE 4. BPS BPEL: Plug-in de exportación para Eclipse 4.1. Despliegue del artefacto BPEL en WSO2 BPS 5. Documentación y Definición del Servicio (WSDL) 1. Introducción El Lenguaje de Ejecución de Procesos de Negocio (BPEL – Business Process Execution Language), es un lenguaje estándar ejecutable de OASIS para especificar interacciones don Servicios Web. Los procesos en BPEL exportan e importan información mediante el uso de las interfaces de los Servicios Web exclusivamente. BPEL es u lenguaje de Orquestación basado en XML. En un lenguaje de orquestación, la secuencia de intercambio de mensajes es controlada mediante el diseñador de la orquestación. El Servidor de Procesos de Negocio de WSO2 (BPS - Business Process Server) y el Motor Director de Orquestación de Apache (ODE - Orchestration Director Engine) son dos motores de workflow para procesos de negocio ejecutables que son compatibles con BPEL; hacen posible la composición de servicios Web a través de la orquestación de las interacciones entre servicios. El BPS BPEL Exporter es un plug-in de Eclipse para exportar un proyecto BPEL que fue creado por el Diseñador BPEL de Eclipse. Cualquier artefacto creado desde este plug- in de exportación puede ser desplegado o deployado en BPS WSO2 o en ODE. 2. Escenario del Tutorial Se asume que necesitas crear un proceso BPEL usando el Diseñador BPEL y deployarlo en ODE o en WSO2 BPS. Este tutorial cubre el desarrollo, deployando una aplicación BPEL simple helloworld usando los plug-ins de Eclipse: Diseñador BPEL y Exportador BPS BPEL.

Transcript of Proyecto simple de BPEL con Eclipse y el BPS BPEL...

Page 1: Proyecto simple de BPEL con Eclipse y el BPS BPEL …climate.cs.buap.mx/.../Lecturas/06_WSO2_Tutorial-BPEL_y_Eclipse.pdf · WSO BPS BPEL Exporter (OPCIONAL) ANTES DE CONTINUAR, ...

Servicios Web JCCR ®

1

Proyecto simple de BPEL con Eclipse y el BPS BPEL de WSO2

Contenido

1. Introducción 2. Escenario del tutorial 3. Comienzo

3.1. Escribir una aplicación simple helloworld usando el plug-in de Diseño BPEL de Eclipse

3.2. Despliegue del proyecto BPEL en Apache ODE

4. BPS BPEL: Plug-in de exportación para Eclipse 4.1. Despliegue del artefacto BPEL en WSO2 BPS

5. Documentación y Definición del Servicio (WSDL)

1. Introducción

El Lenguaje de Ejecución de Procesos de Negocio (BPEL – Business Process Execution Language), es un lenguaje estándar ejecutable de OASIS para especificar interacciones don Servicios Web. Los procesos en BPEL exportan e importan información mediante el uso de las interfaces de los Servicios Web exclusivamente. BPEL es u lenguaje de Orquestación basado en XML. En un lenguaje de orquestación, la secuencia de intercambio de mensajes es controlada mediante el diseñador de la orquestación. El Servidor de Procesos de Negocio de WSO2 (BPS - Business Process Server) y el Motor Director de Orquestación de Apache (ODE - Orchestration Director Engine) son dos motores de workflow para procesos de negocio ejecutables que son compatibles con BPEL; hacen posible la composición de servicios Web a través de la orquestación de las interacciones entre servicios. El BPS BPEL Exporter es un plug-in de Eclipse para exportar un proyecto BPEL que fue creado por el Diseñador BPEL de Eclipse. Cualquier artefacto creado desde este plug-in de exportación puede ser desplegado o deployado en BPS WSO2 o en ODE.

2. Escenario del Tutorial

Se asume que necesitas crear un proceso BPEL usando el Diseñador BPEL y deployarlo en ODE o en WSO2 BPS. Este tutorial cubre el desarrollo, deployando una aplicación BPEL simple helloworld usando los plug-ins de Eclipse: Diseñador BPEL y Exportador BPS BPEL.

Page 2: Proyecto simple de BPEL con Eclipse y el BPS BPEL …climate.cs.buap.mx/.../Lecturas/06_WSO2_Tutorial-BPEL_y_Eclipse.pdf · WSO BPS BPEL Exporter (OPCIONAL) ANTES DE CONTINUAR, ...

Servicios Web JCCR ®

2

3. Comienzo

Se asume que ya has instalado las siguientes aplicaciones en tu máquina: i. JDK 1.7.x o superior

ii. Eclipse SDK 4.4 (Eclipse Luna) iii. Apache Tomcat iv. Apache ODE v. WSO2 BPS (OPCIONAL)

vi. BPEL Designer plugin vii. WSO BPS BPEL Exporter (OPCIONAL)

ANTES DE CONTINUAR, se recomienda revisar la sección de detalles técnicos de la instalación (página 2) del documento “Apache Tomcat, ODE y BPEL en Eclipse Luna”

3.1. Escribir una aplicación simple helloworld usando el plug-in de Diseño BPEL

de Eclipse

Ahora nos enfocaremos en cómo desarrollar una aplicación simple del estilo helloworld usando el plug-in de Diseño BEPEL de Eclipse. Después de instalar exitosamente el plug-in de Diseño BPEL de Eclipse, verás la opción correspondiente para la creación de un BPEL project, tal y como seleccionas cualquier otro tipo de proyectos en el entorno de desarrollo de Eclipse. Paso 1: Antes de comenzar con este paso, asegúrate de haber ejecutado el servidor ODE, al menos una vez. Si no, éste no será visible en la ventana del Target Runtime. Ve a new other Bpel 2.0- Bpel Project y finalmente clic en next.

Page 3: Proyecto simple de BPEL con Eclipse y el BPS BPEL …climate.cs.buap.mx/.../Lecturas/06_WSO2_Tutorial-BPEL_y_Eclipse.pdf · WSO BPS BPEL Exporter (OPCIONAL) ANTES DE CONTINUAR, ...

Servicios Web JCCR ®

3

Dale un project name como HelloWorld, un Target Runtime como Apache Ode 1.x Runtime. Si éste no está listo en la lista deslizable, da clic en Modify debajo de Configuration y en la pestaña de Runtimes puedes seleccionar Apache Ode 1.x Runtime. Si aun así no puedes encontrar el ODE runtime, da clic en botón new y encontrarás Apache ODE 1.x Runtime. En cada caso, elige Bpel 2.0 facet dentro del Project Facet del asistente que obtienes al hacer clic en el botón Modify en Configuration y haz clic en ok.

Ahora el asistente se verá como sigue:

Page 4: Proyecto simple de BPEL con Eclipse y el BPS BPEL …climate.cs.buap.mx/.../Lecturas/06_WSO2_Tutorial-BPEL_y_Eclipse.pdf · WSO BPS BPEL Exporter (OPCIONAL) ANTES DE CONTINUAR, ...

Servicios Web JCCR ®

4

Ahora da clic en el botón Finish. Paso 2: Ahora tienes un proyecto “HelloWorld” BPEL vacío en tu espacio de trabajo o workspace. Da clic derecho sobre el proyecto (sobre la carpeta bpelContent), selecciona new other BPEL 2.0 New BPEL Process File y da clic en next. Rellena los Process Details poniendo “helloworld” en Process Name, http://helloworld para el Namespace y selecciona Synchronous BPEL Process en Template y da clic en next. Ahora selecciona el proyecto que acabas de crear (HelloWorld) y da clic en finish. Tu proceso helloworld bpel quedará como sigue:

Y el workspace quedará como sigue:

Page 5: Proyecto simple de BPEL con Eclipse y el BPS BPEL …climate.cs.buap.mx/.../Lecturas/06_WSO2_Tutorial-BPEL_y_Eclipse.pdf · WSO BPS BPEL Exporter (OPCIONAL) ANTES DE CONTINUAR, ...

Servicios Web JCCR ®

5

Cuando selecciones cada componente UI, tú serás capaz de ver las propiedades de cada componente a través de la ventana de Properties. Si no puedes localizar la ventana de propiedades, dirígete a Window Show View Properties. Puede ser que necesites dar clic en Other… si no encontraras la opción en el panel de Show View. Paso 3: Da clic en reciveInput y observa la ventana de propiedades y déjalos como están. Paso 4: Agrega una actividad Assign entre las de recibir (receiveInput) y responder (replyOutput). Expande la ventaja de Palette y da clic en la opción de Actions para después seleccionar la acción Assign. Arrastra y suelta entre Recive y Reply, como se ve a continuación:

Paso 5: En la ventana de propiedades de Assign, selecciona la pestaña de Details y da clic en New. Entonces en el atributo From selecciona Variable y después ‘intpu>payload>input:string’. Para el atributo To también selecciona Variable y ‘output>payload>result:string’ como lo muestra la siguiente imagen. Si se te pide inicializar una de las variables ACEPTA y guarda los cambios realizados al proceso.

Page 6: Proyecto simple de BPEL con Eclipse y el BPS BPEL …climate.cs.buap.mx/.../Lecturas/06_WSO2_Tutorial-BPEL_y_Eclipse.pdf · WSO BPS BPEL Exporter (OPCIONAL) ANTES DE CONTINUAR, ...

Servicios Web JCCR ®

6

3.1.1. Vinculación del Proceso

Paso 1: Ahora abre el archivo WSDL en la vista Design y, si no existe la vinculación al servicio, agrega un nuevo servicio (service) y una nueva vinculación (binding) dando clic derecho sobre la vista de diseño. Ahora selecciona el elemento Binding y en la pestaña General en la ventana de Properties da clic en Generate Binding Contents. Así verás el asistente Binding Wizard aparecer. En la página de Binding Details selecciona el helloworldport en Port Type, SOAP en Protocol y document literal para SOAP Binding Option. Asigna helloworldBinding en Binding Name. Paso 2: A continuación selecciona New Service y dirígete a la ventana de propiedades y cambia el nombre del servicio a helloworldService. Después selecciona el NewPort y en la ventana de propiedades y dale el nombre de helloworldPort, selecciona helloworldBinding para el Binding en la ventana de Specify Binding. Para el campo de Address escribe “http://localhost:8080/ode/processes/helloworld” y selecciona SOAP para Protocol. Ahora la vista de diseño del archivo WSDL se verá como la siguiente imagen:

3.1.2. Diseño del descriptor de Despliegue Paso 1: Para desplegar (“deployar”) el proceso en ODE, tienes que crear un archivo descriptor de despliegue. Para esto da clic derecho en el proyecto Hello World bpel y ve hacia new other BPEL 2.0 Apache ODE Deployment Decriptor y da clic

Page 7: Proyecto simple de BPEL con Eclipse y el BPS BPEL …climate.cs.buap.mx/.../Lecturas/06_WSO2_Tutorial-BPEL_y_Eclipse.pdf · WSO BPS BPEL Exporter (OPCIONAL) ANTES DE CONTINUAR, ...

Servicios Web JCCR ®

7

en next. En el asistente emergente, verifica si está seleccionado el proyecto BPEL correcto (i.e. HelloWorld) y da clic en finish. Paso 2: Abre el archivo Descriptor de Despliegue (deploy.xml) en el editor y en la sección de Inbound Interfaces, en el campo de Associated Port selecciona helloworldPort de la lista desplegable que aparecerá. Sólo haz clic en los otros campos y verás que los detalles necesarios se seleccionarán automáticamente. Ahora el archivo deploy.xml lucirá como sigue:

Ahora tu proceso está listo para ser desplegado en ODE. NOTA: Para desplegarlo en WSO2 BPS, tienes que crear un archivo Zip. Para esto el plug-in BPS BPEL de Eclipse será útil. 3.2. Despliegue del proyecto BPEL en Apache ODE

Dirígete a la carpeta “webapps” de Tomcat. Ahí encontrarás una carpeta llamada “ode”. Si no puedes encontrar esta última carpeta, significa que debes ejecutar el servidor de Tomcat al menos por una vez, después de copiar el archivo ode.war dentro de la carpeta “webapps” de Tomcat. Crea una carpeta dentro del ruta tomcat/webapps/ode/WEB-INF/processes y copia el archivo .bpel (i.e. helloworld.bpel), el archivo .wsdl (i.e. helloworldArtifacts.wsdl) y el archivo descriptor del despliegue con ODE (i.e. deploy.xml) en seguida ejecuta el servidor tomcat en caso de que el servidor no esté en estatus iniciado y listo.

Page 8: Proyecto simple de BPEL con Eclipse y el BPS BPEL …climate.cs.buap.mx/.../Lecturas/06_WSO2_Tutorial-BPEL_y_Eclipse.pdf · WSO BPS BPEL Exporter (OPCIONAL) ANTES DE CONTINUAR, ...

Servicios Web JCCR ®

8

RECOMENCACIÓN: durante el desarrollo, y de preferencia, los 3 archivos anteriores debieron quedar en la misma ruta u carpeta del proyecto. Cuando inicies ODE (http://localhost:8080/ode) verás un archivo extra con la extensión .deployed que se habrá creado en tomcat/webapps/ode/WEB-INF/processes. En el navegador ve a la sección de processes, en el homepage de Apache ODE, y veras que el proceso helloworld ha sido deployado, como se muestra en la siguiente imagen.

4. Plug-in Exportador BPS BPEL de Eclipse

En este tutorial se asume que ya has instalado el plug-in Exportador BPS BPEL en tu Eclipse. Paso 1: Importa el proyecto BPEL creado en el workspace si tu workspace no ha incluido el proyecto BPEL requerido. Esto puede hacerse dando clic en file import General Existing Projects dentro de Workspace y da clic en next. Selecciona la carpeta del proyecto BPEL y da clic en finish. Paso 2: Da clic derecho en el proyecto BPEL y selecciona Export. En la ventana emergente de exportación selecciona WSO2 BPS Bpel Artifact desde el WSO2 Exporter y da clic en next.

Page 9: Proyecto simple de BPEL con Eclipse y el BPS BPEL …climate.cs.buap.mx/.../Lecturas/06_WSO2_Tutorial-BPEL_y_Eclipse.pdf · WSO BPS BPEL Exporter (OPCIONAL) ANTES DE CONTINUAR, ...

Servicios Web JCCR ®

9

Selecciona el proyecto BPEL y la ubicación en donde deseas que se guarte el artefacto creado y da clic en finish.

Ahora ya tendrás el artefacto BPEL que puede ser deployado en WSO2 BPS.

Page 10: Proyecto simple de BPEL con Eclipse y el BPS BPEL …climate.cs.buap.mx/.../Lecturas/06_WSO2_Tutorial-BPEL_y_Eclipse.pdf · WSO BPS BPEL Exporter (OPCIONAL) ANTES DE CONTINUAR, ...

Servicios Web JCCR ®

10

4.1. Despliegue del artefacto BPEL en WSO2 BPS Ejecuta el Servidor de Procesos de Negocio (BPS) de WSO2 yendo a wso2bps-1.0.1/bin en línea de comandos y ejecutando wso2server.sh / wso2server.bat, a continuación ve a https://localhost:9443/carbon e ingresa como admin. Da clic en Add BPEL desde la sección de Business Processes y busca la ruta del artefacto BPEL que creaste con ayuda del plug-in y da clic en upload. Si no existen errores, obtendrás un mensaje diciendo “upload successful”. De la lista de servicios, puede verificar si el artefacto cargado se encuentra ahí. Puedes probar el servicio dando clic en la opción de Try this service.

5. Documentación y Definición del Servicio (WSDL)

La documentación relacionada con el proceso “helloworld” generado en BPEL puede ser consultada desde el panel de administración en http://localhost:8080/ode/ en la sección de “Deployment Browser”

URL directa: http://localhost:8080/ode/deployment/ En base a la configuración previa del servicio, la WSDL pública del servicio Web proporcionado desde el Apache ODE y su documentación se encuentra en:

URL directa: http://localhost:8080/ode/deployment/services/ WSDL (holamundo): http://localhost:8080/ode/processes/holamundo?wsdl

Ahora finalmente puedes realizar una prueba creando un cliente que consuma dicho servicio desde cualquier lenguaje de programación, de forma local, o probando el servicio mediante el uso del ya conocido SoapUI:

Page 11: Proyecto simple de BPEL con Eclipse y el BPS BPEL …climate.cs.buap.mx/.../Lecturas/06_WSO2_Tutorial-BPEL_y_Eclipse.pdf · WSO BPS BPEL Exporter (OPCIONAL) ANTES DE CONTINUAR, ...

Servicios Web JCCR ®

11