JMS ArchitectureJMS Architecture
JMS clients are the programs (possibly external) or components, written in the Java programming language, that produce and consume messages. Any Java EE application component can act as a JMS client.
A JMS provider is a messaging system that implements the JMS interfaces and provides administrative and control features. JBoss Messaging is such provider.
Messages are the objects that communicate information between JMS clients.
Administered objects are preconfigured JMS objects created by an administrator for the use of clients:
Point to Point
A sender (producer) sends a message addressed to a specific queue
A receiver (consumer) consumes the message from the queue established to hold its messages
Queues retain all messages sent to them until the messages are consumed or until the messages expire
Each message has only one consumer
A sender and a receiver of a message have no timing dependencies. The receiver can fetch the message whether or not it was running when the client sent the message
The receiver acknowledges the successful processing of a message
Learn the core features of JBOSS Traning and become master with our expertise tutorials.
Publish and Subscribe
Publisher clients publish messages to one or more message topics
Subscriber clients subscribe to one or more message topics and receive messages when they are sent to them
The topics hold the messages as long as it takes to deliver them to all currently subscribed clients
Each message can have multiple consumers
Publishers and subscribers have a timing dependency. A client that subscribes to a topic can consume only messages published after the client has created a subscription, and the subscriber must continue to be active in order for it to consume messages (unless it holds a durable subscription)
JMS Message Consumption
Synchronous: A subscriber or a receiver explicitly fetch the message from the destination by calling the blocking receive method (with support for timeouts)
Asynchronous: A client can register a message listener with a consumer. Whenever a message arrives at the destination, the JMS provider delivers the message by calling the listener’s onMessage method, which acts on the contents of the message
For indepth understanding on JBoss click on: