WSO2 Enterprise Serv Integration Strategies – rev2
Sep 21, 2014
WSO2 Enterprise Service BusIntegration Strategies – rev2
1. A typical Business Ecosystem
A example of ecosystem in the Organizations
2. Our Stack
Our stack of products
3. WSO2 stack overview
WSO2 Carbon Enterprise Middleware Platform
4. Strategies of integration
OpenBravo ERP
Bonita BPM
Liferay Portal
WSO2 ESB
WSO2 Identity Server
BonitaWorkflow
Engine
S1 S3
Invoice
I3
S4
Clients
I4
Order
I1
Payment
I2
S2
FinantialModuleModuleModule
BonitaStudio
services orchestration
modeling
OpenBravoData Base
existing portlets
authn, authz
OpenBravo RESTful API
Drools Business
Rules
S5
authn, authz
Pentaho BI
reporting
Openia CRM
Asterix PBX
AuthN
click-to-call
BonitaLife Porlets
bonita connectors
Bonita API
REST
View LayerView Layer
Service LayerService Layer
Business LayerBusiness Layer
Strategies of integration with WSO2 - Sceneries
4. Strategies of integration
Identify REST and SOAP services (endpoints and messages) of OpenBravo of all functionalities you want to expose and after call them from Liferay.
1.For example, when you will create an order in OpenBravo, the services identified will be:1. ADSequence2. DocumentType3. BusinessPartner4. BusinessPartnerLocation5. Warehouse6. PrincingList7. FinancialMgmtPaymentTerm8. Order9. OrderLine
This is optional, but if you want to know about of performance of your services, activity or indicators (KPI) you could register these services in WSO2 ESB using Pass Through Proxy Template.
2.Further information here:http://docs.wso2.org/display/ESB470/Adding+a+Proxy+Service#AddingaProxyService-PublishWSDLOptions
Using Bonita BPM modeling your business process (services orchestration).Other option is to create a o several Bonita Connectors for each type of service or set of services.
3.A Bonita Connector is a simple Java class client callling these services but that we can run 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.
Using Bonita BPM Studio modeling your business process (services orchestration of Order Creation).Other option is to create a o several Bonita Connectors for each type of service or set of services.
4.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.
Deploy your business process (Order Creation) implemented as standard process (orchestration) or as simple process (include your custom connector).
5.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.
Right now, you have a business application running in your internal Bonita Portal, but if want that your business application become a Cloud enabled App, then you should create a new front-end with multitenancy, authentication and users syncronization capabilities.We will use BonitaLife deployed on Liferay Portal. That will be our new front-end.BonitaLife is a set of Liferay Portlets that are able of execute any process deployed on Bonita BPM workflow engine.
6.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
#1 – ERP integration with WSO2
4. Strategies of integration
1. Start login process2. Pass login process to Bonita3. Bonita passes login process4. OB passes login process5. WSO2IS sends response6. OB redirects response7. Bonita redirects response8. Liferay receive response
Authentication in Openbravo
1. Start login process2. Pass login process to Bonita3. Validate credentials4. WSO2IS sends response5. Bonita redirects response6. Liferay receives response
Authentication in Bonita
1. Start login process2. Validate credentials3. WSO2IS sends response4. Liferay receives response
Authentication in Liferay
Deploy WSO2 Identity Server, create several users and roles.
1.In the VM, WSO2 IS has already been deployed.
Configure LDAP Authentication in Liferay pointing to the embedded LDAP of WSO2 IS.Enable Users and Roles (Group) syncronization.
2.In the VM, LDAP Authentication and User syncronization have already been configured and tested.
Configure LDAP Authentication and users sync in Bonita pointing to the embedded LDAP of 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.
Configure LDAP Authentication and users sync in OpenBravo pointing to the embedded LDAP of 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
Check the authentication flow and user sync flow in all the system.
5.We have designed a Status Diagram for Authentication and Centrialized User Management.
LIFERAY WSO2IS BONITA OPENBRAVO
LIFERAY WSO2IS BONITA OPENBRAVO
#2 - Liferay and Openbravo – AuthN / User Mgmt
4. Strategies of integration
To integrate Asterisk PBX with any Webapp is necessary to create a client-side Asterisk in the Webapp side and establish a call when the user has made click on a particular phone number in the Webapp side.
1.There are many strategies to implement this. This page shows many different strategies and implementations using Java: https://blogs.reucon.com/asterisk-java
The 2 strategies most used are the creation of a native Asterisk cliente in the Webapp side, and the creation or reuse of existing Asterisk client, this will work at browser level. This last option is the least intrusive and avoids modifying the Webapp. You can download this implementation from here:
http://www.sugarforge.org/projects/yaai
In the VM we have included a mini webapp client in the same web application server of Liferay to do click-to-call to Asterisk. This mini webapp client is based on “Asterisk PBX integration Zimlet” (Extension for Zimbra Collaboration Suite) and should be portletized to use intensively at all levels (Openbravo, Openia, Bonita, Liferay ….).
The Asterisk PBX Integration Zimlet an be found here:http://sourceforge.net/projects/ch-bnc-asterisk/
Once the mini webapp client (Click-to-call Zimlet) has already been portletized, you need to modify each Webapp from where you want to start the call.
Modify fully heterogeneous webapps as Liferay, Bonita, Openbravo, etc.. to include Click-to-Call functionality involves knowing the correct way to modify them without being intrusive.
2.Other good alternative is to use JavaScript to create a light click-to-call Asterisk client application. You can use this JavaScript implementation:
http://jssip.net/documentation/misc/interoperability/
This alternative is light, no intrusive and easy to integrate in any webapp.
#3 - Liferay and Openbravo – Clic-to-Call / Asterisk
4. Strategies of integration
Openia CRM is a module of Openbravo. This module extends the functionalities of Openbravo related to 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.
Once you have the Tables or Entities, then now you could create any webapps callin these services (entities) or also you could do orchestration using 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_activity2. opcrm_cases3. opcrm_cases_access4. opcrm_config5. opcrm_documents6. opcrm_guest7. opcrm_invoice8. opcrm_lead_access9. opcrm_lead_activity10. opcrm_opp_access11. opcrm_opportunities12. opcrm_statusfilter13. opcrm_statusfilter_trl
#4 – Liferay and Openbravo – Openia CRM
4. Strategies of integration
Integration of Liferay with Openbravo / PoC
To know the status of our platform or systems, we should query the source of information.
In this case, we have the main source of information and It is in WSO2 ESB, because is our middleware and does as proxy.
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 - Liferay and Openbravo – Dashboard and Reporting
4. Strategies of integration
1. HTTP Ajax 2. serveResource() 3. Webscript
Portlet
# 6 - Integration Liferay-WSO2 ESB-Alfresco
4. Strategies of integration
1. HTTP Ajax2. serveResource()
BPM services
Portlet
- Bonita API Rest- BPEL4WS- WS-HumanTask- BPEL4People
#7 - Integration of Liferay with BPM
5. Security
• WSO2 Identity Server (IS) is an entitlement management server, which facilitates security and identity management of enterprise Web applications, services, and APIs. It carries support for OpenID, XACML, and SAML 2.
• Security Services:– Authentication– Entitlement (Authorization)– SSO– IdM
5. Cloud Security – Integration Patterns
• WSO2 IS – AuthN, AuthZ and SSO
6. Cloud Security – Integration Patterns
• WSO2 IS – AuthN, AuthZ and SSO
6. Development environment
• Demonstrate development environments and tools to build, packaging, deployment and debugging.
6. Development environment
• WSO2 Developer Studio – Enteprise Use Case.
http://docs.wso2.org/display/DVS320/Getting+Started
6. Development environment
• WSO2 AppFactory – in the spotlight
http://docs.wso2.org/display/AF100/Samples