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

Understanding Threads created in WSO2 ESB

WSO2 ESB is an asynchronous high performing messaging engine which uses Java NIO technology for its internal implementations. You can find more information about the implementation details about the WSO2 ESB’s high performing http transport known as Pass-Through Transport (PTT) from the links given below. [1] http://soatutorials.blogspot.com/2015/05/understanding-wso2-esb-pass-through.html [2] http://wso2.com/library/articles/2013/12/demystifying-wso2-esb-pass-through-transport-part-i/ From this tutorial, I am going to discuss about various threads created when you start the ESB and start processing requests with that. This would help you to troubleshoot critical ESB server issues with the usage of a thread dump. You can monitor the threads created by using a monitoring tool like Jconsole or java mission control (java 1.7.40 upwards). Given below is a list of important threads and their stack traces from an active ESB server.  PassThroughHTTPSSender ( 1 Thread )

WSO2 ESB tuning performance with threads

I have written several blog posts explaining the internal behavior of the ESB and the threads created inside ESB. With this post, I am talking about the effect of threads in the WSO2 ESB and how to tune up threads for optimal performance. You can refer [1] and [2] to understand the threads created within the ESB. [1] http://soatutorials.blogspot.com/2015/05/understanding-threads-created-in-wso2.html [2] http://wso2.com/library/articles/2012/03/importance-performance-wso2-esb-handles-nonobvious/ Within this blog post, I am discussing about the "worker threads" which are used for processing the data within the WSO2 ESB. There are 2 types of worker threads created when you start sending the requests to the server 1) Server Worker/Client Worker Threads 2) Mediator Worker (Synapse-Worker) Threads Server Worker/Client Worker Threads These set of threads will be used to process all the requests/responses coming to the ESB server. ServerWorker Threads will be used to pr

How to configure timeouts in WSO2 ESB to get rid of client timeout errors

WSO2 ESB has defined some configuration parameters which controls the timeout of a particular request which is going out of ESB. In a particular  scneario, your client sends a request to ESB, and then ESB sends a request to another endpoint to serve the request. CLIENT->WSO2 ESB->BACKEND The reason for clients getting timeout is that ESB timeout is larger than client's timeout. This can be solved by either increasing the timeout at client side or by decreasing the timeout in ESB side. In any of the case, you can control the timeout in ESB using the below properties. 1) Global timeout defined in synapse.properties (ESB_HOME\repository\conf\) file. This will decide the maximum time that a callback is waiting in the ESB for a response for a particular request. If ESB does not get any response from Back End, it will drop the message and clears out the call back. This is a global level parameter which affects all the endpoints configured in ESB. synapse.global_timeout_inte