Java Message Service

The Java Message Service API is a Java Message Oriented Middleware API for sending messages between two or more clients. The API supports two models:
  • point-to-point or queuing model
  • publish/subscribe model
In the point-to-point or queuing model, a producer posts messages to a particular queue and a consumer reads messages from the queue. Here, the producer knows the destination of the message and posts the message directly to the consumer's queue. It is characterized by following:
  • Only one consumer will get the message
  • The receiver can consume the message after the producer stopped running. Neither the receiver has to be running at the time the message have been sent.
  • Every successful processing of a message is acknowledged by the receiver
The publish/subscribe model supports publishing messages to a particular message topic. Zero or more subscribers may register interest in receiving messages on a particular message topic. In this model, neither the publisher nor the subscriber know about each other. A good metaphor for it is anonymous bulletin board. There are following characteristics for this model:
  • Multiple consumers can get the message
  • There is a timing dependency between publishers and subscribers. Publisher has to create a subscription in order for clients to be able to subscribe. And subscriber has to remain continuously active to receive messages.
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 accessing the 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.

JMS Providers

In order to use JMS, one must have a JMS provider that can manage the sessions and queues. There are open source as well as proprietary providers, including: If you plan to run your application in a server cluster, you should check with provider if their implementation supports load balancing and/or failover.

External links

 

<< PreviousWord BrowserNext >>
241
240
inessive case
elative case
239
illative case
adessive case
allative case
238
essive case
237
translative case
instructive case
abessive case
comitative case
234
prolative case
233
232
radio frequency
partitive case
absolutive case
the bridge on the river kwai
sudetenland
chang (movie)
a streetcar named desire
java 2 platform, enterprise edition
java 2 platform, micro edition
java 2 platform, standard edition
elia kazan
voodoo programming
wave a dead chicken
ninety ninety rule
nevil maskelyne
edmond halley
john flamsteed
cosmogony
u.s. invasion of afghanistan
gattaca
human genome
farnsworth hirsch fusor
philo farnsworth
adjustable spanner
cape horn