With multiple types of middleware a fact of life, I have developed a taxonomy of middleware to help development managers sort through the myriad offerings and identify the appropriate type of middleware for a given problem. An organization can then focus on evaluating and selecting the various offerings within the middleware segment. Of these six, the first three are asynchronous and the last three are synchronous. These two characteristics have an inverse relationship. Complementing middleware s scalability and recoverability is the nature of the communication, either synchronous or asynchronous.
Synchronous systems handle each request while the requesting system waits for the response.
Asynchronous systems, on the other hand, fire off requests without waiting for responses, which are eventually returned in whatever order they come. Meanwhile, the requesting system is free to perform other work. Asynchronous middleware, such as we find on the Web, scales quite large but can t recover very well, unless recoverability has been built into the application itself. Asynchronous RPC allows a client to request services without waiting for a response. The client requests information from the server and continues doing other things while it waits for a response.