Chapter 8: JMS and Clustering

Overview

When a JMS message server is used as the basis of a distributed system, the result is a "loose coupling" of the components that compose that system. This decoupling reduces the need for the individual applications to be available at all times. Indeed, the consumer of a message need not have been implemented at the time that the corresponding producer sends it. It is also not necessary for the producers and consumers of messages to know each other's identity. Consumers can be added, removed, and replaced without any need for the producers to be aware of these occurrences.

These features make a new style of distributed architecture possible, where the developers of each element of the system have only limited knowledge and influence over the other elements of the system. This new architecture is required to circumvent the technical and organizational obstacles to the next generation of global, distributed systems. These are systems that span many companies and organizations, and it will not be possible for all parties involved to agree on the countless details required to work together in a tightly coupled fashion.

The two major aspects of loosely coupled systems described above–reduced demands on the availability of messaging participants and reduced awareness of messaging counter parties–cause very high demands to be placed on the message server that connects the system together. Namely, the message server must be available at all times, and all possible producers and consumers of messages that could potentially interact at any time in the future must connect to the same logical server.

We can expect that in very many messaging systems the central logical server will be required to provide a level of reliability and throughput that cannot be fulfilled by one single process running on one physical machine. In short, enterprise message servers will need to be able to combine the resources of multiple computers to create the external appearance of one highly capable central server. This is called clustering.

So you just need to run down to the local software store and pick up a cluster, right? Unfortunately, it is not so simple. There is a lot of complexity behind the elegant, all encompassing definition of clustering that I gave above. There's a large number of individual technical problems that can be overcome through clustering, and for a given application, some of these will be more important than others.

Furthermore, there is not just one way to build a cluster, there are an unlimited number of ways to architect a cluster, and each of these will solve some problems better than others. Fortunately, most clusters that you encounter in the marketplace will resemble at least one of the major architecture "themes" that we'll see in this chapter. So if your messaging-based distributed system requires a clustered JMS provider, read on.

This chapter will explain the concepts and issues involved in using clustering to provide scalable messaging services to JMS clients. The material in this chapter is aimed at helping system architects to be better able to:

  • Understand what clustering is in the context of JMS

  • Know what to expect from clustering

  • Know what not to expect from clustering

  • Define their particular requirements for clustering

  • Assess how a JMS provider meets these requirements

Note 

This chapter focuses on clustering as it relates to JMS. Much of the material, however, is relevant to clustering in general. This general material is a necessary prerequisite to understanding the JMS-specific issues. I would even go as far as to say that clustering is particularly important in the world of messaging. By their very nature, distributed architectures that rely on server-based messaging put very heavy demands on the capacity and reliability of a centralized server. This leads to clustering being necessary for JMS providers even more often than for many other type of server application.



Professional JMS
Professional JMS
ISBN: 1861004931
EAN: 2147483647
Year: 2000
Pages: 154

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net