The Magic Bullet of Integration - WSO2 Enterprise Integrator (WSO2 EI)
The Magic Bullet of Integration - WSO2 Enterprise Integrator (WSO2 EI)
WSO2 Enterprise Integrator is a solution that provides plenty of possibilities to execute and customize your Enterprise Application integration.
Join the DZone community and get the full member experience.Join For Free
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) which you have in your integration project.
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 a 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 have been used in different parts of an enterprise integration project. These different components, included in the WSO2 EI product as separate “profiles.” It has four 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
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 to the WSO2 documentation for more information. The WSO2 EI - Integration profile comes with an 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 modeling tool to model and execute these processes. 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 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.
The 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 requirement of most of the integration projects is the ability of the platform to provide guaranteed message delivery without losing 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 include
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 in-order message delivery in a cluster
Shared durable subscription
Dead letter channel
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 three profiles, the enterprise needs to monitor what happens within these components. It is essential to monitor the latencies 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
Frequently used components
Mediator level statistics like latency, request counts
Message-level monitoring with tracing enabled
In addition to these OOTB graphs, users can publish custom information to the analytics component and then build their own dashboards 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 involvement 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 required 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: WSO2 Enterprise Integrator (WSO2 EI).
Opinions expressed by DZone contributors are their own.