Clustering Distributed Objects for Seamless Failover
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current technologies, such as RMI and CORBA, do not effectively support failover and load balancing capabilities for distributed objects across multiple servers, and fail to allow users to treat distributed objects as a single object, leading to inefficiencies in resource usage and network load management.
Innovation Solution
A method and system that cluster distributed objects across multiple servers by providing a remote controller with communication objects, enabling clients to communicate with all servers in the cluster, and supporting failover and load balancing by sharing communication objects and monitoring server status to ensure seamless service even if one server fails or becomes overloaded.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If RMI or CORBA technology is used for distributed object communication, then object invocation across VMs is enabled, but failover and load balancing capabilities are not supported
Solution Approach 1:
The patent introduces a clustering manager as an intermediary component that mediates between clients and distributed objects across multiple servers. The clustering manager receives client requests, determines the appropriate server based on load and availability, and routes requests accordingly, thereby enabling failover and load balancing without modifying the underlying RMI or CORBA technologies.
Solution Approach 2:
The patent creates a universal interface layer that works with multiple distributed object technologies (RMI, CORBA, and others). The clustering manager provides a unified mechanism for failover and load balancing that is technology-agnostic, allowing the same clustering infrastructure to support different object invocation technologies simultaneously.
2Reliability
If distributed objects are implemented across multiple servers, then load balancing and failover are possible, but network load increases due to multiple communication objects
Solution Approach 1:
The patent segments the communication architecture by separating the clustering management functions from individual object communications. The clustering manager handles high-level routing decisions, while individual communication objects handle specific object invocations. This segmentation allows for optimized communication paths and reduced redundant network traffic.
Solution Approach 2:
The clustering manager performs preliminary actions by pre-establishing server status information, load metrics, and routing decisions before actual object invocations occur. This allows requests to be routed efficiently based on pre-analyzed server conditions, reducing network overhead during runtime operations.
3Ease of operation
If clients access distributed objects directly without clustering management, then simple one-to-one invocation is achieved, but users cannot treat distributed objects as a single object
Solution Approach 1:
The clustering manager acts as an transparent intermediary to clients, presenting a unified interface for accessing distributed objects. Clients interact with the clustering manager as if accessing a single object, while the manager handles the complexity of routing to multiple actual servers, thereby maintaining simplicity for users while supporting distributed architecture.
Solution Approach 2:
The patent merges multiple distributed object instances across different servers into a single logical interface. The clustering manager combines the functionality of multiple servers behind one unified access point, allowing clients to treat distributed objects as a single object while the system manages the underlying complexity of multiple implementations.
Data Source
AI summary
A method for clustering objects distributed in multiple servers to allow one or more distributed objects to be used as if they were one object is provided. The method includes steps of: (a) a specific server transmitting to a client a remote controller including a particular communication object capable of supporting communications between the client and the specific server; and (b) the specific server supporting the client to include at least one communication object, capable of supporting communications between the client and at least one server, respectively, except the specific server within the cluster, in the remote controller, to thereby support the client to be communicable with all the servers in the cluster by acquiring, and providing to the client, the at least one communication object by referring to information on all the servers within the cluster.


