Chat with us, powered by LiveChat
Hola Mundo en Oracle BPEL 12c
Gestionando personas en turbulencia-Gestión de conflictos, abordaje organizacional
21 julio, 2017
Crear Managed Servers usando WLST
27 julio, 2017

Oracle BPEL como parte de los componentes que nos provee Oracle SOA Suite, nos permite realizar la orquestación de servicios como un flujo de proceso.

Por lo anterior BPEL nos provee de beneficios como la reutilización de servicios, aplicaciones más flexibles a los cambios que requiera la organización, reducción de la complejidad y reducción de precios de una integración.

Vamos a ver a continuación como se hace un crea un proceso BPEL, haciendo el conocido Hola Mundo.

Primero vamos abrir JDeveloper 12c, la ultima versión disponible 12.2.1.2 y vamos a crear una nueva aplicación, esta será de tipo SOA:

A ésta le pondremos un nombre, así como al proyecto:

Le pondremos nombre al Compuesto y vamos a seleccionar una aplicación Compuesta con un proceso BPEL:

Luego de darle al botón Finish aparecerá la ventana donde configuraremos nuestro proceso BPEL, vamos a configurar el nombre, el tipo, los parámetros de entrada y salida de nuestro proceso. Para los parámetros de entrada y salida vamos a utilizar los siguientes XSD de ejemplo.

XSD de entrada:

Donde enviaremos un mensaje que puede llevar, remitente, destinatario y el cuerpo del mensaje. Copiar XSD mensajeEntrada

XSD de salida:

Donde vamos a mostrar el mensaje concatenado con el nombre de quien lo envía. Copiar XSD mensajeSalida

La configuración de nuestro proceso BPEL quedará configurado de la siguiente manera:

Nota: en nuestro ejemplo hemos seleccionado que el proceso será Synchronous porque vamos a necesitar que el proceso nos devuelva una respuesta luego de ejecución.

Nos aparecerá a continuación nuestro proceso, donde veremos el punto de inicio receiveInput y final del proceso replyOutput:

Ahora vamos a agregar una Actividad de Asignación, la cual podemos encontrar en los componentes para BPEL y que nos permite realizar asignaciones a las variables o elementos como parte de nuestro payload:

La arrastramos y la colocamos entre los puntos de inicio y fin del proceso:

Nota: luego de agregar la Actividad de Asignación aparecerá un icono de advertencia junto a la actividad, esto debido a que ésta no ha sido implementada.

Una vez hayamos agregado la actividad al proceso la daremos doble click para realizar la asignación como parte del ejemplo y aparecerá la siguiente ventana donde podremos ver los parámetros de entrada y salida que especificamos antes cuando configuramos el proceso BPEL:

Nota: la asignación se realiza de izquierda a derecha.

Como en el ejemplo vamos a mostrar el resultado de la concatenación de 2 elementos del parámetro de entrada, vamos a necesitar de una expresión, para ello arrastramos el icono de expresión y lo soltamos sobre el elemento de salida «cuerpo» del parámetro de salida:

Posteriormente aparecerá la siguiente ventana donde podremos construir nuestra expresión para asignarle un valor al elemento de salida «cuerpo»:

Acá vamos a utilizar la función «concat» para concatenar los 2 elementos de tipo String. Seleccionamos la función y le damos al botón «Insert Into Expression»:

Nota: La función «concat» la encontraremos entre las funciones de String.

Esta función concatenará 2 o más cadenas de caracteres que le especifiquemos como parámetros. Por ello vamos a agregar los elementos de cuerpo y remitente tal como hicimos con la función. Le expresión nos debe quedar de la siguiente manera:

 

Le damos al botón «OK» para volver a la ventana de asignación. Veremos que ahora para el elemento de «cuerpo» aparecen unos conectores que indican de dónde proviene la información para este elemento:

Le damos al botón «OK» para volver al proceso BPEL. Notaremos que el icono de advertencia que tenía la actividad de asignación ahora ha desaparecido.

Ahora desplegamos el BPEL en nuestro servidor SOA y vamos a probar el funcionamiento de nuestro proceso.

Una vez se haya desplegado, obtenemos el WSDL de nuestro servicio, el cual se puede obtener desde el Enterprise Manager.

Voy a utilizar SoapUI para probar nuestro BPEL, crearé un nuevo proyecto de tipo SOAP y a éste le agregaré el WSDL del BPEL:

Se creará automáticamente un «Request» con el cual podemos probar nuestro servicio, al cual le agregaremos los siguiente valores de prueba, en el remitente «Rinnovo» y en el cuerpo «Mundo»:

Presionamos el botón verde para ejecutar la prueba y veremos que el servicio nos responde con la concatenación de nuestros parámetros ingresados:

 

Como podemos ver el servicio funciona como lo diseñamos, concatenemos a la palabra «Hola» la palabra «Mundo» y a la palabra «De:» le concatenemos «Rinnovo».

¿Por qué nuestro BPEL tiene un WSDL?

Porque cuando estábamos configurando nuestro BPEL marcamos la opción que se expusiera como servicio, ello permite que podamos interactuar con nuestro servicio BPEL. Recordemos además que por ser un componente SOA, SOAP o REST son los protocoles de comunicación predilectos.

Si vemos el compuesto que se genera como parte de una aplicación SOA, podremos ver que aparece nuestro BPEL en los Componentes y que en el apartado de Servicios Expuestos aparece la entrada que nos permite exponer nuestro BPEL como servicio SOAP y por ende ser consumido así como hicimos en la prueba:

 

 

 

 

 

 

 

 

 

 

2 Comments

  1. Marck dice:

    Hola una pregunta, al momento de crear el proyecto no me sale la pantalla donde se meten la entrada y salidas, me podría ayudar con eso de favor.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *