3.6. Messaging APIs and protocols

Many messaging systems provide their own proprietary APIs, which the client can use to communicate with the messaging system.
There are also some standard ways of operating with messaging systems and some emerging standards in this space. Some of these are explored in the next section.

3.6.1. Java Message Service (JMS)

JMS is part of Sun's Java EE specification. It is a Java API that encapsulates both message queue and publish-subscribe messaging patterns. JMS is a lowest common denominator specification. That is, it was created to encapsulate common functionality of the messaging systems that already existed and were available at the time of its creation.
JMS is a very popular API and is implemented by most messaging systems. JMS is only available to clients running Java.
JMS does not define a standard wire format; it only defines a programmatic API so JMS clients and servers from different vendors cannot directly interoperate since each will use the vendor's own internal wire protocol.
HornetQ provides a fully compliant JMS 1.1 API.