Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 General idea of messaging  



1.1  Version history  







2 Elements  





3 Models  



3.1  Point-to-point model  





3.2  Publish-and-subscribe model  







4 URI scheme  





5 Provider implementations  





6 See also  





7 References  





8 Further reading  





9 External links  














Jakarta Messaging






العربية
Català
Čeština
Dansk
Deutsch
Español
فارسی
Français

Italiano
Latviešu
Lietuvių
Magyar
Nederlands

Polski
Português
Română
Русский
Svenska
Українська

 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


The Jakarta Messaging API (formerly Java Message ServiceorJMS API) is a Java application programming interface (API) for message-oriented middleware. It provides generic messaging models, able to handle the producer–consumer problem, that can be used to facilitate the sending and receiving of messages between software systems.[1] Jakarta Messaging is a part of Jakarta EE and was originally defined by a specification developed at Sun Microsystems before being guided by the Java Community Process.[2]

General idea of messaging[edit]

Messaging is a form of loosely coupled distributed communication, where in this context the term 'communication' can be understood as an exchange of messages between software components. Message-oriented technologies attempt to relax tightly coupled communication (such as TCP network sockets, CORBAorRMI) by the introduction of an intermediary component. This approach allows software components to communicate with each other indirectly. Benefits of this include message senders not needing to have precise knowledge of their receivers.

The advantages of messaging include the ability to integrate heterogeneous platforms, reduce system bottlenecks, increase scalability, and respond more quickly to change.[3]

Version history[edit]

JMS 2.0 is currently maintained under the Java Community ProcessasJSR 343.[15]

JMS 3.0 is under early development as part of Jakarta EE.[16]

Elements[edit]

The following are JMS elements:[17]

JMS provider
An implementation of the JMS interface for message-oriented middleware (MOM). Providers are implemented as either a Java JMS implementation or an adapter to a non-Java MOM.
JMS client
An application or process that produces and/or receives messages.
JMS producer/publisher
A JMS client that creates and sends messages.
JMS consumer/subscriber
A JMS client that receives messages.
JMS message
An object that contains the data being transferred between JMS clients.
JMS queue
A staging area that contains messages that have been sent and are waiting to be read (by only one consumer). As the name queue suggests, the messages are delivered in the order sent. A JMS queue guarantees that each message is processed only once.
JMS topic
A distribution mechanism for publishing messages that are delivered to multiple subscribers.

Models[edit]

The JMS API supports two distinct models:

Point-to-point model[edit]

Under the point-to-point messaging system, messages are routed to individual consumers who maintain queues of incoming messages. This messaging type is built on the concept of message queues, senders, and receivers. Each message is addressed to a specific queue, and the receiving clients extract messages from the queues established to hold their messages. While any number of producers can send messages to the queue, each message is guaranteed to be delivered, and consumed by one consumer. Queues retain all messages sent to them until the messages are consumed or until the messages expire. If no consumers are registered to consume the messages, the queue holds them until a consumer registers to consume them.

Publish-and-subscribe model[edit]

The publish-and-subscribe model supports publishing messages to a particular message "topic". Subscribers may register interest in receiving messages published on a particular message topic. In this model, neither the publisher nor the subscriber knows about each other. A good analogy for this is an anonymous bulletin board.

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 using the Java Naming and Directory Interface (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.

URI scheme[edit]

RFC 6167 defines a jms: URI scheme for the Java Message Service.

Provider implementations[edit]

To use JMS, one must have a JMS provider that can manage the sessions, queues and topics. Starting from Java EE version 1.4, a JMS provider has to be contained in all Java EE application servers. This can be implemented using the message inflow management of the Java EE Connector Architecture, which was first made available in that version.

The following is a list of common JMS providers:

See also[edit]

References[edit]

  1. ^ Curry, Edward. 2004. "Message-Oriented Middleware". In Middleware for Communications, ed. Qusay H Mahmoud, 1-28. Chichester, England: John Wiley and Sons. doi:10.1002/0470862084.ch1. ISBN 978-0-470-86206-3
  • ^ "JSR 914: Java Message Service (JMS) API". The Java Community Process Program. Retrieved July 31, 2018.
  • ^ Richards et al., pages 3–5.
  • ^ a b "Java Message Service" (PDF). Sun Microsystems. October 5, 1998. Archived (PDF) from the original on 1999-02-24. Retrieved July 31, 2018.
  • ^ "Java Message Service Documentation". Sun Microsystems. October 30, 1998. Archived from the original on 1999-02-24. Retrieved July 31, 2018.
  • ^ "Java Message Service Source - Version 1.0.1a". Sun Microsystems. October 29, 1998. Archived from the original (ZIP) on August 16, 2000. Retrieved July 31, 2018.
  • ^ "Java Message Service" (PDF). Sun Microsystems (published December 17, 1999). November 9, 1999. Archived (PDF) from the original on 2000-08-23. Retrieved July 31, 2018.
  • ^ "Java Message Service Documentation". Sun Microsystems. December 23, 1999. Archived from the original on 2000-02-29. Retrieved July 31, 2018.
  • ^ "Java Message Service" (PDF). Sun Microsystems. August 27, 2001. Archived (PDF) from the original on 2022-10-09. Retrieved July 31, 2018.
  • ^ "Java Message Service" (PDF). Sun Microsystems. April 12, 2002. Archived (PDF) from the original on 2022-10-09. Retrieved July 31, 2018.
  • ^ "Java Message Service" (PDF). Oracle. March 20, 2013. Archived (PDF) from the original on 2022-10-09. Retrieved July 31, 2018.
  • ^ "JMS 2.0 Final Release". Java Message Service Specification. June 9, 2017. Retrieved July 31, 2018.
  • ^ "Java Message Service" (PDF). Oracle. March 10, 2015. Archived (PDF) from the original on 2022-10-09. Retrieved July 31, 2018.
  • ^ "JMS 2.0 errata release (Rev a)". Java Message Service Specification. July 5, 2017. Retrieved July 31, 2018.
  • ^ "JSR 343: Java Message Service 2.0". The Java Community Process Program. Retrieved July 31, 2018.
  • ^ Monson-Haefel, Richard (December 6, 2018). "JMS 3.0: Get Involved!". Tomitribe. Retrieved July 17, 2020.
  • ^ Java Message Service (JMS)
  • ^ "Apache Qpid™: Open Source AMQP Messaging".
  • ^ Wallis, Graham. "Choosing a messaging system: WebSphere MQ vs. the WebSphere Application Server Service Integration Bus". IBM developerWorks.
  • ^ "TIBCO Cloud™ Messaging TIBCO Software".
  • ^ "TIBCO Enterprise Message Service™".
  • Further reading[edit]

    External links[edit]


    Retrieved from "https://en.wikipedia.org/w/index.php?title=Jakarta_Messaging&oldid=1115125080"

    Categories: 
    Java enterprise platform
    Java specification requests
    Message-oriented middleware
    Software architecture
    Hidden categories: 
    Articles with short description
    Short description is different from Wikidata
     



    This page was last edited on 9 October 2022, at 23:06 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki