WSO2

Novedades en WSO2 Enterprise Integrator 6.6.0

14th enero 2020

Aunque a finales de año WSO2, sacó su versión 7.0.0. donde da un giro al Enterprise Integrator, priorizando el enfoque de despliegue en la nube y con microservicios. Ya muy cercanos a acabar el año 2019, ha lanzado la versión 6.6.0, continuando y mejorando su actual producto legacy basado en la integración de sistemas.

En esta nueva versión tendremos nuevas mejoras de las que hablaremos a continuación con más detalles, pero también se han añadido una amplia cantidad de parches que arreglan errores existentes en versiones anteriores y también una importante lista de componentes que dejan de estar disponibles y que es importante que conozcamos. 

Qué novedades incluye Enterprise Integrator 6.6.0

1.Soporte Java

Se ha añadido soporte para JDK 11

2.Sistema de trazas

Se ha actualizado la versión del software de trazas, pasándose de usar Log4j a Log4j2. Con lo que ya podremos hacer uso de todas las mejoras que incluye esta segunda versión del famoso software, como puedes ser la ocultación de información sensible en los ficheros logs. 

3. Parametrización de componentes

Un problema a la hora de desplegar una integración a través de distintos entornos productivos, es la gestión de información asociada a dichos entornos. Es decir, cómo gestionamos las URLs de endpoints o contraseñas de servicios, que son distintas en cada entorno. 

En esta nueva versión, WSO2 nos provee la posibilidad de declarar estos endpoints haciendo referencia a variables del propio entorno o a valores de un fichero (por defecto file.properties que se almacena dentro de la carpeta conf). Esta parametrización la podremos realizar tanto a las URI de endpoints, el atributo pinned serves de las tareas programadas, parámetros de conexión en inbound endpoints, message stores y proxy services, y parámetros de conexión de un datasource en un dataservice (pero esta última solo para la inyección a través de variables de entorno). Aquí un ejemplo:

<data name=«DataServiceSample» serviceGroup=«» serviceNamespace=«»>
    <config id=«SourceSample»>
        <property name=«org.wso2.ws.dataservice.user»>$SYSTEM:user</property>
        <property name=«org.wso2.ws.dataservice.password»>$SYSTEM:pass</property>
        <property name=«org.wso2.ws.dataservice.protocol»>$SYSTEM:conn</property>
        <property name=«org.wso2.ws.dataservice.driver»>$SYSTEM:driver</property>
    </config>
</data>

Como vemos en el ejemplo, para el uso de variables de entorno utilizaremos $SYSTEM seguido de dos puntos y el nombre de la variable. Y para los ficheros utilizaremos la misma sintaxis pero con la variable reservada $FILE.

4. Monitorización

Hasta ahora podíamos analizar las estadísticas y trazas del Enterprise Integrator con la ayuda del módulo Analytics integrado en el mismo producto. Pero a partir de ahora también podremos realizarlo con Jaeger. Jaeger es un sistema distribuido de monitorización de trazas de código abierto y basado en Dapper y Zipkin. 

A través del fichero synapse.properties podremos configurar la conexión con Jaeger y qué información queremos monitorizar (payloads, propiedades del mensaje o todo). Aparte,  también podremos ir uno a uno configurando los artefactos de nuestra integración para que también se monitoricen sus trazas. Ejemplo:

<proxy name=«ProxyServiceSample» statistics=«enable» trace=«enable» transports=«https http» xmlns=«http://ws.apache.org/ns/synapse«>

</proxy>

5. Soporte gráfico en el diseño de APIs

A igual que tenemos en el API Manager, ahora desde la consola de administración del Enterprise Integrator también tendremos acceso a un editor gráfico de APIs. 

Cuando accedemos al listado de APIs junto al botón de añadir una nueva API, ahora tendremos el botón de generar una nueva API. Desde esta opción se abrirá el ya conocido editor, que nos permitirá crear desde cero una API o importar una ya existente a través de su fichero swagger. 

También podremos editar las APIs con esta nueva interfaz gráfica. E incluso probarlas con la también ya conocida opción Try out. 

6. Mejoras del Integration Studio

WSO2 sigue aumentando su plataforma para el desarrollo, esta vez habilitando la posibilidad de crear suite de pruebas. 

Con esta nueva característica, podremos crear nuestras propias pruebas JUnit asociadas a los artefactos de nuestra aplicación, indicando cuales van a ser los parámetros de entrada y cual va a ser la salida esperada o mockear servicios ajenos a la integración. Además de ejecutar las pruebas con un simple click. 

Funcionalidades eliminadas

Tal y como hemos comentado, también hay un listado de componentes que dejan de estar ya disponibles en esta versión. Algunos de los cuales por que han podido quedarse obsoletos, como el Spring Mediator, y otros porque su uso ha dejado de ser una buena praxis, como los In u Out Mediators. La lista completa es la siguiente: 

  • Priority Executors y Enqueue Mediator. Ambos asociados a la priorización de mensajes. 
  • Bean, POJO Command y Spring Mediators. Los cuales nos permitían interactuar de distintas formas con clases Java, accesibles por la aplicación. 
  • Conditional Router Mediator. Nos permitía realizar una lógica parecida al switch. 
  • In, Out Mediators. Permitían controlar el flujo de entrada o salida dentro de una secuencia pero han dejado de ser útiles con el call/response mediator. 
  • Event Mediator e In memory Topics. Nos permitían el envío de mensajes a Topic.
  • ESB artifacts option en la consola de administración.

Todos ellos ya habían sido deprecados en la versión 6.5.0, básicamente por ser características muy poco usadas. 

Como podéis apreciar, la WSO2 tiene muy activo su desarrollo en el Enterprise Integrator mejorándolo y añadiendo nuevas e interesantes características en cada nueva versión.

Por lo que es imprescindible si queremos mejorar en nuestros desarrollos e integraciones y estar al tanto sobre todo lo que ocurre en el mundo WSO2, estar pendiente de nuestro Blog para no perderos nada.

 

daniel blanco
Written By

Daniel Santiago Blanco Cuadrado

Senior Integration Engineer en Chakray Consulting