The Magic Bullet of Integration — WSO2 Enterprise Integrator (WSO2 EI)

Chanaka Fernando
WSO2 Best Practices
6 min readDec 10, 2017

--

Enterprise Application Integration (EAI) has been a challenging but mandatory requirement within any enterprise IT system. According to a recent survey, 60% of the digital transformation stories covers with integration requirements. So it is quite evident that, integration is an integral part of your digital transformation journey. If you are an experienced integration architect or a developer, you know about the plethora of vendors and solutions available in the market. They have different strengths and weaknesses. But we know for a fact that there is no “Silver Bullet” in the integration landscape. Even though that is the case, we have a “Magic Bullet” which can serve a lot of requirements (like the Magic Bullet Blender shown below) which you have in your integration project.

Figure 1 : Magic Bullet (Source: Amazon.com)

WSO2 has been building a collection of middleware products which can serve almost all the requirements which may occur in a digital transformation project (or any IT project). There was a time it had produced 20+ products serving different requirements. Even though that model has advantages to some of the customers who start small and use only portion of the platform, it had more disadvantages to the customers as well as to WSO2 when it comes to maintenance and releases. About one and a half years ago, WSO2 decided to build 5 products which can be used for any enterprise middleware requirement when going through a digital transformation.

As a result of this 5 product strategy, WSO2 introduced this new product called the WSO2 Enterprise Integrator. The latest version of the product is WSO2 EI 6.1.1. This product aggregated several WSO2 products which has been used in different parts of an enterprise integration project. These different components, included to the WSO2 EI product as separate “profiles”. It has 4 main profiles which can be run as separate JVMs for different integration requirements.

  • WSO2 EI — Integration Profile (or ESB profile)
  • WSO2 EI — Business Process Profile (or BPS profile)
  • WSO2 EI — Message Broker Profile (or MB profile)
  • WSO2 EI — Analytics profile

The below figure showcase these profiles in a visualized manner.

Figure 2: WSO2 Enterprise Integrator capabilities (Source: WSO2 Documentation)

WSO2 EI — Integration Profile (or ESB profile)

This profile contains the functionalities of both WSO2 Enterprise Service Bus (ESB) as well as WSO2 Data Services Server (DSS). Integration profile can be used for any system integration or data integration requirements like

  • Message routing
  • Message transformation
  • Protocol translation
  • Data mapping
  • Service orchestration
  • Exposing databases as SOAP/REST services
  • Executing scheduled tasks
  • Cloud service integration (Salesforce, Peoplesoft, Twitter, etc)

In addition to the above mentioned use cases, WSO2 EI — Integration Profile comes with various other capabilities as well. You can refer WSO2 documentation for more information. WSO2 EI — Integration profile comes with a eclipse based IDE called WSO2 EI tooling, which can be downloaded as a separate tool and used to develop the integration use cases which are mentioned above. These integrations are done using xml based “synapse” mediation language for system integration use cases (ESB) and our own xml based “data services” language for data integration requirements. Users can use WSO2 EI tooling component to visually build these integrations using drag and drop functionalities.

WSO2 EI — Business Process Profile (or BPS profile)

If your integration project requires a tool to model your long running business processes which may or may not have human interactions to complete in the middle of the process, you may want to find out a proper BPEL or BPMN modelling tool to model these processes and execute. WSO2 EI comes with a profile which can be used for this purpose. WSO2 EI — Business Process Profile (or BPS profile) is the perfect tool for the task. It provides the following capabilities to the users

  • Enables developers to easily develop, deploy and manage long-running integration processes (business processes)
  • Implemented using either BPMN 2.0 standard or WS-BPEL 2.0 standard.
  • Powered by the Activiti BPMN Engine 5.21.0 and Apache Orchestration Director Engine (ODE) BPEL engine
  • Comes with a complete web-based graphical management console, enabling users to easily deploy, manage, view and execute processes as well as human tasks
  • Allows processes to be integrated with human tasks

WSO2 EI Tooling component comes with a graphical tool to build BPEL as well as BPMN processes. A good starting point to learn about the capabilities and how to implement a business process using WSO2 EI — BPS profile is the WSO2 documentation BPS tutorial section.

WSO2 EI Message Broker Profile (or MB profile)

Another core requriement of most of the integration projects is the ability of the platform to provide guaranteed message delivery without loosing any data even though different systems operates at different speeds (in terms of message processing). There can be millions of users sending data (requests) to your system but your back end systems cannot process them at the same rate. Then you need to have an intermediate data store which can store the incoming data at high speeds and allow back end systems to consume that data at their own rate. This is the core functionality of a Message Broker. WSO2 EI — Message Broker profile (or MB profile) is designed for that kind of use cases. The main functionalities of this profile includes

  • Interoperable Message Broker

— Support for JMS v1.0 and v1.1 API

— Supports AMQP 0.91

— Supports MQTT including all QOS levels.

  • Distributable Queues

— Provides strict or best effort for inorder message delivery in cluster.

  • Shared subscription

— Durable subscription.

— Shared durable subscription.

  • Dead letter channel
  • Flow control
  • Browsing Queues

This profile comes with a management console to manage the queues/topics which are created on the broker as well as for monitoring the broker.

WSO2 EI Analytics profile

Did you notice that in the magic bullet, you can see what you put into the jar and how things are going through the transparent interface. Likewise, with all the integration functionalities covered with the above mentioned 3 profiles, enterprise needs to monitor what happens within these components. It is essential to monitor the latentices within these layers so that required SLAs are achieved at the clients. WSO2 EI Analytics component provides the capabilities to monitor both Integration profile as well as BPS profile.

Integration Profile Analytics

There is a separate dashboard to monitor the statistics of the integration components which users developed within the integration profile. It provides capabilities such as

  • Statistics for APIs, Proxy Services, Sequences, Inbound Endpoints and endpoints which includes

— Request counts

— Success/Failure counts

— Latencies

— Mostly used components

  • Mediator level statistics like latency, request counts
  • Message level monitoring with tracing enabled

In addition to these OOTB graphs, users can pubish custom information to the analytics component and then build their own dash boards as well as graphs.

Business Process profile analytics

There is a separate dashboard for monitoring the business processes and their activities within the EI Analytics profile. This dashboard provides information about the running business processes and their statistics. It provides

  • Available business processes
  • Details about the running instances of the process/human tasks
  • Average execution times of processes/human tasks
  • User involvments for processes/human tasks

With all these capabilities coming with a single product distribution, users can build their own integration projects using whatever the profile which is reuired based on the project requirements. It is similar to using the proper jar and the proper blade in the “magic bullet” device.

Ultimately, we have a “magic bullet” for integration projects. Which is WSO2 Enterprise Integrator (WSO2 EI).

--

--

Chanaka Fernando
WSO2 Best Practices

Writes about Microservices, APIs, and Integration. Author of “Designing Microservices Platforms with NATS” and "Solution Architecture Patterns for Enterprise"