Skip to main content

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

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).



Comments


  1. the blog is good and Interactive it is about Mulesoft API Developer it is useful for students and Mulesoft Developers for more updates on Mulesoft mulesoft Online training

    ReplyDelete

Post a Comment

Popular posts from this blog

How to protect your APIs with self contained access token (JWT) using WSO2 API Manager and WSO2 Identity Server

In a typical enterprise information system, there is a high chance that people will use different types of systems built by different vendors to implement certain types of functionalities. The APIs might be hosted in an API Manager developed by vendor A and the user management can be implemented using a different vendor (vendor B). In this type of a situation, one system will not be able to directly contact the other system but they want to use both systems in tandem. Self-contained access tokens are used in these types of situations where applications can get the token from one system and use that in another system to access protected resources. In this scenario, the second system does not need to make a contact to the first system over the network to validate the user information since the token is self-contained and it has relevant details about the user. This will improve the token processing time significantly since it completely removes the network interaction. The below fig...

WSO2 ESB creating a response for a "GET" request

When you are creating REST APIs with WSO2 ESB, you may need to send some response message back to the user when something goes wrong. In this kind of scenario, you can create a payload inside the ESB and send it back. For doing this, you can use the below configuration. <api xmlns=" http://ws.apache.org/ ns/synapse " name="LoopBackProxy" context="/loopback">    <resource methods="POST GET">       <inSequence>          <property name="NO_ENTITY_BODY" scope="axis2" action="remove"></property>          <log level="full"></log>          <payloadFactory media-type="xml">             <format>                <m:messageBeforeLoopBack xmlns:m=" http://services...

WSO2 ESB usage of get-property function

What are Properties? WSO2 has a huge set of mediators but property mediator is mostly used mediator for writing any proxy service or API. Property mediator is used to store any value or xml fragment temporarily during life cycle of a thread for any service or API. We can compare “Property” mediator with “Variable” in any other traditional programming languages (Like: C, C++, Java, .Net etc). There are few properties those are used/maintained by ESB itself and on the other hand few properties can be defined by users (programmers). In other words, we can say that properties can be define in below 2 categories: ESB Defined Properties User Defined Properties. These properties can be stored/defined in different scopes, like: Transport Synapse or Default Axis2 Registry System Operation Generally, these properties are read by get-properties() function. This function can be invoked with below 2 variations. get-property(String propertyName) get-property(String scop...