RECENT INTEREST IN Web services has refocused IT's attention on EAI (enterprise application integration) middleware. In
integration projects, no software component is more important than messaging. Every new project poses challenging architectural
questions -- such as the use of XML and the selection of programming languages -- but all successful integration work hinges
on a robust and flexible messaging infrastructure.
Within the EAI context, messaging refers to software that packages application data, shoots it across the network, then
deciphers it on the other side. For messaging to be of any use in an enterprise setting, it must be able to guarantee that
100 percent of the messages received will be delivered to their destinations. It is that guarantee that makes message-oriented
middleware worth the high price typically charged for it.
There are plenty of ways to attack enterprise messaging. Traditionally, you would choose your overall integration platform
and accept the messaging layer that came with it. For example, when Windows is the chosen platform, MSMQ (Microsoft Message
Queuing) will most likely link applications. The .Net framework gives programmers a new set of APIs for messaging, but the
server messaging software stays the same.
IBM has created what is probably the most popular messaging middleware, MQSeries. Unlike the Windows-only MSMQ, MQSeries
runs on everything from desktops to mainframes. MQSeries' reach is evidenced by the tendency of competing messaging vendors
to offer MQSeries connectors. Such connectors either create a bridge between messaging servers or allow developers to use
a non-MQSeries API to communicate with an MQSeries server.
Sun, a relative newcomer to the messaging space, set a new standard with its JMS (Java Message Service) specification. Using
JMS, developers can create message-oriented software without concerning themselves with the vagaries of a specific messaging
platform. JMS specifies only the API. The actual messaging services are supplied by JMS-compatible providers, a field that
includes IBM, BEA Systems, Progress Software, JBoss, and several other commercial and open source players.
The JMS specification grants developers and IT managers an uncommon degree of flexibility. The developer needs to learn
only one API, even if he or she is coding for an environment that employs multiple overlapping messaging systems (which is
common). Even a midproject or post-deployment switch, either of which would be unthinkable without JMS, creates little disruption.
JMS is not without its faults. The underlying messaging platform is only transparent until something goes wrong. Debugging
serious problems requires a deep understanding of the specific JMS provider. And the use of multiple interconnected providers
can make troubleshooting especially difficult because each provider has a unique set of administrative tools. Still, Sun's
approach of separating the API from the messaging layer has changed the EAI landscape for the better.