Java Socket Programming VS openESB

342 Views Asked by At

I have a situation that multiple clients can communicate with multiple servers, and send messages over TCP/IP connection. The client can be in any technology and try to communicate with server by passing only host name and port of the server running on. Few were suggesting use openESB. But problem here I am not sure how feasible it is for my needs. The client program can be in any technology. Let say I am using Java socket programming to create the client and communicate with server. But if the server is created using openESB, is it possible to communicate with server and send request to it just using IP and Port of the server? Can any one give me differences of Socket Programming and openESB? I think these two are no way related programmatic, is it correct?

1

There are 1 best solutions below

0
On

The short answer is it depends on your needs. If your server is going to be simplistic then OpenESB might be overkill. If your server is going to be integrating into a lot of other services/software then OpenESB might just be the thing.

Most if not all ESB software will allow you to host a server socket inside of the ESB. Just keep in mind that a ESB is normally a large piece of software to install and maintain. Also OpenESB is based on the JBI specification which you would need to be familiar with if you want to really use the ESB to its full capabilities. One thing to consider is that a ESB is essentially a piece of backbone software so if the ESB is just going to host the socket it is going to be a waste as you will not be utilizing the ESB properly.

So if you are going to do a simple tcp/ip server rather look at the following frameworks: The Netty Framework or Apace Mina.

A alternative to a full ESB is apache camel. This can be considered a light weight ESB.

If you decide on the ESB route there is OpenESB, Apache ServiceMix and also Mule.

ESB technology is extremely powerful if used correctly.I suggest you read up on ESB and see if it fits your needs.