atr<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
<HEAD>
<TITLE>
  Architecture
</TITLE>
</HEAD>
<BODY BGCOLOR="#ffffff">

<P>
The Java Message Service (JMS) API provides a common way for Java programs to create, 
send, receive and read an enterprise messaging system's messages.

<H3>JMS Applications</H3>

<P>A JMS application is composed of the following parts:</P>

<UL>
  <LI>JMS Provider - a messaging system that implements the JMS API
      in addition to the other administrative and control functionality required 
      of a full-featured messaging product</LI>
  <LI>JMS Clients - the Java language programs that send and receive 
      messages</LI>
  <LI>Messages - objects that are used to communicate information between the 
      clients of an application</LI>
  <LI>Administered Objects - provider-specific objects that clients look up
      and use to interact portably with a JMS provider</LI>
  <LI>Non-JMS Clients - clients that use a message system's native 
      client API instead of the JMS API. If the application predated the 
      availability of the JMS API, it is likely that it will include both JMS 
      clients and non-JMS clients.</LI>
</UL>

<H3>Administration</H3>

<P>JMS providers differ significantly in their implementations of 
underlying messaging technology. There are also major 
differences in how a JMS provider's system is installed and administered.</P>

<P>For JMS clients to be portable, they must be isolated from these 
proprietary aspects of a provider. This is done by defining JMS administered
objects that are created and customized by a provider's administrator and 
later used by clients. The client uses them through JMS interfaces that are 
portable. The administrator creates them using provider-specific facilities.</P>

<P>There are two types of JMS administered objects:</P>

<UL>
  <LI>ConnectionFactory - the object a client uses to create a 
      connection with a JMS provider</LI>
  <LI>Destination - the object a client uses to specify the 
      destination of messages it is sending and the source of messages 
      it receives</LI>
</UL>

<P>Administered objects are placed in a Java Naming and Directory 
Interface<SUP><FONT SIZE="-2">TM</FONT></SUP> (JNDI) namespace by an 
administrator. 
A JMS client typically notes in its documentation the JMS administered objects 
it requires and how the JNDI names of these objects should be provided to it.</P>

<H3>Two Messaging Styles</H3>

<P>The JMS specification defines two styles of messaging: the point-to-point
(PTP) or the publish-and-subscribe (Pub/Sub). These styles can be combined in a 
single application, or a given application can use just one of these styles.</P>

<P>The JMS API defines these two styles because they represent two of the
dominant approaches to messaging currently in use.  While the domains have many
similarities, they also have some differences. JMS provides a unified programming
interface to allow the client programmer to easily send and receive message using  
either domain, but the client programmer must also be aware of the differences
between the domains. The key differences relate to how message persistence is  
handled, and the meaning of certain message attributes. </P>

<H3>JMS Interfaces</H3>

When programming an application client, the programmer may either program using 
the domain specific interfaces, or may use the common interfaces. The key interfaces
are listed in the table below. The preferred model is to use the common interfaces. 
The advantage to using the common interfaces is that both point-to-point and
pub/sub tasks can be combined in one session, allowing transactions to operate
over both domains. 
 <P>In earlier versions of JMS, there were separate class hierarchies for
the pub/sub and point-to-point programming models that had to be used. 
These class hierarchies are retained to support backward compatibility with
earlier versions of the JMS API, but client developers are encouraged to use
the common interfaces.
<P>
<TABLE BORDER CELLPADDING="3" CELLSPACING="0">
<CAPTION>
<B>Relationship of PTP and Pub/Sub interfaces<B>
</CAPTION>
<TR>
<TH ALIGN="LEFT">JMS Common</TH>
<TH ALIGN="LEFT">PTP Domain</TH>
<TH ALIGN="LEFT">Pub/Sub Domain</TH>
</TR>
<TR>
<TD>ConnectionFactory</TD>
<TD>QueueConnectionFactory</TD>
<TD>TopicConnectionFactory</TD>
</TR>
<TR>
<TD>Connection</TD>
<TD>QueueConnection</TD>
<TD>TopicConnection</TD>
</TR>
<TR>
<TD>Destination</TD>
<TD>Queue</TD>
<TD>Topic</TD>
</TR>
<TR>
<TD>Session</TD>
<TD>QueueSession</TD>
<TD>TopicSession</TD>
</TR>
<TR>
<TD>MessageProducer</TD>
<TD>QueueSender</TD>
<TD>TopicPublisher</TD>
</TR>
<TR>
<TD>MessageConsumer</TD>
<TD>QueueReceiver</TD>
<TD>TopicSubscriber</TD>
</TR>
</TABLE>

<P>The following provides a brief definition of these JMS concepts. See the PTP 
and Pub/Sub chapters of the JMS specification for more information.</P>

<UL>
  <LI>ConnectionFactory - an administered object used by a client to create a 
      Connection</LI>
  <LI>Connection - an active connection to a JMS provider</LI>
  <LI>Destination - an administered object that encapsulates the identity of a 
      message destination</LI>
  <LI>Session - a single-threaded context for sending and receiving messages</LI>
  <LI>MessageProducer - an object created by a Session that is used for sending 
      messages to a destination</LI>
  <LI>MessageConsumer - an object created by a Session that is used for receiving 
      messages sent to a destination</LI>
</UL>

<P>The term <EM>consume</EM> is used in this document to mean the receipt of a 
message by a JMS client; that is, a JMS provider has received a message and has 
given it to its client. Since the JMS API supports both synchronous and asynchronous 
receipt of messages, the term <EM>consume</EM> is used when there is no need to 
make a distinction between them.</P>

<P>The term <EM>produce</EM> is used as the most general term for sending a 
message. It means giving a message to a JMS provider for delivery to a 
destination.</P>

<H3>Developing a JMS Application</H3>

<P>Broadly speaking, a JMS application is one or more JMS clients that exchange 
messages. The application may also involve non-JMS clients; however, these 
clients use the JMS provider's native API in place of the JMS API.</P>

<P>A JMS application can be architected and deployed as a unit. In many cases, 
JMS clients are added incrementally to an existing application.</P>

<P>The message definitions used by an application may originate with JMS, or they 
may have been defined by the non-JMS part of the application.</P>

<H3>Developing a JMS Client</H3>

<P>A typical JMS client executes the following setup procedure:</P>

<UL>
  <LI>Use JNDI to find a ConnectionFactory object</LI>
  <LI>Use JNDI to find one or more Destination objects</LI>
  <LI>Use the ConnectionFactory to create a JMS Connection. At this point,
      message delivery is inhibited</LI>
  <LI>Use the Connection to create one or more JMS Sessions</LI>
  <LI>Use a Session and the Destinations to create the MessageProducers and 
      MessageConsumers needed</LI>
  <LI>Start message delivery for the Connection. Messages will be delivered to 
      MessageConsumers</LI>
</UL>

<P>At this point a client has the basic setup needed to produce and consume 
messages.</P>

<H3>Package Specification</H3>

<BLOCKQUOTE>
  <A HREF="http://java.sun.com/products/jms/docs.html">Java Message Service 
   Specification - Version 1.1 </A>
</BLOCKQUOTE>

<H3>Related Documentation</H3>

<BLOCKQUOTE>
  <A HREF="http://java.sun.com/products/jms/tutorial/index.html">Java Message
   Service Tutorial</A>
</BLOCKQUOTE>

</BODY>
</HTML>
