1. El documento describe una arquitectura de ecosistema empresarial que integra varias aplicaciones como Openbravo ERP, Openia CRM, Liferay Portal, WSO2 ESB, WSO2 Identity Server y Bonita BPM usando arquitectura orientada a servicios.
2. Se explica cómo exponer las funcionalidades de Openbravo y Openia CRM como servicios mediante WSO2 ESB y orquestar procesos de negocio con Bonita BPM.
3. También se detalla la integración de monitoreo de actividad empresarial
BizLife - Construyendo un Ecosistema Empresarial usando WSO2
1. Building a Business Ecosystem
using WSO2 for B2B/B2C
BizLife.org || Proof of Concept
Roger
CARHUATOCTO
IT
Consultant
Email:
roger
[at]
chakray.com
Twi6er:
@Chilcano
FOTO
3. SOA:
Identificar las funcionalidades de Openbravo
(SOAP, REST endpoints) que vamos a
exponer como servicios desde (Service Proxy)
WSO2 ESB, que posteriormente vamos a
consumir desde la View Layer, Liferay Portal
en este caso (mashup).
1.
For example, when you will create an order
in OpenBravo, the services identified will
be:
1. ADSequence
2. DocumentType
3. BusinessPartner
4. BusinessPartnerLocation
5. Warehouse
6. PrincingList
7. FinancialMgmtPaymentTerm
8. Order
9. OrderLine
Mediación:
Aquellas funcionalidades identificadas y
gracias a WSO2 ESB crearemos una serie de
“Service Proxies” que nos permitirán acceder a
las funcionalidades usando SOAP y/o REST.
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.
Further information here:
http://docs.wso2.org/display/ESB470/
Adding+a+Proxy
+Service#AddingaProxyService-
PublishWSDLOptions
You can check existing (DAL) Openbravo
REST services here:
http://openia.chakray.com/openbravo/ws/
dal
Gobernar:
Una vez “mediados”, podemos aplicar nuevas
características como: seguridad, tracing,
monitoring, versioning, QoS, KPI, en general,
cualquier característica relacionada a BAM.
3.
The new WSDL for the mediated services
can be reviewed here:
http://api.bizlife.org/services/
proxy_openbravo?wsdl
Test it with soapUI.
2. Exponer funcionalidades Openbravo ERP como Servicios
Mashup (View Layer):
Una aplicación completa tendrá un front-end,
en este caso, usaremos Liferay Portal para
hacer mashup. Esto quiere decir que
únicamente el Portal servirá para hacer
presentación.
4.
SOA and Portal relationship:
• WebSphere Portal: An on-ramp to a service oriented architecture:
http://www-07.ibm.com/sg/soa/downloads/WebSphere_Portal.pdf
• A Portal May Be Your First Step to Leverage SOA:
https://www.gartner.com/doc/485862/portal-step-leverage-soa
• Portal as UI of SOA:
http://www.slideshare.net/microcline/portal-as-ui-of-soa-2636330
4. Openia CRM es un
módulo de
Openbravo. Este
módulo extiende las
funcionalidades de
Openbravo
relacionado a CRM.
1.
Openia CRM is an Openbravo module and can be
downloaded as module (*.obx) or as a Virtual Machine
previously installed with Openbravo.
To know which tables have been created follow these steps:
1. Identify the DB prefix for this new module to be installed.
You can see it in Openbravo > Application Dictionary >
Module > click on the module of your interest
2. Open this URL in a browser: http://${OPENBRAVO-
HOSTNAME}/openbravo/ws/dal
3. The new Tables or Entities exposed as Data Layer (REST
and XML) begin with DB prefix of your module installed.
Una vez tengas las
“Tablas o
Entidades”,
entonces ahora tu
podrías crear
cualquier webapps
invocando estos
servicios (entidades)
o también tu podrías
“orquestar” usando
Bonita BPM.
2.
In the VM you can see a simple Process created with Bonita
Studio calling to these new Tables or Entities. Already exist a
Bonita Connector to make calls to any REST / XML services,
you just use it.
Remember, you are free to use any approach to orchestration
of services, in this case, for Open CRM you have these
Entitites (data services):
1. opcrm_activity
2. opcrm_cases
3. opcrm_cases_access
4. opcrm_config
5. opcrm_documents
6. opcrm_guest
7. opcrm_invoice
8. opcrm_lead_access
9. opcrm_lead_activity
10. opcrm_opp_access
11. opcrm_opportunities
12. opcrm_statusfilter
13. opcrm_statusfilter_trl
3. Exponer funcionalidades Openia CRM como Servicios
5. Usando Bonita Studio tu
puedes orquestar cualquier
proceso y servicios de
negocio de Openbravo.
Tu puedes crear nuevos
Bonita Connectors o usar
existentes para invocar los
servicios ya expuestos desde
WSO2 ESB.
1.
A Bonita Connector is a simple Java
client callling these services but that
we can run it in workflow engine take
advange of libraries of Bonita BPM.
We have attached both projects:
• Java client to create order.
• Simple process calling our
CreateOrder Connector for Bonita
BPM.
Desplegar los procesos de
negocio diseñados desde
Bonita Studio a Bonita
Workflow Engine.
2.
Check your deployed process.
From Bonita User Experience Portal
execute your deployed process.
If all is OK, you will see a new Order
created in OpenBravo side.
Ahora tu tienes un proceso
de negocio corriendo en tu
Workflow Engine. Es posible
interactuar con él desde
Bonita BPM Portal (intranet),
pero también es posible
acceder a él desde la View
Layer (Liferay Portal) usando
herramientas como
BonitaLife o crear la tuya
propia.
BonitaLife es un grupo de
portlets de Liferay que
interactúan con los procesos
de negocio y con el motor de
workflow de Bonita a través
del API de Bonita.
3.
Install Liferay Portal and deploy
BonitaLife.
BonitaLife can be downloaded from
Liferay Marketplace:
http://www.liferay.com/marketplace/-/
mp/application/26827133
Further information on BonitaLife can
be found here:
http://www.bonitalife.org/
requerimientos-e-instalacion
4. Orquestación de procesos y servicios
6. Conocer el estado de nuestra
plataforma o sistemas, nosotros
deberíamos consultar la fuente de
información.
En este caso, nosotros tenemos la
fuente principal de información y
está en WSO2 ESB, porque es
nuestro middleware todo el flujo
de información pasa por aquí ya
que hacemos “mediación”.
1.
In the VM, we have configured some REST services in WSO2 ESB. These
services are registered as Pass Through Proxies and WSO2 ESB stores
information about of its use and performance.
By default, WSO2 ESB has a simple dashboard to review or analyse this
information. But if you want more sophisticated functionality, then we
recommend the use of any product for creating dashboards or reports as
Pentaho, Jasper Report, etc.
WSO2 also has a product for creating dashboards and reports. IT is WSO2
User Engagement Server.
But if you still require creating complex reports, KPIs and analyze information,
you could use WSO2 BAM for this.
5. Business Activity Monitoring con WSO2 BAM
7. Para crear una regla de negocio es
necesario contar con una
herramienta como WSO2 Business
rule Server (WSO2 BRS) que incluya
un motor como Drools, en este
caso, WSO2 BRS provee de
funcionalidades adecuadas para
una fácil integración con WSO2
ESB.
Podemos acceder a la gran mayoría
de funcionalidades de WSO2 BRS
gracias a la exposición de su API.
1.
In the VM, we have installed WSO2 BRS and from Bonita BPM could call any
business rules exposed as service using Bonita SOAP Connector.
If we want metering how many times this service was called, we could create
a webservice proxy in WSO2 ESB and with WSO2 BAM could see statistical
information about it.
The best advantage of WSO2 BRS is that WSO2 exposes any business rule
as service and become a complete API just for the Management of business
rules for our Enterprise.
6. Integración WSO2 Business Rules Server
8. 1. Start login process
2. Pass login process to Bonita
3. Bonita passes login process
4. OB passes login process
5. WSO2IS sends response
6. OB redirects response
7. Bonita redirects response
8. Liferay receive response
Authentication in Openbravo
1. Start login process
2. Pass login process to Bonita
3. Validate credentials
4. WSO2IS sends response
5. Bonita redirects response
6. Liferay receives response
Authentication in Bonita
1. Start login process
2. Validate credentials
3. WSO2IS sends response
4. Liferay receives response
Authentication in Liferay
Desplegar WSO2 Identity
Server (WSO2 IS), crear
usuarios, roles, grupos, …
1.
In the VM, WSO2 IS has
already been deployed.
Configurar Autenticación
LDAP en Liferay
apuntando al LDAP
embebido de WSO2 IS.
Habilitar la sincronización
usuarios, roles, grupos, …
2.
In the VM, LDAP
Authentication and User
syncronization have already
been configured and tested.
Configurar Autenticación
LDAP y sincronización en
Bonita BPM apuntando al
LDAP embebido de WSO2
IS.
3.
Right now this functionality is
available in Bonita BPM
Teamwork version (
http://www.bonitasoft.com/
products/product-
comparison).
In the VM, we have created a
set of users in Bonita and also
in WSO2 IS.
Configurar Autenticación
LDAP y sincronización de
usuaros en Openbravo
apuntando al LDAP
embebido de WSO2 IS.
4.
Follow this instructions () to
configure LDAP
Authentication and User
syncronization of OpenBravo
and embedded LDAP of
WSO2 IS.
http://forge.openbravo.com/
plugins/mwiki/index.php/
LDAP
Verifique el proceso de
autenticación y de
sincronización de usuarios
en todo el ecosistema.
5.
For further info check the
status-diagram for
Authentication and
Centrialized User
Management.
LIFERAY WSO2IS BONITA OPENBRAVO
LIFERAY WSO2IS BONITA OPENBRAVO
7. IdM/IAM, Autenticación, Autorización y SSO
9. Recursos:
1. WSO2 BAM: Monitoring KPIs
• http://docs.wso2.org/display/BAM240/Monitoring+key+Performance+Indicators
2. WSO2 BRS: Getting Service
• http://docs.wso2.org/display/BRS200/Greeting+Service
3. Openbravo ERP and Openia CRM: Preinstalled sogtware in a VM
• http://sourceforge.net/projects/openiacrm/
4. Openbravo and LDAP integration:
• http://forge.openbravo.com/plugins/mwiki/index.php/LDAP
5. BonitaLife: a set of Liferay Portlets to manage tasks, cases and processes of Bonita BPM from Liferay
• http://www.bonitalife.org/
8. Recursos
12. Demo #2: Exponer funcionalidades
Openbravo ERP y CRM como Servicios
Proof of Concept
13. • “Agile SOA” best-practices:
• No reinventar la rueda:
• No implementar funcionalidades nuevas, a menos que sea
necesario.
• Exponer la funcionalidad como “servicio”.
• Desacoplamiento e interoperable:
• Arquitectura por capas.
• SOI (Service Oriented Integration)
• “Cloud ready”
• Multi-tenant
• Elástico
• PaaS
• SOA & Portal relationship:
• WebSphere Portal: An on-ramp to a service oriented architecture:
http://www-07.ibm.com/sg/soa/downloads/WebSphere_Portal.pdf
• A Portal May Be Your First Step to Leverage SOA:
https://www.gartner.com/doc/485862/portal-step-leverage-soa
• Portal as UI of SOA:
http://www.slideshare.net/microcline/portal-as-ui-of-soa-2636330
Demo #2: Servicios a partir de “DAL” Openbravo
14. Demo #2: 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
16. Paso 1: Modelar y Orquestar procesos y servicios con Bonita Studio
Paso 2: Gobernar (mediation) business services con WSO2 ESB
Paso 3: Desplegar los procesos al Workflow Engine
Paso 4: Ejecutar teras, casos y procesos desde BonitaLife
Demo #3: Orquestación de procesos y servicios
• Jack Rider y Alfredo Prats:
• http://www.bonitalife.org
• Blog de Jack Rider:
• http://itscenario.wordpress.com/2013/12/02/integracion-google-calendar-drive-
wso2-business-activity-monitor-aplication-server-bonita-bpm-parte-1
• http://itscenario.wordpress.com/2013/12/23/integracion-google-calendar-drive-
wso2-business-activity-monitor-aplication-server-bonita-bpm-parte-2
18. Demo #4: 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