Introduction to JMS

JMS Overview

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?

Then here is the blog post on JBOSS Training Program

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: