<?xml version="1.0" encoding="ISO-8859-1"?>
<ns1:meme ns1:id="27" ns1:title="java messaging service" xmlns:ns1="http://www.memento.org"><ns1:author>Jaron Collis</ns1:author><ns1:memeContent><ns1:memenode><ns1:nodename>Core Concept</ns1:nodename><ns1:nodetext>A loosely coupled means of peer-to-peer communication.
Asynchronous - messages can be processed in any order.
Reliable - delivery can be guaranteed.
</ns1:nodetext><ns1:children><ns1:child>JMS messages</ns1:child><ns1:child>JMS producers</ns1:child><ns1:child>JMS consumers</ns1:child><ns1:child>JMS provider</ns1:child></ns1:children></ns1:memenode><ns1:memenode><ns1:nodename>JMS messages</ns1:nodename><ns1:nodetext>Message header - used for identification.
Properties - application or provider-specific header fields.
Body - content of the message, e.g. TextMessage or ObjectMessage.</ns1:nodetext><ns1:children><ns1:child>Point-To-Point</ns1:child><ns1:child>Publish/Subscribe</ns1:child></ns1:children></ns1:memenode><ns1:memenode><ns1:nodename>JMS producers</ns1:nodename><ns1:nodetext>Implements QueueSender (PtP) or TopicPublisher (P/S)</ns1:nodetext></ns1:memenode><ns1:memenode><ns1:nodename>JMS consumers</ns1:nodename><ns1:nodetext>Implements QueueReceiver (PtP) or TopicSubscriber (P/S) interface. 
Two ways of consuming messages: 
synchronously - an explicit message fetch using receive() or,
asynchronously - message delivered by JMS provider using listener&apos;s onMessage()</ns1:nodetext></ns1:memenode><ns1:memenode><ns1:nodename>JMS provider</ns1:nodename><ns1:nodetext>JMS API defines common set of interfaces and associated semantics: the actual implementation is vendor specific. All adhere to JMS ensuring compatibility.</ns1:nodetext></ns1:memenode><ns1:memenode><ns1:nodename>Point-To-Point</ns1:nodename><ns1:nodetext>Senders address messages to a specific queue, from where receiving clients extract their messages (1 message = 1 consumer). 
The receiver acknowledges the successful processing of a message.</ns1:nodetext></ns1:memenode><ns1:memenode><ns1:nodename>Publish/Subscribe</ns1:nodename><ns1:nodetext>Senders address messages to a topic in a content hierarchy. 
Infrastructure distributes messages to current subscribers, message expires when all have been notified (1 message = many consumers).
Has a timing dependency: you must subscribe before consuming. </ns1:nodetext></ns1:memenode></ns1:memeContent><ns1:access>false</ns1:access><ns1:category>software</ns1:category><ns1:repository>1</ns1:repository><ns1:creationDate>2002-11-27T15:10:32.711Z</ns1:creationDate><ns1:lastModified>2003-01-04T22:19:34.103Z</ns1:lastModified><ns1:relatedMemes/><ns1:relatedLinks><ns1:link><ns1:label>Sun JMS Tutorial</ns1:label><ns1:location>http://java.sun.com/products/jms/tutorial/</ns1:location></ns1:link><ns1:link><ns1:label>Sun articles on messaging</ns1:label><ns1:location>http://developer.java.sun.com/developer/technicalArticles/Networking/</ns1:location></ns1:link><ns1:link><ns1:label>Articles on JMS</ns1:label><ns1:location>http://www.javaworld.com/channel_content/jw-message-index.shtml</ns1:location></ns1:link></ns1:relatedLinks></ns1:meme>