¿Qué es WSO2?
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.
Este software forma parte de la plataforma WSO2 Integration Agile y se compone de los siguientes productos:
- Plataforma WSO2 Api Manager: desarrollo y publicación de APIs.
- Herramienta WSO2 Identity Server: gestión de credenciales y protocolos de acceso a los recursos.
WSO2 Enterprise Integration: implementación de patrones de integración empresariales (EIP).
Arquitectura WSO2 Enterprise Integration
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 siguiente:
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 amplia 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.
¿Qué es WSO2 Integration Studio?
WSO2 Integration Studio es el entorno de desarrollo gráfico de arrastrar y soltar para WSO2 Enterprise Integrator.
Incluye una paleta de herramientas visual, la opción de importar e incluir conectores y vistas de propiedades para configuraciones complejas.
Podremos comenzar nuestros proyectos de integración mediante plantillas predefinidas para facilitar el desarrollo y facilitar la curva de aprendizaje. Al seleccionar una plantilla predefinida, se genera un proyecto que contiene los artefactos de integración y solo es necesario personalizarlo.
Conectores
Los conectores son componentes encapsulados que nos permitirán interactuar con APIs de terceros como Twitter y Salesforce, a la vez que nos proporcionan de métodos y lógica para tratar con productos de terceros, como archivos CSV.
WSO2 tiene centralizados todos sus conectores en un store, categorizados por caso de uso:
https://store.wso2.com/store/pages/top-asset.
Transformación de datos
Integration Studio admite cualquier tipo de transformación de datos (JSON, XML, CSV) mediante un entorno de desarrollo gráfico de arrastrar y soltar que además nos permite comprobar nuestras transformaciones en tiempo real.
También se nos provee de capacidades de ETL (Extract, Transform and Load) con soporte de bibliotecas de terceros.
Testing y Debugging
Integration Studio nos provee de un runtime incorporado para desplegar, ejecutar y depurar todos los ciclos de desarrollo de nuestra integración.
Podremos depurar visualmente con la posibilidad de configurar breakpoints e inspeccionar el mensaje actual y las propiedades actuales en tiempo de ejecución de cualquier etapa del flujo de integración.
Casos de uso
En esta guía se va a hacer un pequeño resumen de los casos de uso más utilizados. 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ónde 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
De esta manera 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.
Los tipos de orquestación pueden ser:
- 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.
En este ejemplo, vemos como de la respuesta recibida de uno de los servicios:
Se extraerá sólamente la información necesaria para construir la respuesta final:
Procesamiento 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
Procesamiento de archivos
En muchos ámbitos empresariales, existen diferentes casos de uso relacionados con la gestión de archivos.
WSO2 EI nos permite procesar archivos de diferentes formas:
– Lectura, Escritura y Actualización de archivos:
Los archivos pueden estar ubicados en el sistema de archivos local o en una ubicación remota a la que se puede acceder a través de protocolos como FTP, FTPS, SFTP, SMB. Por lo tanto, el sistema utilizado para procesar esos archivos debe ser capaz de comunicarse a través de esos protocolos.
– Procesar los datos
El sistema debe ser capaz de extraer información relevante del archivo. Por ejemplo, si se requiere procesar archivos XML, el sistema debe ser capaz de ejecutar y extraer la información relevante.
– Ejecutar alguna lógica de negocio
El sistema debe ser capaz de realizar las acciones necesarias para adherirse a la casuística empresarial y enviar la información procesada a otros sistemas a través de diferentes protocolos de comunicación.
Ejecución periódico de procesos de integración
La ejecución de un proceso de integración en un momento determinado es otro requisito común en la integración empresarial. Por ejemplo, en una organización, puede ser necesario ejecutar un proceso de integración para sincronizar dos sistemas cada día al final del día.
Con WSO2 EI, la ejecución de un proceso de mediación de mensajes puede automatizarse para que se ejecute periódicamente mediante una «tarea programada». Puede programar una tarea para que se ejecute en el intervalo de tiempo de ‘t’ durante ‘n’ número de veces o para que se ejecute una vez que se inicie nuestro servidor.
Conmutación de protocolos
Distintas aplicaciones suelen utilizar protocolos diferentes para la comunicación. Por lo tanto, para que dos sistemas se comuniquen con éxito, es necesario cambiar el protocolo (que pasa de un sistema) al protocolo compatible con la aplicación receptora.
Por ejemplo, los mensajes que se reciben a través de HTTP pueden necesitar ser enviados a una cola JMS.
WSO2 nos permite mediante proxys interceptar los mensajes y cambiar el protocolo mediante mediaciones.
Enlaces de interés
- Official website WSO2 Enterprise Integrator – https://wso2.com/integration/
- Link to 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/
- Quick Tour – WSO2 Integration Studio (developer tool) – enlace aquí
- WSO2 Micro Integrator vs WSO2 EI 6.x series – https://ei.docs.wso2.com/en/latest/micro-integrator/references/comparisong-mi7-ei6xx/
Blog realizado por Jesús García
¡Habla con nuestros expertos!
Author