Ir al contenido principal

WSO2 ESB Tutorial: Entradas en el registro local, puntos finales reutilizables y secuencias.

En este artículo aprenderemos cómo reutilizar para vuestros desarrollos, secuencias y puntos finales mediante la clave nombre de cada uno de ellos.

-Antes de continuar si te perdiste el anterior tutorial, ¡ponte al día ya mismo!-

Configuración del ESB

En el siguiente diagrama se muestra un ejemplo de configuración que hay que desplegar en el ESB. En la definición se usa un LocalEntry o registro local. Dicho  registro local actúa como un registro de memoria donde puede almacenar cadenas de texto, cadenas XML y URL. Estas entradas se pueden recuperar de un mediador. Además, se pueden crear directamente en la configuración del Enterprise Service Bus o por medio del Interfaz de Usuario.

-Descubre la razón por la que WSO2 ESB es la mejor solución de integración empresarial para tu negocio –

  • Cómo funciona

El siguiente diagrama resume  todo lo que desarrollaremos:

diagram platform wso2

-WSO2 ESB Tutorial 1: Enrutamiento Simple Basado en el Contenido del Mensaje con Filter Mediator-

En nuestro caso el elemento <localEntry key=”version”>0.1</localEntry> ha generado una zona de memoria con el valor 0.1. Esta entrada en el registro local se puede ver haciendo uso de la interfaz. Para ello, debemos  ir a la parte izquierda de la pantalla donde indica ‘Service Bus’, tal y como muestra la imagen.

WSO2 Enterprise Service Bus

Si seleccionamos ‘Local Entries’ aparecerá el contenido del registro local:

local register wso2

Inlined Text, almacena una entrada de texto sin formato, y si pulsamos ‘Edit’ podremos ver su contenido:

Inlined text entry

-No te pierdas el caso de éxito de la integración de sistemas con WSO2 en una compañía automovilísitca líder del mercado-

  • Probando la configuración.

Ahora podemos probar la configuración del ESB. Para ello lo primero que debemos hacer es arrancar el backend, y para iniciar el servidor AXI2Server:

wso2esb-4.9.0/samples/axis2Server$ ./axis2server.sh

Tras esto, para enviar la request desde el cliente debemos ir a:
wso2esb-4.9.0/samples/axis2Client$

Y escribir:

ant stockquote -Daddurl=http://localhost:9000/services/SimpleStockQuoteService -Dtrpurl=http://localhost:8280/

Esta es la request que se envía desde el cliente al ESB:

answer client to ESB

La request entra por el ‘main’ sequence. La secuencia principal actúa como punto de entrada predeterminado para los mensajes recibidos por Synapse. En esa secuencia se crea una propiedad ‘direction’ con el valor ‘incoming’. A continuación se hace una llamada a la secuencia ‘stockquote’, definida como secuencia independiente con un nombre y por tanto reutilizable. Esta secuencia imprime por consola el valor de la propiedad: Text, version (definida en el LocalEntry), y direction:

TEXT VERSION WSO2

La función XPath get-property () puede leer las propiedades de los mensajes locales al mensaje actual, las entradas de registro local o remoto, las propiedades de contexto del mensaje Axis2 y los encabezados de transporte.

Al final de la secuencia se encuentra un mediador que envía la request a un punto final definido anteriormente con el nombre ‘simple’.

La request le llega al punto final y éste retorna la response que pasa por el mediador ‘out’:

mediator out wso2

Finalmente, el cliente puede visualizar el resultado por la línea de comandos:

command line

Para tener más información en la salida del log por consola es mejor activar el wire log. De este modo tenemos detalles de la cabecera del mensaje y del payload. Para ello,debemos ir a ‘Configure’, ‘Logging’.

wso2 esb logging

El el cuadro de texto ‘Filter Loggers by’, debemos teclear: ‘wire’ y pulsar ‘Contains’. Como podemos observar, aparecen tres tipos de loggers, y tendremos que seleccionar para todos ellos ‘TRACE’, tal y como muestra la siguiente imagen.

logging configuration wso2

Por otro lado, para probar el funcionamiento de la secuencia ‘fault’, podemos parar el backend con Control+c. Después enviar otra request desde el cliente, (como ya mencionamos con anterioridad cómo hacerlo) y observar los logs de la consola del Enterprise Service Bus. Ahora se aprecia cómo se imprimen el valor de las propiedades definidas en esta secuencia: MESSAGE, ERROR_CODE y ERROR_MESSAGE.

message wso2

Conclusión

Gracias a que las secuencias y puntos finales se pueden etiquetar por su nombre, éstas se pueden reutilizar en distintos puntos de la configuración del Enterprise Service Bus. Hecho que  permite aplicar la buena práctica de la reutilización del código y la generación de librerías de secuencias, algo similar a lo que sucede en el mundo de la programación. Además de esto, el ESB tiene la habilidad de crearnos un espacio de memoria definido en el LocalEntry, donde podemos almacenar nuestras variables estáticas y usarlas como variables en el código. Tal y como puedes observar, esto permite aplicar otra buena práctica para no incluir valores estáticos en el código de nuestras configuraciones. Es genial ¿no crees?