wso2esb-integration-strategies

18
WSO2 Enterprise Serv Integration Strategies – rev2
  • date post

    21-Sep-2014
  • Category

    Technology

  • view

    19
  • download

    2

description

Graft sobre estrateias de Integracion. Roger Carhuatocto , Arquitecto Chakray

Transcript of wso2esb-integration-strategies

Page 1: wso2esb-integration-strategies

WSO2 Enterprise Service BusIntegration Strategies – rev2

Page 2: wso2esb-integration-strategies

1. A typical Business Ecosystem

A example of ecosystem in the Organizations

Page 3: wso2esb-integration-strategies

2. Our Stack

Our stack of products

Page 4: wso2esb-integration-strategies

3. WSO2 stack overview

WSO2 Carbon Enterprise Middleware Platform

Page 5: wso2esb-integration-strategies

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

Page 6: wso2esb-integration-strategies

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

Page 7: wso2esb-integration-strategies

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

Page 8: wso2esb-integration-strategies

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

Page 9: wso2esb-integration-strategies

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

Page 10: wso2esb-integration-strategies

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

Page 11: wso2esb-integration-strategies

4. Strategies of integration

1. HTTP Ajax 2. serveResource() 3. Webscript

Portlet

# 6 - Integration Liferay-WSO2 ESB-Alfresco

Page 12: wso2esb-integration-strategies

4. Strategies of integration

1. HTTP Ajax2. serveResource()

BPM services

Portlet

- Bonita API Rest- BPEL4WS- WS-HumanTask- BPEL4People

#7 - Integration of Liferay with BPM

Page 13: wso2esb-integration-strategies

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

Page 14: wso2esb-integration-strategies

5. Cloud Security – Integration Patterns

• WSO2 IS – AuthN, AuthZ and SSO

Page 15: wso2esb-integration-strategies

6. Cloud Security – Integration Patterns

• WSO2 IS – AuthN, AuthZ and SSO

Page 16: wso2esb-integration-strategies

6. Development environment

• Demonstrate development environments and tools to build, packaging, deployment and debugging.

Page 17: wso2esb-integration-strategies

6. Development environment

• WSO2 Developer Studio – Enteprise Use Case.

http://docs.wso2.org/display/DVS320/Getting+Started

Page 18: wso2esb-integration-strategies

6. Development environment

• WSO2 AppFactory – in the spotlight

http://docs.wso2.org/display/AF100/Samples