O'Reilly - Java Message Service
O'Reilly - Java Message Service
O'Reilly - Java Message Service
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Java</strong> <strong>Message</strong> <strong>Service</strong><br />
IP multicast allows applications to join one or more IP multicast groups; each group uses<br />
an IP network address that will redistribute any messages it receives to all members in its<br />
group. In this way, applications can send messages to an IP multicast address and expect<br />
the network layer to redistribute the messages appropriately (see Figure 1.3). Unlike a<br />
centralized architecture, a distributed architecture doesn't require a server for the purposes<br />
of routing messages - the network handles routing automatically. However, other serverlike<br />
functionality is still required to be included with each client, such as message<br />
persistence and message delivery semantics like once-and-only-once delivery.<br />
1.1.3 Hybrid Architectures<br />
Figure 1.3. Decentralized IP multicast architecture<br />
A decentralized architecture usually implies that an IP multicast protocol is being used. A<br />
centralized architecture usually implies that the TCP/IP protocol is the basis for<br />
communication between the various components. A messaging vendor's architecture may<br />
also combine the two approaches. Clients may connect to a daemon process using TCP/IP,<br />
which in turn communicate with other daemon processes using IP multicast groups.<br />
1.1.4 Centralized Architecture as a Model<br />
Both ends of the decentralized and centralized architecture spectrum have their place in<br />
enterprise messaging. The advantages and disadvantages of distributed versus centralized<br />
architectures are discussed in more detail in Chapter 7. In the meantime we need a<br />
common model for discussing other aspects of enterprise messaging. In order to simplify<br />
discussions, this book uses a centralized architecture as a logical view of enterprise<br />
messaging. This is for convenience only and is not an endorsement of centralized over<br />
decentralized architectures. The term "message server" is frequently used in this book to<br />
refer to the underlying architecture that is responsible for routing and distributing<br />
messages. In centralized architectures, the message server is a middleware server or cluster<br />
of servers. In decentralized architectures, the server refers to the local server-like facilities<br />
of the client.<br />
1.2 The <strong>Java</strong> <strong>Message</strong> <strong>Service</strong> (JMS)<br />
The <strong>Java</strong> <strong>Message</strong> <strong>Service</strong> (JMS) is an API for enterprise messaging created by Sun<br />
Microsystems. JMS is not a messaging system itself; it's an abstraction of the interfaces<br />
and classes needed by messaging clients when communicating with messaging systems. In<br />
the same way that JDBC abstracts access to relational databases and JNDI abstracts access<br />
9