One of my missions in China was to manage the replacement of WEM (temp Logistic and BO temp application written in php) by TWIST for the logistic application part. The technology use by Twist is the Java enterprise edition. The Java EE is a set of standards and rule to respect for using java. It is really interesting for enterprise’s big application for many reasons. It is easier to support and to modify, more secure… As the aim of this article isn’t to explain what the Java EE is, if you want more information, I advise you to have a look to these pages (http://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition or http://www.oracle.com/technetwork/java/javaee/overview/index.html).
The main thing to keep in mind that Java EE is now the technology often chosen for replacing old applications.
It is in this context, I have faced to the problematic of communication between applications. The communications drawing between different applications is quiet complex.
This flows use two different technologies. The first one is the Java messenger service (JMS). The Java EE integrates a messenger function that allows communicating with other Java applications or client. With JMS you can write, send, receive and read message. Each client has a box name queue where arrive message, a producer that create and send message, a consumer that reads messages. (http://en.wikipedia.org/wiki/Java_Message_Service)
The second technology is the webservices. Webservices use HTTP protocol. The easier way is to explain the difference is to show you this drawing :
The client by the url ask to the other client to create a standard message registered in the library with some parameters contained in the url. The library creates the message in XML. that the client can read.
The advantage of the second method is there are really less problems of communication and really less root causes. Obviously it’s lighter for the support team.