IP Library Granted Patent US 8,566,849
Granted Patent B2
US 8,566,849 · App. 10/017,495 · Granted Oct 22, 2013

Name service object clustering

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,566,849
App. No.
10/017,495
Granted
Oct 22, 2013
Kind
B2
Abstract

A naming service clustering method which permits naming service load balancing over a set of object references contained within the same cluster such that loads are equitably distributed among servers. Each cluster contains its own unique object binding table which contains object references which each typically represent a single server. Load balancing is performed using a load balance algorithm (e.g., Round Robin). The specific algorithm which is used to perform load balancing is specified upon creation of each naming service cluster. The method provides transparent load balancing among multiple object references in the same cluster. In addition, transparent “failover” among object references in the same cluster is achieved. The method also provides a dynamic addition of new object references into a cluster via binding, along with the dynamic removal of old object references from a cluster via unbinding.

Claims (70)

1. A computer implemented method for fault tolerance, load balance and failover that occurs transparently to a Common Object Request Broker Architecture (CORBA) client while resolving a CORBA object server, comprising:

establishing name service clusters for object servers which each contain a unique object binding table that contains object server references;

specifying a load balance algorithm to perform load balancing of object references contained within the common group of object reference binders;

clustering together object reference bindings having identical names into common clusters such that a common group of object reference binding servers is created;

in response to a request from a client that invokes a cluster, performing a load balance by having a name service select an object server located in an invoked cluster;

appending a cluster component to the invoked cluster to provide failover upon failure of the object server;

forwarding a selected object reference to the client upon completion of the load balance; and

permitting the client to communicate with the object server associated with the selected object reference which was forwarded to the client, wherein a fault tolerance, a pre-determined load balance and the failover are performed transparently to the CORBA client while resolving the CORBA object server.

2. The method of claim 1 , further comprising:

binding to the object server using an IP Address and a port number contained in the selected object reference.

3. The method of claim 1 , further comprising:

specifying a load balance algorithm upon establishing the name service clusters to perform name service load balancing of object reference contained within the clusters.

4. The method of claim 1 , wherein the load balance balancing is performed based on a predetermined method.

5. The method of claim 1 , wherein the load balance is performed based on a predetermined method.

6. The method of claim 5 , wherein the predetermined method is a Round Robin load balancing algorithm.

7. The method of claim 1 , wherein the object binding table of each cluster contains object references; and

wherein each object reference represents a single object server.

8. A computer implemented method for fault tolerance, load balance and failover that occurs transparently to a Common Object Request Broker Architecture (CORBA) client while resolving a CORBA object server, comprising:

establishing name service clusters for object servers which each contain a unique object binding table that contains object server references;

in response to a request from a client that invokes a cluster, performing a load balance by having a name service select an object server located in an invoked cluster;

appending a cluster component to the invoked cluster to provide failover upon failure of the object server;

forwarding a selected object reference to the client upon completion of the load balance;

permitting the client to communicate with the object server associated with the selected object reference which was forwarded to the client by binding to the object server using an IP Address and a port number contained in the selected object reference, wherein a fault tolerance, the load balance, and the failover are performed transparently to the CORBA client while resolving the CORBA object server;

providing a user with a class having predetermined methods if bind interceptors are in use; and

specifying the class such that the class contains most predetermined methods, said specifying being performed at a discretion of the user.

9. The method of claim 8 , further comprising:

checking the bind interceptors if the object fails; and

selecting an alternative server if a bind interceptor contains a predetermined method; said selection being performed by the user upon entry of a predetermined method by the user.

10. The method of claim 9 , further comprising:

intercepting a cluster component of the object server which failed based on the bind interceptor;

invoking a load balance algorithm of the cluster via the bind interceptor to select and return a new object reference located in the cluster to the client;

established communications with the client and an object server of the new object reference; and

marking a failed object server to indicate failure thereof.

11. The method of claim 10 , further comprising:

removing the marked failed object server from the cluster.

