The Java Message Service(JMS) API is a Java Message Oriented Middleware API for sending messages between two or moreclients . JMS is a part of the Java Platform , Enterprise Edition , and is defined by a specification developed under the Java Community Process as JSR914 . It is a messaging standard that allows application components based on the Java Enterprise Edition(JEE) to create , send , receive , and read messages. It allows the communication between different components of a distributed application to be loosely coupled ,reliable , and asynchronous . It supports two models : point-to-point , publishand subscribe .
Using Java , JMS provides a way of separating the application from the transport layer of providing data .The same Java classes can be used to communicate with different JMS providers by using JNDI information for the desired provider . The classes first use a connection factory to connect to the queue or topic , and then use populate and send or publish the messages . On the receiving side , the clients then receive or subscribe to the messages .
To use JMS , one must have a JMS provider that can manage the sessions and queues . Starting from Java EE version 1.4 ,JMS provider has to be contained in all Java EE application servers . This can be implemented using the message inflow management of the Java EE Connector Architecture , which was first made available in that version . There are many JMS providers such as Apache ActiveMQ , OpenJMS , JBoss Messaging and HornetQ from JBoss , Open Message Queue from Sun Microsystems , BEA Weblogic , WebSphere MQ and so on . Asfollows , let’s tell something about WebSphere MQ developed by IBM .
IBM WebSphere MQ is a family of network software products launched by IBM in March 1992 . It was previously known as MQSeries , a trademark that IBM rebranded in 2002 to join the suite of WebSphere products . WebSphere MQ , which is often referred to simply as “MQ” by users , is IBM’s Message Oriented Middleware offering . It allows independent and potentially non-concurrent applications on a distributed system to communicate with each other . MQ is available on a large number of platforms ,including z/OS , OS/400 ,Transaction Processing Facility , Unix , HP NonStop ,Linux , OS 2200 and Microsoft Windows .
WebSphere MQ provides assured one-time delivery of messages across a wide variety of platforms . The product emphasizes reliability and robustness of message traffic , and ensures that a message should never be lost if MQ is appropriately configured . It also provides application designers with a mechanism to achieve non-time-dependent architecture . Messages can be sent from one application to another , regardless of whether the applications are running at the same time . If a message receiver application is not running when a sender sends it a message , the queue manager will hold the message until the receiver asks for it . Besides , it providers a means for transforming data between different architectures and protocols , such as Big Endian to Little Endian , or EBCDIC to ASCII .This is accomplished through the use of message data exits . It allows receipt of messages to “trigger” other applications to run ,and thus provides the framework for a message driven architecture . Unlikeemail , MQ itself is responsible for determining the destination of messages by the definition of queues , so processing of sent messages can be moved to a different application at a different destination .