APIs Arquitectura de Software CloudAPPi Design Technology

WSO2 es un software abierto enfocado a proveer una arquitectura orientada a servicios (SOA) que nos permite cubrir todos los pasos del ciclo de vida de un proyecto de desarrollo. Forma parte de la plataforma WSO2 Integration Agile y se compone de los siguientes productos:

  • WSO2 Api Manager: desarrollo y publicación de APIs

  • WSO2 Identify Server: gestión de credenciales y protocoles de acceso a los recursos.

  • WSO2 Enterprise Integration: implementación de patrones de integración empresariales (EIP)

Arquitectura

WSO2 EI es un producto de integración para proyectos en la nube y proyectos en contenedores. Permite escalar y encontrar soluciones de integración sofisticadas en la mejora del producto final, utilizando estilos de arquitectura de integración como microservicios o ESB centralizado.

La arquitectura de WSO2 EI es la de la imagen

Proporcionando un middleware con capacidades de integración de datos, integración de procesos, monitoreo y capacidades de intermediación de mensajes.

Capacidad ESB (Enterprise Service Bus) como canal tanto centralizado como descentralizado para integrar servicios, datos y sistemas heredados, propietarios o tipo SaaS.

Ofrece una amplica gama de conectores para la interacción con otros sistemas. Integración de datos y transformación de los mismos en diferentes formatos y capacidades analíticas mediante herramientas visuales como depuración interactiva o mapeo de datos.

Micro Integrator

Micro Integrator es el runtime que nos permitirá la creación  de APIs, servicios SOAP o servicios de acceso a base de datos. Está basado en configuraciones xml.

Incluye una herramienta CLI, un operador de Kubernetes, panel de monitoreo y cientos de conectores.

Centralizado, utilizando Micro Integrator como la capa de integración central.

Descentralizado, permite usar Micro Integrator en sus integraciones nativas de la nube, donde se utilizan microservicios para integrar las distintas API, eventos o sistemas.

 

Integration Studio

Integration Studio será la herramienta visual, basada en Eclipse que usaremos para el diseño de integraciones a través del drag and drop.

Las principales características que nos ofrece son:
· Templates preconstruídos
· +200 conectores a los principales sistemas y un custom builder
· Transformación visual de datos (CSV-JSON-XML)
· Herramientas de logging y debug
· Casos de test y construcción de mocks para pruebas
· Lista de templates

Entorno

WSO2 EI Micro Integrator 7.0 se ha instalado en un VM con Windows 10, pudiendo instalarse en Docker o Kubernetes

La máquina tiene las siguientes características:

  • Windows 10 Pro

  • Open JDK versión 8

  • Apache

Instalación y configuración

 

Se ha realizado la instalación siguiendo la guía 

https://docs.wso2.com/display/EI650/Installing+WSO2+Integration+Studio

Se descarga la distribución para el sistema operativo que vamos a usar.

Lo descomprimimos y ya está listo para iniciar la app Integration Studio.

Casos de uso

Aquí se puede encontrar más información al respecto:
https://ei.docs.wso2.com/en/latest/micro-integrator/use-cases/integration-use-cases

Enrutamiento de mensajes

El enrutamiento puede estar basado según:

  • encabezado

  • reglas

  • políticas

Dirigiendo la llamada al endpoint correcto dependiendo de, por ejemplo, el valor de un parámetro.

Transformación de mensajes

Permite la comunicación entre un cliente y un servicio que aceptan diferentes formatos. Por ejemplo JSON a XML. 

También podremos mapear los mensajes, pudiendo cambiar no sólo el formato, sino la estructura del mensaje que se va a entregar.

Orquestación de servicios

Se pueden exponer varios servicios dentro de un único servicio, de modo que el cliente sólo tendrá acceso a un único servicio que encapsula todos los demás servicios.

  • Síncrono, varios servicios se orquestan uno detrás de otro de manera síncrona.

  • Asíncrono, se invocan varios servicios en paralelo sin ningún bloqueo

El cliente recibirá un payload con la información seleccionada en cada uno de los servicios y resumida en una única respuesta final.

Procesado asíncrono de mensajes

Se utiliza para evitar la pérdida de información en la entrega de mensajes a servicios que sólo aceptan mensajes de solicitud a una velocidad determinada.

Con este proceso, los mensajes nunca se pierden, sino que se quedan encolados en un almacén (Message Broker).

El procesador recuperará estos mensajes para entregarlos al servicio final.

Integración de datos

Realizamos la conexión y consulta a distintas bases de datos desde la pestaña Data Service, bien usando el CLI (Interfaz por comandos) o la interfaz gráfica del Integration Studio. Podemos usar una base de datos existente y bien crear la nuestra propia mediante el CLI. Añadir las Querys deseadas y mapear el resultado en el formato deseado, por ejemplo XML, con el Cliente HTTP que viene integrado en el Integration Studio probaremos que la conexión se hizo correctamente.

https://ei.docs.wso2.com/en/latest/micro-integrator/use-cases/tutorials/sending-a-simple-message-to-a-datasource/

Monitoreo

En WSO2 EI tenemos varias formas de monitorizar, mediante una serie de sistemas de logs:

  • Logs del sistema

  • Logs de aplicación

  • El mediador Log

  • Logs de acceso

  • Traceador SOAP

Para habilitar los DEBUG LOGS, sencillamente cambiando este valor:  log4j.category.org.apache.synapse=DEBUG en el directorio MI_HOME/conf

Los TRACE LOGS tracean el path completo cuando un mensaje pasa a través de una secuencia. Añadiremos trace=”enable”en el archivo de configuración del proxy.

Conclusiones

WSO2 EI es una opción muy bien acaba, fácil de configurar e incluye una gran variedad de conectores y políticas que podemos integrar en nuestras API. El Integration Studio nos facilita toda la implementación de una manera visual, esquematizando en todo momento lo que estamos desarrollando y permitiendo una rápida depuración mediante logs y un cliente http para realizar un testeo rápido.

Enlaces de interés

WSO2 Enterprise Integrator official website – https://wso2.com/integration/

WSO2 APIM official website – https://wso2.com/api-management/

WSO2 Enterprise Integrator 7.x series – https://ei.docs.wso2.com/en/latest

WSO2 Micro Integrator – https://ei.docs.wso2.com/en/latest/micro-integrator/overview/quick-start-guide/

WSO2 Integration Studio (developer tool) – https://ei.docs.wso2.com/en/latest/micro-integrator/develop/WSO2-Integration-Studio/

Develop integration use cases using WSO2 EI – https://ei.docs.wso2.com/en/latest/micro-integrator/use-cases/integration-use-cases/

WSO2 Enterprise Integrator 6.x series – https://docs.wso2.com/display/EI660/Quick+Start+Guide

WSO2 Micro Integrator vs WSO2 EI 6.x series – https://ei.docs.wso2.com/en/latest/micro-integrator/references/comparisong-mi7-ei6xx/

 

Author

CloudAPPi

Leave a comment

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