Este documento presenta cómo implementar una arquitectura SOA ágil utilizando el stack WSO2. Se describen los objetivos de exponer funcionalidades existentes como servicios y API, resolver desafíos de integración como creación de servicios, mensajería confiable, seguridad, orquestación y BAM. Se propone una metodología iterativa que incluye identificar aplicaciones, crear servicios mediante adaptadores, gobernar e implementar seguridad, hacer mashups, modelar procesos de negocio y capturar KPI. Se incluyen
How to use Redis with MuleSoft. A quick start presentation.
Agile SOA
1. SOA ágil con WSO2
v 1.3
2014.05.22
Roger
CARHUATOCTO
IT
Consultant
Email:
roger
[at]
chakray.com
Twi6er:
@Chilcano
FOTO
2. Índice
1. Objetivos
2. El papel del Stack WSO2
3. Agile SOA
1. Principios
4. Arquitectura de Referencia: ejemplo
5. Definición de Estrategias
1. Metodología
2. Desafíos de Integración
1. Creación de Servicios / API - demo #1
2. Reliable Messaging (RM)
3. Seguridad
4. Orquestación – demo #2
5. BAM
6. Lecciones aprendidas
3. 1. Objetivos
• Comprobar que el stack WSO2 resuelve todos los desafíos
de integración existentes en nuestros Proyectos SOA.
• Enterprise Integration Patterns (EIP), Creación de Servicios y API,
Orquestación de Servicios, Seguridad, BAM y Cloud-Ready.
• Interiorizar los principios básicos a seguir en Proyectos SOA.
• Desacoplamiento, Separation of Concern (SoC), no reinventar la
rueda, zero-code, gobierno, …
• Verificar que la definición de una serie de estrategias de
integración es la base para cumplir las metas marcadas en
Proyectos SOA.
• Comprobar que la Integración con Aplicaciones SaaS es
natural y fácil con el stack WSO2.
4. 2. El papel del Stack WSO2 (1/5)
• Con el Stack WSO2 cubrimos todo el ciclo de vida de
Proyecto SOA (y Cloud).
9. 3. SOA ágil
• Principios:
• Desacoplamiento
• “Separation of Concerns” (SoC) o modulable, agnóstico tecnológicamente,
basado en interfases, etc.
• No reinventar la rueda
• Free & Open Source Technology
• Una rápida búsqueda en SourceForge.net, nos muestra que hay más de:
• 500 CMSs, 30 ESBs, 100 ERPs, 100 CRMs, 50 BPMs, ….
• Zero-code
• Exponer funcionalidades existentes como Servicios (SOAP y/o REST)
creando “wrappers” y empleando “adaptadores” del Middleware (WSO2
ESB). En otras palabras, hacer “Mediación”.
• Gobierno
• Gestionar, asegurar y medir !!.
• Gestionar el ciclo de vida de los proyectos, de las identidades, ALM, KPI,
etc.
10. OpenBravo ERP
Bonita BPM
Liferay
Portal
WSO2 ESB
WSO2
Identity
Server
Bonita
Workflow
Engine
Invoices
I3
Clients
I4
Orders
I1
Payment
I2
Openia
CRM
Finantial
ModuleModule
Bonita
Studio
services orchestration
modeling
DB
existing portlets
WSO2 BAM
(BI, KPI, Dashboard)
BonitaLife Porlets
bonita connectors
Bonita API
REST
View
Layer
Integration
Layer
Business
Layer
KonaKart eCommerce
StoreFront Admin
KonaKart API (SOAP)
KonaLife Porlets
4. Arquitectura de Referencia: ejemplo
Module
authn, authz
Openbravo API (DAL)
WSO2
Message
Broker
Alfresco ECM
ECM / CMS API
Repositorio Archivo
NoSQL
11. 5. Definición de Estrategia: metodología
• Lo recomendable estar alineados a los “Principios de SOA
ágil” y seguir ciertas pautas o metodología.
Inventario de
Aplicaciones
existentes y
funcionalidades.
Son
funcionalidades
que vamos a
exponer como
Servicios.
Usar
adaptadores o
implementar los
tuyos propios.
Crear
Servicios
y/o API.
Modelo de
mensajes
canónico.
Gobernar, asegurar y
medir.
- Centralizar
políticas,
configuraciones.
- Aplicar Seguridad.
- Gestionar
Versionados.
- Monitorizar y medir.
Hacer
Mashup y
Orquestación.
- API
- B2B
- B2C
- Mobile Apps
…
Iterar en modo ágil
1. 2. 3. 4. 5.
12. 5. Definición de Estrategia: desafíos de integración
• En Proyectos SOA solemos encontrarnos con ciertos
desafíos tecnológicos de integración que debemos resolver,
entre ellos:
1. Creación de Servicios / API
2. Mensajería confiable (Reliable Messaging - RM)
3. Seguridad (a todo nivel)
4. Orquestación (definir el flujo de ejecución de los servicios)
5. Monitorear la Actividad del Negocio (Business Activity Monitoring –
BAM)
13. Seguir SOA:
Identificar las funcionalidades de Openbravo que se van a exponer como
servicios desde WSO2 ESB, que posteriormente vamos a consumir desde la
View Layer, Liferay Portal en este caso.
1.
Mediar:
Define la estrategia de Integración (zero-code).
Aprovecharemos que Openbravo expone sus funcionalidades a través de
DAL (Data Access Layer) que son una serie de servicios REST con mensajes
POX.
2.
Gobernar:
Una vez “mediados”, podemos aplicar nuevas características (seguridad,
versionado, QoS, RM, Cache, …).
3.
5.1. Estrategias de integración: Creación de Servicios (1)
Hacer Mashup (View Layer):
Una aplicación completa tendrá un front-end, podemos usar cualquier solución
de Portal para hacer mashup.
4.
14. Openia CRM es un módulo de Openbravo. Este módulo extiende las
funcionalidades de Openbravo relacionado a CRM.
1.
Una vez tengamos OpeniaCRM instalado, la BDs de Openbravo será
extendida, automáticamente se extenderá también el DAL.
Con el DAL actualizado podríamos crear cualquier webapps invocando
estos servicios (entidades) o también podríamos“orquestar” usando
Bonita BPM.
2.
5.1. Estrategias de integración: Creación de Servicios (2)
15. La creación de Servicios o API es una tarea aplicable a cualquier tipo de
aplicación de negocio “on-premise” o en “la nube”.
1.
El objetivo es definir una estrategia de Integración, creación de Servicios
y/o API.
En este punto WSO2 ESB es la mejor herramienta que podemos usar.
2.
5.1. Estrategias de integración: Creación de Servicios (3)
17. Demo #1: Servicios a partir de “DAL” Openbravo
• Blog de Gustavo Vázquez:
• http://gusjavaz.wordpress.com/2014/03/22/exponiendo-
funcionalidades-de-openbravo-como-bussiness-services-con-
wso2-esb
19. Desplegar WSO2 Identity Server (WSO2 IS), crear usuarios, roles, grupos, …1.
Configurar Autenticación LDAP en Liferay apuntando al LDAP embebido de
WSO2 IS. Habilitar la sincronización usuarios, roles, grupos, …
2.
Configurar Autenticación LDAP y sincronización en Bonita BPM apuntando
al LDAP embebido de WSO2 IS.
3.
Configurar Autenticación LDAP y sincronización de usuarios en Openbravo
apuntando al LDAP embebido de WSO2 IS.
4.
Verifique el proceso de autenticación y de sincronización de usuarios en
todo el ecosistema.
5.
5.3. Estrategias de integración: Seguridad (1)
Después de consolidar repositorios de Usuarios y validar el proceso de
Autenticación, estamos listos para implementar servicio de Autorización,
SSO, Federación de Identidades, Social Login, etc.
6.
20. Modelar:
Después de haber expuesto Servicios desde WSO2 ESB, podemos invocarlos en
el orden que mejor nos convenga. Cualquier solución BPM de tipo human-centric
nos facilitará definir el flujo de ejecución de los servicios.
Bonita Studio es una herramienta visual que nos permite “dibujar” el flujo de
ejecución alineado a BPMN2, además con Bonita BPM
haciendo uso de Bonita Connectors nos facilita la invocación de nuestros
servicios ya expuestos.
1.
Desplegar:
Desplegar los procesos de negocio diseñados desde Bonita Studio a Bonita
Workflow Engine.
2.
Ejecutar:
Como se tiene un proceso de negocio en el Workflow Engine, es posible
interactuar con él desde Bonita BPM Portal, pero también es posible acceder a él
desde la View Layer, en nuestro caso, desde Liferay Portal pero empleando
herramientas como BonitaLife (http://www.bonitalife.org), por ejemplo.
3.
5.4. Estrategias de integración: Orquestación
21. Definir KPIs:
Después de identificar funcionalidades y exponerlas como Servicios desde WSO2
ESB, todo el flujo de información pasará por el ESB.
De todos los Servicios expuestos, elegir qué datos/información acerca de la
Organización quiero conocer o seguir.
1.
5.5. Estrategias de integración: BAM
Capturar información:
La información capturada requerirá ser almacenada o requerirá ser analizada en el
mismo tiempo que está siendo almacenada. Por lo general son volúmenes grandes
de información y requerirá estructurar nuestros motores de BDs tradicionales o usar
los NoSQL DB.
2.
Analizar y Prsentar:
Una vez analizada la información capturada, podemos componer gráficos o
Dashboards para mostrar la información.
Gracias a WSO2 BAM y WSO2 CEP, podemos cubrir todo el ciclo de vida de
Proyectos BAM/BI.
3.
23. Demo #2: KPI y Dashboard usando WSO2 BAM
• Blog de Luis Peñarrubia:
• http://luispenarrubia.wordpress.com/2014/03/15/monitorizar-business-services-
usando-wso2-esb-y-wso2-bam
24. Doing the right things. Whit the right technology. To support business.