|
Message CentralThe primary goal of the Message Central project is to develop technology to enable the widespread use of component-based software, that is, software built by interconnection of software components. We are exploring two elements to reach these goals. The first is a tool called SAGE (Scalable Adapter GEnerator), to simplify the construction of inter-component adapters The second is a programming language called Continuum, to support the creation of reconnectable components.SAGEAs currently articulated, the development of component-based software depends upon prior agreement on standard interfaces and message sets. Historically, while such agreements have been made, they usually lag far behind the frontier of the application development, with messages and interfaces designed for new functionality containing many accidental differences from similar software developed elsewhere. The Scalable Adapter GEnerator, SAGE, aims to provide tools to simplify the connection of mildly mismatching software by creating message adapters between components.Earlier WorkSAGE is building on the work of two other efforts that have already developed technology for software composition and message transformation.
SAGE and Message TransformationSoftware components are connected by the interchange of messages. In some cases, the participants in the message exchange are designed together. In those, and other cases of serendipity, both the sender and the recipient of a message use the same definitions. More often, however, in the case of components that are developed separately and then brought together, the messages, and sequences of messages, will mismatch somewhat in format, content, or protocol. In addition to mismatches in the messages themselves, the industry today enjoys a surfeit of message definition languages and models, from Java Interface Definitions, through OMG's IDL, and including DTDs and MQ System Integrator-based definitions. We need to accept and match messages defined in a variety of definition forms. In order to develop strong tools for finding, matching, and reconciling messages, we need to understand the information needs of these processes. One goal of the Message Central work on SAGE is the production of a software base for producing a variety of message adapters. We will construct tools for automatically finding, matching, and reconciling messages, or assisting with those processes. Examples of message adapters include MQ System Integrator Transformation Nodes, Java Native Call to MQ SYSTEM Integrator Broadcast/Respond. Surfaces, XML->XML message transformers, keys to/from object references transformers and more complex multi-step field transformers. Novel TechnologyTools for producing message transformation adapters already exist. However, definitions of the transformations, although aided by the tool and interface, are still one-by-one. The map developer specifies the mappings on an element-by-element basis for a single transformation, They are relatively labor intensive. SAGE will use several approaches not employed today to automate this task and reduce the cost of describing transformations between messages that come in related groups:
ContinuumComponent-structure fragilityMessage-oriented programming aims to eliminate the denotation of one of the parameters from the clients' view of method call as the special object to which the "message" is sent, and focus, instead, on the message as a request for service by any server. This permits client code to be reused even when the implementation of a method is moved from one object to another. Consider, for example, a fragment of code written to record the fact that an item was sold to a customer at a store. Assuming that "item, customer, and store" are variables that refer to objects of those types then the sale could be registered by calling the register_sale method of the item being sold. A Java programmer might write:
Issues in moving to message-oriented softwareSuccessfully supporting a programming style that eliminated component-structure fragility requires addressing several issues:
|
For further information, please contact
Bill Harrison.
[Research home page]
[ IBM home page | Order | Search | ContactIBM | Legal ]