Skip to Main Content
An important aspect of designing a distributed application is the communication model we use to connect its various components. Some middleware solutions, such as Web services, offer two of the most important communication paradigms: asynchronous messaging and remote procedure call (RPC). Message-oriented middleware (MOM) lets a service's consumers physically and temporally decouple from the service providers. Communication between service providers and the consumers is asynchronous, and it don't need to be available at the same time because they communicate by sending and receiving messages from designated message queues. In contrast, RPC is a synchronous method of requesting remote service execution. Consumers must suspend service execution until they receive a reply from the provider. MOM and RPC have advantages and disadvantages. MOM solutions tend to be more robust to failures than RPC, and it allows service requesters to continue to process while service provider's work on their requests. However, programming MOM-based applications is more cumbersome because distribution isn't as transparent to the programmer as with RPCs. In this column, we provide a quantitative framework, which we can use to compare MOM- and RPC-based solutions.