Java Message Service
The application-to-application messaging systems, when used in business system, are generically referred to as MOM. Message-Oriented-Middleware provides a common reliable way for programs to create, send, receive and read messages in any distributed Enterprise System. MOM ensures fast, reliable asynchronous electronic communication, guaranteed message delivery, receipt notification and transaction control. MOM (Message Oriented Middleware) provides:
- Fault tolerance
- Load balancing, scalability
- Transactional support
The Java Message Service (JMS) provides a standard Java-based interface to the message services of a MOM of some other provider. JMS is an API for enterprise messaging created by Sun. JMS is not a messaging system itself; it's an abstraction of the interfaces and classes needed by messaging clients.
JMS provides standard API for enterprise messaging. Just like JDBC for standard database connection. You can use SonicMQ or IBM MQseries as underline messaging mechanism.
Enterprise Messaging delivers message async. It can be configed as persistent or transient. Persistent can guarantee deliver once and only once. Transient delivers at most once.
Messaging systems are classified into different models that determine which client receives a message. The most common messaging models are:
Publish-Subscribe MessagingPoint-To-Point MessagingRequest-Reply Messaging Not all MOM providers support all these models.