Tuesday, July 08, 2008

SOA and Open source ESB

As I have mentioned in my previous posts , SOA is becoming the next generation of the IT industry. Not only that Web services provide major contribution to that. Just having Web services does not make SOA complete. There are a number of factors which are necessary for making SOA complete , or moving company into so called SOA.

When a company want to move into Web services , one of the first thing they need to focus on is the web service framework they are going to use. There are number of good open source and commercial web services frameworks around , you can pick one which match with your requirement and then enable Web services in your company. If you are looking for an open source solution then Apache Axis2 would be a good candidate. I am not recommending Axis2 , since I am an Axis2 developer , but it so extensible , flexible as well as easy to use , above all it inteoperates with other open source and commercial web services stacks.

In one of my previous post I mentioned about one of the other key part of SOA , which is SOA registry. And recently I did a feature comparison on WSO2 registry as well as Mule Galaxy.

Next major component which make SOA complete is ESB or Enterprise Service Bus. There is no clear definition for ESB , different people have different opinions on that. In my view ESB is a bus which connect different kind of applications together and provide a way to talk to them in application independent manner. Web service provide right infrastructure for that providing SOAP based interaction. With ESB one can talk to different kind of applications and can connect different kind of applications. For example we can connect data service , main frames and messaging queue together using an ESB.

The requirement of ESB depends on the type of application you have , if you have just Web service application then you might not need an ESB, however if you have different kind of applications (say Java and non-Java applications) , then to connect such application we need an ESB.

There are a number of ESB out there , and you can find both commercial and open source ESBs. It is not surprise to see that open source ESB performs better than some of the commercial ESBs. WSO2 recently did a performance comparison , you can read them and make your decision. In Apace domain , there are two ESBs , Apache Synapse and Apache ServiceMix.

Apache Synapse (or WSO2 ESB) is built on Axis2 and ServiceMix is built on CXF. I like Apache synapse due to few reasons , first it is built on Axis2. Second I was able to write the very first synapse toy based on the current architecture , third it seems to be the fastest ESB.

4 comments:

வீரசுந்தர் said...

Good introduction on SOA and ESB for a beginner like me!

babloosony said...

for connecting java and non-java applications I can use web sevices by exposing those java and non-java applications as web services but then why do I need ESB for integrating java and non-java applications. please clarify.

arnav aggarwal said...

Hi
I was working on creating a BPEL work-flow and executing that over axis-2 on Tomcat. But now the requirements have changed and we need to incorporate an esb. I was looking at swordfish based on servicemix.
Could you please tell me if it is feasible to do that?

And the differences between synapse and servicemix

Lahiru Amarasekera said...


WSO2 Enterprise Service Bus

Features

Connecting Anything to Anything


Transports: HTTP, HTTPS, POP, IMAP, SMTP, JMS, AMQP, FIX, TCP, UDP, FTPS, SFTP, CIFS, MLLP, SMS

Formats & protocols: JSON, XML, SOAP 1.1, SOAP 1.2, WS-*, HTML, EDI, HL7, OAGIS, Hessian, Text, JPEG, MP4, All binary formats, CORBA/IIOP

Adapters to COTS systems: SAP BAPI & IDoc, PeopleSoft, MS Navision, IBM WebSphere MQ, Oracle AQ, MSMQ

Adapters to cloud services: Salesforce, Paypal, LinkedIn, Twitter, JIRA