12. The method of claim 9 , wherein the predetermined method is

bind_failed.

13. The method of claim 9 , wherein the predetermined method is a Round Robin load balancing algorithm.

14. The method of claim 8 , wherein the predetermined methods are one of bind, bind_succeeded and bind failed.

15. A computer implemented system for fault tolerance, load balance and failover that occurs transparently to a Common Object Request Broker Architecture (CORBA) client while resolving a CORBA object server, comprising:

a processor comprising a memory and a processing circuit configured for:

establishing name service clusters for object servers which each contain a unique object binding table that contains object server references;

clustering together object reference bindings having identical names into common clusters such that a common group of object reference binding servers is created; and

specifying a predetermined load balance algorithm to perform load balancing of object references contained within the common group of group of object reference binders;

in response to a request from a client that invokes a cluster, performing a load balance by having a name service select an object server located in in an invoked cluster;

appending a cluster component to the invoked cluster to provide failover upon failure of the object server;

forwarding a selected object reference to a client upon completion of the load balance;

permitting the client to communicate with the object server associated with the selected object reference which was forwarded to the client, wherein a fault tolerance, the load balance and the failover are performed transparently to the CORBA client while resolving the CORBA object server.

16. The system of claim 15 , wherein the file comprises a configuration file.

17. The system of claim 15 , wherein the processing circuit is further configured for:

binding to the server using an IP Address and port number contained in the specific object reference.

18. The system of claim 15 , wherein said load balancing is performed based on a predetermined method.

19. The method of claim 18 , wherein the predetermined method is a Smart Round Robin load balancing algorithm.

20. The method of claim 15 , wherein initially the load balance algorithm is a Smart Round Robin.

21. A computer implemented system for load balancing that occurs transparently to a Common Object Request Broker Architecture (CORBA) client while resolving a CORBA object server, comprising:

a processor compromising a memory and a processing circuit configured for:

establishing name service clusters for object servers which each contain a unique object binding table that contains object server references;

in response to a request from a client that invokes a cluster, a name service for the cluster performs a load balance to select an object server located in an invoked cluster which can handle the request;

appending a cluster component to the invoked cluster to provide failover upon failure of the object server;

forwarding a selected object reference to the client upon completion of the load balance; and

permitting the client to communicate with the object server associated with the selected object reference which was forwarded to the client by binding to the object server using an IP address and a port number contained in the selected, wherein a fault tolerance, the load balance, and the failover are performed transparently to the CORBA client while resolving the CORBA object server;

providing the user with a class having relevant methods if bind interceptors are in use; and

specifying the class such that the class contains most relevant methods, said specifying being performed at a discretion of the user.

22. The system of claim 21 , wherein the processing circuit is further configured for:

checking the bind interceptors if the object fails;

selecting an alternative server if a bind interceptor contains a predetermined method; said selection being performed by the user upon entry of a predetermined method by the user;

intercepting a cluster component of the object server which failed based on the bind interceptor;

invoking a load balance algorithm of the cluster via the bind interceptor to select and return a new object reference located in the cluster to the client;

established communications with the client and an object server of the new object reference; and

marking a failed object server to indicate failure thereof.

Assignments (6)
RELEASE OF SECURITY INTEREST REEL/FRAME 035656/0251 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.)
Reel/Frame 062623/0009 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT TYPO IN APPLICATION NUMBER 10708121 WHICH SHOULD BE 10708021 PREVIOUSLY RECORDED ON REEL 042388 FRAME 0386. ASSIGNOR(S) HEREBY CONFIRMS THE NOTICE OF SUCCESSION OF AGENCY. Recorded Jul 26, 2018
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 048793/0832 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
NOTICE OF SUCCESSION OF AGENCY Recorded May 2, 2017
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 042388/0386 →
SECURITY INTEREST Recorded May 13, 2015
From: MICRO FOCUS (US), INC.; BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; NOVELL, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 035656/0251 →