Going for Message Brokering

Max Dolgicer

Application integration requires an architecture, or blueprint, that an organization follows when implementing the technology.

Although common data stores would be ideal, businesses found that it was practical only for applications in the same or related systems. This is because the data in different systems is both technically and semantically different.

Data synchronization was an attempt to loosely integrate data by reconciling duplicate data versions. Although it allowed each application domain to operate with its own data model and DBMS, the dynamic nature of application development made the model impractical. In addition. the redundant version of data was often inconsistent or out of date.

Other architectures rely more on the ability of applications to communicate with each other without forcing application owners to agree on common data stores and common application interfaces. This is where application integration, with its underlying middleware products, comes in. The ability of one application to send requests to multiple applications and, when necessary, receive replies back from these applications requires communication middleware.

Communication middleware comes in many flavors – socket based communication, RPCs, messaging and so on. Because application integration often means asynchronous, time-independent communication, asynchronous messaging is becoming a de facto standard to facilitate application-to-application communication. However, in most instances, messaging only provides communication plumbing, a foundation for application integration.

Take IBM's MQSeries, for example. MQSeries has become the dominant infrastructure for many corporations, but it does not deliver the higher level of services needed to efficiently cross application boundaries. MQSeries is a sophisticated pipe capable of delivering messages in a reliable fashion. However, like any communication pipe, it is not application contentaware. In order for applications to "talk" to each other, they have to agree on application interfaces and the meaning of these interfaces.

Unfortunately, many applications have been developed or purchased without any specific architecture in place. For years, the traditional approach to application integration consisted of a patchwork of one-to-one interfaces between applications. However, this approach introduces maintenance complexities that increase exponentially with each application that joins the architecture. In addition, the extent of any "side effects" may not be known until a transaction fails.

To solve this problem, users began looking for a more practical approach to application integration. This is where message broker-based architecture "snaps in". Message brokers provide the means to mediate between the different application formats that applications "speak" the different invocation semantics that deal with how the applications talk to each other. They also furnish an approach to business process flow control outside traditional program logic.

Message Brokers: A History

The term "message broker" was coined by the Gartner Croup in early 1996. At that time, some very specialized approaches existed to integrate disparate applications so that they could exchange information automatically. The technology was mainly used in the healthcare industry (the HL7 standard) and the financial industry(SWIFT standard). There were also a variety of products on the market that provided some kind of application integration capability.

The original papers on message brokers tried to evolve a general concept based on a combination of selected functionality of message broker-like products, requirements gathered from end-user organizations and an analysis of the direction of the middleware market. At that time, the following definition for a message broker was stated: 'A Message broker is a logical hub that copies and resends messages to one or more destinations. It is an intelligent third party - a true broker - between information sources and information consumers so that communication is an independent, sharable function rather than something conducted between only two parties."

However, due to a lack of commercial products that cover the functionality of a message broker solution, the only choice was traditional communication middleware (MOM systems, CORBA Object Request Brokers and so on) that provided diverse communication services between application programs. Because application integration encompasses many more services than just plain program-to-program communication, many companies expend a significant effort in developing required services, thus developing their own homegrown message brokers. Because most of these services are generic by nature, they are not part of the application layer - not a business an end-user company wants to be in. In fact, some internal integration projects became commercial message broker products that are on the market today.

There is a substantial difference between product development and development of a customer-specific solution; therefore, message brokers that have been developed with an intent to be a product generally have a substantially better architecture. Nevertheless, the situation has changed as more commercial message broker products have emerged on the market. There are a number of products on the market today that call themselves message brokers, although in reality message brokers span many product categories that often have very little in common with each other. In fact, in many peoples' opinion, message broker is not a product, but a concept. Regardless of whether this is true or not, there is a basic set of services a message broker should perform.

Message brokers should enable program-to-program communication between disparate applications that always require some sort of communication middleware. First generation message broker products had their proprietary communication middleware built-in. However, most message broker vendors quickly realized that communication middleware is not the business they wanted to compete in, and today, most products support communication middleware with IBM's MQSeries at the top of the list. It should also be noted that some message broker products are based on the publish/subscribe model, while others support the message queuing model.

Support for a communication model has a direct impact on the architecture of the message broker itself. While some message brokers facilitate a hub-and-spoke application architecture in which the message queuing model of communication is the norm, others are based on the Message Bus model where publish/subscribe communication fits the best. Ideally message brokers should support both communication models and offer both architectures. It is also a mistake to assume that message brokers mandate real-time program-to-program interaction. Message brokers should support diverse modes of input, including bulk-oriented input media, as well as more interactive media such as messages. The same applies to support of diverse media output. Message brokers should be able to support interactive, as well as batch, processing.

Modes of Processing

Message brokers externalize (offload) some logic from application programs by providing additional value-added services to the basic communication capabilities. In fact, a message broker can be viewed as a logical hub that acts as an intelligent intermediary between application systems capable of hosting at least some of the services essential to application integration. Examples of such services are intelligent message transformation, message storage, and configuration and monitoring of applications using message brokers. Additional important services include support for different adapters that range from specific packaged applications such as SAP R/3, PeopleSoft, and Baan, to general purpose adapters such as the 3270 protocol, and databases such as DB2 and Oracle.

Instead of developing the rules that govern message transformation between two applications and placing them inside the respective application programs, message brokers allow externalization of this logic and place it in a hub controlled by a message broker. Because a substantial percent age of an application developers' time is spent developing transformation logic, the ability to enable such a transformation via GUI-based mapping or a scripting language inside the message broker is a giant step toward programless application integration.

Buy vs. Build: Message Broker Light

Message broker products differ in their capabilities, platform support, architecture, and industry and technology focus.

However, many have two items in common: complexity and price. This brings up the following question: Buy or build? In my experience, no commercial message broker product provides all of the required functionality. Therefore, the choice is actually buy and build vs. just build.

Does your company have few supported platforms, message transformation rules governing application protocols that are not too complex, and a need to watch expenses? If so, you might want to build a homegrown "Message Broker Light" on a top of purchased communication middleware. Message Broker Light supports rules-based message transformation; intelligent content-based routing of messages between applications, including one-to-one and one-to-many routing; message repository; and distributed workflow. Companies that embark on such an initiative could also build Message Broker Light incrementally. where different services expose well-defined interfaces and where each service is not tightly coupled with other services.

Conceptually, message brokering provides a layer of abstraction into which purchased or homegrown software may "plug in." it also resolves the problem of "black box" information by providing a framework for distributing, routing and determining the flow of the application's messages, as well as providing services to transform and secure the messages. By defining a space in which ROI can be easily justified and explained in enterprise application integration, message. brokers are strong catalysts for legitimizing middleware technologies.

Copyright © 1999 International Systems Group, Inc. All rights reserved.