Question 3.
What is the difference in load balancing with traditional and transactional MOM, RPC and conversations?
When designing a distributed application the communication model used to connect its various components is very important.
MOM stands for Message-Oriented Middleware and is software which resides between a client and a server. It stores messages awaiting dispatch to the client or the server. Communication is asynchronous, and services don't need to be available at the same time because communication is by sending and receiving messages from designated message queues.
RPC stands for Remote Procedure Call and is a type of protocol that allows a program on one computer to execute a program on another computer. Using RPC, the client program sends a message to the server with appropriate arguments and the server returns a message containing the results of the program executed. Communication is synchronous.
MOM and RPC have advantages and disadvantages.
RPC provides a more straightforward approach to messaging using a familiar and straightforward synchronous interaction model. However, it suffers from inflexibility and tight coupling between communicating systems, and it is also problematic to scale parts of the system and deal with service outages. RPC assumes that all parts of the system will be simultaneously available. If one part of the system was to fail or even become temporarily unavailable (eg network outage) the entire system could fail as a result. RPC calls also require more bandwidth than a similar MOM interaction. Bandwidth is an expensive performance overhead and is the main obstacle to scalability of the RPC mechanism. The RPC model is designed with the notion of a single client talking to a single server, therefore, traditional RPC has no built-in support for one to many communications. RPC guarantees sequential processing, and is slow but consistant.
MOM cannot guarantee sequential processing as it is asynchronous. MOM's decoupled approach allows for flexible integration of clients, support for large numbers of clients, high scalability, advanced filtering, integration into heterogeneous networks and clustering reliability.
If the distributed system will be geographically dispersed deployments with poor network connectivity and stringent demands in reliability, flexibility and scalability then MOM is the ideal solution.
Load balancing is the process of spreading the workload of the system over a number of servers. A correctly load balanced system should distribute work between servers, dynamically allocating work to the server with the lightest load. MOM requires a monitor to manage more than a single queue.
References
Mahmoud, Q. H. (June 2004). Middleware for communications. Wiley Publishing
Message-oriented Middleware (n.d.). Retrived on July 18, 2009 from http://www.encyclopedia.com/doc/1O12-messageorientedmiddleware.html
RPC (n.d.). Retrieved on July 18, 2009 from http://www.webopedia.com/TERM/R/RPC.html
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment