Wednesday, January 1, 2014

WSO2 ESB and the Upcoming Connector concept study as a Business Analyst

I am about to explain you my analysis with regards the Enterprise Service Bus (ESB) architecture and Connector concept.

There are many ESB s and among this many i would like to take up the WSO2 ESB and upcoming concept of connectors  for my analysis.As a business analyst whose exposed more to functional analysis , this is quite a challenge though this is how i took it up.Still my approach may be very much wrong and if so please reply me with your valuable advises.

As the very first step i wanted to learn the ESB architecture and below are my findings.

ESB is a software architecture that enable communication among various applications.Instead of having to make each of your applications communicate directly with each other in all their various formats, each application simply communicates with the ESB, which handles transforming and routing the messages to their appropriate destinations.

WSO2 ESB is a full-fledged, enterprise-ready ESB. It is built on the Apache Synapse project, which is built using the Apache Axis2 project. All the components are built as OSGi bundles.

WSO2 ESB Messaging Architecture:



When the application send a message to the ESB Transport pick the message  and pass it through the pipe line.This pipe line operation should be either mediators or proxy services.

A proxy service is a virtual service that receives messages and optionally processes them before forwarding them to a service at a given endpoint. This approach allows you to perform necessary transformations and introduce additional functionality without changing your existing service.

As the diagram specifies, there is no clear separation between message transformation components and routing components. WSO2 ESB call this the mediation framework. Some transformations happens before routing decision has taken. Some transformations happens after the the routing decision has taken. 

This part is the Synapse implementation.

After this message is injected to the separate pipes depending on the destinations.

The diagram shows how a request propagates to its actual endpoint through the ESB using its architecture. Response handling is the reverse of this operation. 

Connector Concept

A connector allows you to interact with a third-party product's functionality and data from your message flow.Connectors allow you to connect to and interact with the APIs of services.

For example Twitter Connector allow the third party application to deal with the Twitter API Reference.
Further if you have enabled the Twitter connectors in your ESB instance, your message flow could receive requests containing a user's Twitter name and password, log into the user's Twitter account, get a list of the user's followers, and if you also have a Google Spread Sheet Connector you can even  write that information to a Google spreadsheet. 

WSO2 has already released some connectors and they will be releasing more and more in the future. 

Analyzing an API reference document for a connector development is as below.

I would choose Google Drive connector and it uses REST service.Authentication would be one of the most important component for  any connector and specifically for google drive the users must create a service account and obtain a serviceAccountEmail and serviceAccountPKCSContent. Else the users can also pass the client ID along with the Access Token and the Refresh Token also can authenticate a user to access Google drive.

Then the most import task is identifying the value added functionalities for the connector.Analyst needs to read through each method and identify the most value added methods and use those for the specification.The parameter identification is another hard task and an analyst needs to have an end to end picture about the method behavior to perform this activity.

Each connector has its own different API reference formats as some provide proper information and some don't.I would rather suggest to work with the developers and understand the API reference as it is the key for this sort of an analysis. 

This analysis might have loop holes.Please feel free to comment with your suggestions.

No comments:

Post a Comment