Framework for reliable both synchronous and asynchronous communication between distributed components
Guaranteed push-based delivery
Peer to peer
One to One, One to Many, Many to Many
Loosely coupled (standard message formats)
JMS Implementation provides necessary services to its clients
JMS is unlike RMI, which is tightly coupled. In JMS, The sender and the receiver need to know only which message format and which destination to use.
JMS is unlike email, which is people oriented. JMS is meant to serve distributed software applications and components, although it is also used for local (in-JVM) messaging.
JMS in Java EE
Allows loosely coupled, reliable, asynchronous interactions among Java EE components and legacy systems capable of messaging
Is reliable, it ensure that a message is delivered once and only once.
Application clients, EJBs, and web components can send and receive JMS messages
Message-driven beans enable the asynchronous (possibly concurrent) consumption of messages, making it easy to plug in new business event handlers into an existing deployment
Message send and receive operations can participate in distributed transactions, which allow JMS operations and database accesses to take place within a single transaction
JMS can be used outside the context of a full-blown app server
Inclined to build a profession as JBOSS Developer?
When is JMS Used
When no dependency between components is important
Compile-time dependency (loose coupling)
Run-time dependency (components run independently)
When we need asynchronous yet reliable communication
Consider the following usage scenario:
Components of an enterprise application for an automobile manufacturer can use the JMS API in situations like these:
The inventory component can send a message to the factory component when the inventory level for a product goes below a certain level so that the factory can make more cars
The factory component can send a message to the parts components so that the factory can assemble the parts it needs
The parts components in turn can send messages to their own inventory and order components to update their inventories and to order new parts from suppliers
Both the factory and the parts components can send messages to the accounting component to update their budget numbers
The business can publish updated catalog items to its sales force
For indepth understanding on JBoss click on: