What techniques covered in class are exploited in this category?Messaging: Sending messages which are blocks of data that a sender sends to a recipient. Messages include a message body, sender ID and recipient ID.
Multiplexing and queuing: Multiplexing and queuing go hand-in-hand. Multiplexing combines messages for a given recipient from more than one sender, while queuing is the system that stores messages until the recipient is ready to receive it.
Send protocol: A one-way protocol from sender to recipient that does not require a response from the recipient.
Can you speculate on the future evolution of this category? The future of MOM includes speculation on two questions. First, "Is MOM here to stay and will its market share increase?" and second, "Will communications middleware continue to be a standalone middleware application or will it become a component of more complex middleware solutions?"
To answer the first question, "Is MOM here to stay and will its market share increase?" it is useful to look at the advantages of MOM vs. RPC.
MOM advantages:
RPC advantages:
- Clients are free to perform other operations while waiting for a response from the server;
- MOM allows many responses to one request or many requests to one response;
- MOM is suitable for applications with long transaction lifetimes, such as workflow;
- MOM supports priority/load-balancing by allowing retrieval of messages off the queue in any order
- MOM products support fault tolerance: persistent queues allow messages to be recovered when the system fails; and
- MOM products are designed to support legacy systems and widely dispersed systems.
According to an April 1996, article in Byte magazine by Salamone Salvatore, "RPCs work best in simple setups, but often lack the flexibility developers need for complex client/server environments." It is likely that RPC is here to stay in some form, particularly for applications that can’t tolerate time-independent responses. But as systems become more complex and dispersed there will likely be a greater reliance on MOM solutions and the number of applications that rely on MOM technology will continue to grow. In addition, MOM technology has gotten a big boost recently by the decision by the Object Management Group (OMG) to adopt MOM to enable Object Request Brokers (ORBs) to communicate asynchronously.
- Provides a higher level communications abstraction so it hides the distributed nature of the application more fully;
- Optimized for client/server interaction, since it offers a direct request/response protocol support; and
- Simplifies programming because the client is blocked while waiting for a request.
The second question, "Will MOM remain a stand-alone middleware application, or will it become a component of more complex middleware solutions?" is even more difficult to predict.
As mentioned above, the middleware market is a web of competing and overlapping products. The market is in flux as some portions of middleware become incorporated in operating systems and new layers emerge. In addition, some products such as transaction processing products that originally used proprietary middleware to complete nearly all middleware functions (e.g., presentation, communication, and control) have started to shed some functions and rely on other middleware infrastructure. On the other hand, vendors of some products, such as MOM, appear to have added functions to their standard products over the last several months.
Whether MOM remains a stand-alone application depends in part upon the success of MOMA to ensure that MOM techniques are standardized so that an application built to work with one MOM product is able to work with all MOM products. On the other hand, if one MOM vendor becomes dominant and captures the vast majority of the market, then applications would only need to be built to work with that product. Finally, there may be some problems that require an integrated solution with bundled middleware services. If a number of these emerge, then the communications middleware category will continue to offer numerous solutions, none of which are truly dominant.