System and method for RMI-IIOP request load balancing
First Claim
1. A system, comprising:
- one or more host machines configured to implement a plurality of instances of an application server; and
one or more client machines each configured to implement one or more clients of the application server, wherein each client on a respective one of the one or more client machines is configured to;
create a different client-side Object Request Broker (ORB) on the client machine for each of the plurality of application server instances to generate a plurality of client-side ORBs each corresponding to a different one of the application server instances, wherein each client-side ORB is coupled to a server-side ORB of its corresponding application server instance;
select one of the plurality of client-side ORBs created by the client on the client machine according to a load balancing scheme in response to a request to access the application server;
wherein the load balancing scheme comprises a random scheme, a round robin scheme, or an intelligent scheme based on feedback;
wherein the load balancing scheme distributes requests to access the application server from the client among the plurality of client-side ORBs created by the client, thereby distributing the requests to access the application server from the client among the plurality of application server instances; and
access the application server instance corresponding to the selected client-side ORB via the selected client-side ORB coupled to the server-side ORB of the corresponding application server instance.
2 Assignments
0 Petitions
Accused Products
Abstract
System and method for client-side RMI-IIOP request load balancing. Embodiments provide a vendor-independent mechanism for load balancing RMI-IIOP requests using standards-based JNDI (Java Naming and Directory Interface) SPIs. One embodiment may use an implementation of a Context Factory class such as the JNDI ContextFactory SPI (Service Provider Interface) for RMI-IIOP request load balancing. Using embodiments, a client may load-balance RMI-IIOP requests to application server instances in an application server cluster. A plurality of client-side Object Request Brokers (ORBs) may be created “up front” on a client system. After the client-side ORBs are initially created, the client-side ORBs may be selected according to a load balancing scheme in response to requests to access the application server. Note that embodiments may be adapted for use in client-side load balancing for other types of client-server systems.
22 Citations
20 Claims
-
1. A system, comprising:
-
one or more host machines configured to implement a plurality of instances of an application server; and one or more client machines each configured to implement one or more clients of the application server, wherein each client on a respective one of the one or more client machines is configured to; create a different client-side Object Request Broker (ORB) on the client machine for each of the plurality of application server instances to generate a plurality of client-side ORBs each corresponding to a different one of the application server instances, wherein each client-side ORB is coupled to a server-side ORB of its corresponding application server instance; select one of the plurality of client-side ORBs created by the client on the client machine according to a load balancing scheme in response to a request to access the application server;
wherein the load balancing scheme comprises a random scheme, a round robin scheme, or an intelligent scheme based on feedback;
wherein the load balancing scheme distributes requests to access the application server from the client among the plurality of client-side ORBs created by the client, thereby distributing the requests to access the application server from the client among the plurality of application server instances; andaccess the application server instance corresponding to the selected client-side ORB via the selected client-side ORB coupled to the server-side ORB of the corresponding application server instance. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A client machine, comprising:
-
a processor; and a memory comprising program instructions, wherein the program instructions are executable by the processor to implement; create a plurality of client-side Object Request Brokers (ORBs) on the client machine for a client of an application server, wherein a different client-side ORB is created on the client machine for each of a plurality of instances of the application server to generate a plurality of client-side ORBs each corresponding to a different one of the application server instances, wherein the client is on the client machine, wherein each client-side ORB is coupled to a server-side ORB of its corresponding instance of the application server on one or more host machines; select one of the plurality of client-side ORBs on the client machine according to a load balancing scheme in response to a request to access the application server;
wherein the load balancing scheme comprises a random scheme, a round robin scheme, or an intelligent scheme based on feedback;
wherein the load balancing scheme distributes requests to access the application server from the client among the plurality of client-side ORBs, thereby distributing the requests to access the application server from the client among the plurality of application server instances; andaccess the application server instance corresponding to the selected client-side ORB via the selected client-side ORB coupled to the server-side ORB of the corresponding application server instance. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A computer-implemented method, comprising:
-
creating a plurality of client-side Object Request Brokers (ORBs) on a client machine for a client application on the client machine, wherein a different client-side ORB is created on the client machine for each of a plurality of instances of an application server to generate a plurality of client-side ORBs each corresponding to a different one of the application server instances, wherein each client-side ORB is coupled to a server-side ORB of its corresponding application server instance; the client application requesting access to the application server; selecting one of the plurality of client-side ORBs on the client machine according to a load balancing scheme in response to the request;
wherein the load balancing scheme comprises a random scheme, a round robin scheme, or an intelligent scheme based on feedback;
wherein the load balancing scheme distributes requests to access the application server from the client application among the plurality of client-side ORBs, thereby distributing the requests to access the application server from the client application among the plurality of application server instances; andthe client application accessing the application server instance corresponding to the selected client-side ORB via the selected client-side ORB coupled to the server-side ORB of the corresponding application server instance. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A computer-accessible storage medium comprising program instructions, wherein the program instructions are computer-executable to implement:
-
creating a plurality of client-side Object Request Brokers (ORBs) on a client machine for a client application the client machine, wherein a different client-side ORB is created on the client machine for each of a plurality of instances of the application server to generate a plurality of client-side ORBs each corresponding to a different one of the application server instances, wherein each client-side ORB is coupled to a server-side ORB of its corresponding application server instance; receiving a request from the client application for access to the application server; selecting one of the plurality of client-side ORBs on the client machine according to a load balancing scheme in response to the request;
wherein the load balancing scheme comprises a random scheme, a round robin scheme, or an intelligent scheme based on feedback;
wherein the load balancing scheme distributes requests to access the application server from the client application among the plurality of client-side ORBs, thereby distributing the requests to access the application server from the client application among the plurality of application server instances; andthe client application accessing the application server instance corresponding to the selected client-side ORB via the selected client-side ORB coupled to the server-side ORB of the corresponding application server instance. - View Dependent Claims (17, 18, 19, 20)
-
Specification