IP Library Granted Patent US 6,954,784
Granted Patent B2
US 6,954,784 · App. 10/087,853 · Granted Oct 11, 2005

Systems, method and computer program products for cluster workload distribution without preconfigured port identification by utilizing a port of multiple ports associated with a single IP address

Assignee: International Business Machines Corporation
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 6,954,784
App. No.
10/087,853
Granted
Oct 11, 2005
Kind
B2
Abstract

Cluster-wide port assignments in a workload distribution system in a cluster of data processing systems are provided such that a unique port may be provided for a socket. Establishing ports associated with workload distribution is also provided by allowing either enumerated ports and/or all ports of a common IP address to be associated with workload distribution. Workload distribution is provided in a cluster of data processing systems where a single IP address may be associated with a plurality of data processing systems and/or protocol stacks in the cluster of data processing systems and a port of the single IP address may be shared among multiple data processing systems and/or protocol stacks or may be unique among the plurality of data processing systems and/or protocol stacks.

Claims (124)

1. A method of communicating with a plurality of application instances executing on a cluster of data processing systems utilizing a single Internet Protocol (IP) address, the method comprising the steps of:

notifying a distributing data processing system if an application opens a listening socket utilizing any port of multiple ports associated with the single IP address;

identifying potential target data processing systems in the cluster of data processing systems at the distributing data processing system based on the notification;

receiving a request to establish a connection to the single IP address and a port of the multiple ports associated with the single IP address at the distributing data processing system;

selecting a data processing system from the potential target data processing systems if the port associated with the request is a port of the multiple ports associated with the single IP address associated with a potential data processing system; and

routing communications for the connection to the selected data processing system.

2. The method according to claim 1 , wherein the step of selecting a data processing system comprises selecting a data processing system to distribute workload between the potential target data processing systems.

3. The method according to claim 1 , wherein the distributing data processing system comprises a routing communication protocol stack.

4. A method of communicating with a plurality of application instances executing on a cluster of data processing systems utilizing a single Internet Protocol (IP) address, the method comprising the steps of:

notifying a distributing data processing system if an application opens a listening socket utilizing any port associated with the single IP address;

identifying potential target data processing systems in the cluster of data processing systems at the distributing data processing system based on the notification;

receiving a request to establish a connection to the single IP address and a port associated with the single IP address at the distributing data processing system;

selecting a data processing system from the potential target data processing systems if the port associated with the request is associated with a potential data processing system;

routing communications for the connection to the selected data processing system;

notifying a distributing data processing system if an application opens a listening socket utilizing an enumerated port if ports associated with the single IP address are enumerated; and

wherein notifying the distributing data processing system if an application opens a listening socket utilizing any port associated with the single IP address comprises notifying the distributing data processing system if an application opens a listening socket utilizing any port associated with the single IP address if ports are not enumerated.

5. A method of communicating with a plurality of application instances executing on a cluster of data processing systems utilizing a single Internet Protocol (IP) address, the method comprising the steps of:

notifying a distributing data processing system if an application opens a listening socket utilizing any port associated with the single IP address;

identifying potential target data processing systems in the cluster of data processing systems at the distributing data processing system based on the notification;

receiving a request to establish a connection to the single IP address and a port associated with the single IP address at the distributing data processing system;

selecting a data processing system from the potential target data processing systems if the port associated with the request is associated with a potential data processing system;

routing communications for the connection to the selected data processing system;

notifying a distributing data processing system if an application opens a listening socket utilizing an enumerated port of the single IP address if ports associated with the single IP address are enumerated irrespective of whether the listening socket is opened with the single IP address specifically identified; and

wherein notifying the distributing data processing system if an application opens a listening socket utilizing any port associated with the single IP address comprises notifying the distributing data processing system if an application opens a listening socket utilizing any port associated with the single IP address if the listening socket is opened with the single IP address specifically identified.

6. The method according to claim 5 , further comprising:

receiving at the data processing system in the cluster of data processing systems a definition that the single IP address is a distributed address from the distributing data processing system, wherein the definition includes an indication of whether ports associated with the single IP address which are to be distributed are enumerated; and

evaluating the definition to determine if the ports associated with the single IP address are enumerated.

7. A method of communicating with a plurality of application instances executing on a cluster of data processing systems utilizing a single Internet Protocol (IP) address, the method comprising the steps of:

notifying a distributing data processing system if an application opens a listening socket utilizing any port associated with the single IP address;

identifying potential target data processing systems in the cluster of data processing systems at the distributing data processing system based on the notification;

receiving a request to establish a connection to the single IP address and a port associated with the single IP address at the distributing data processing system;

selecting a data processing system from the potential target data processing systems if the port associated with the request is associated with a potential data processing system;

routing communications for the connection to the selected data processing system;

determining if a port associated with the received request is a unique port associated with a listening socket of an application on a data processing system within the cluster has a port associated;

selecting the data processing system associated with the unique port as a destination data processing system for the request; and

routing the request to the destination data processing system.

8. The method according to claim 7 , wherein determining if a port associated with the received request is a unique port comprises:

notifying the distributing data processing system if an application associated with a data processing system in the cluster of data processing systems opens a listening socket associated with the single IP address utilizing a unique port within the cluster of data processing systems so as to provide an identification of data processing systems associated with unique ports of the IP address; and

determining if the port associated with the received request is a unique port associated with an identified data processing system.

9. The method according to claim 8 , wherein the unique port comprises an ephemeral port.

10. A system for communicating with a plurality of application instances executing on a cluster of data processing systems utilizing a single Internet Protocol (IP) address, comprising:

means for notifying a distributing data processing system if an application opens a listening socket utilizing any port of multiple ports associated with the single IP address;

means for identifying potential target data processing systems in the cluster of data processing systems at the distributing data processing system based on the notification;

means for receiving a request to establish a connection to the single IP address and a port of the multiple ports associated with the single IP address at the distributing data processing system;

means for selecting a data processing system from the potential target data processing systems if the port associated with the request is a port of the multiple ports associated with the single IP address associated with a potential data processing system; and

means for routing communications for the connection to the selected data processing system.

11. The system according to claim 10 , wherein the means for selecting a data processing system comprises means for selecting a data processing system to distribute workload between the potential target data processing systems.

12. The system according to claim 10 , wherein the distributing data processing system comprises a routing communication protocol stack.

13. A system for communicating with a plurality of application instances executing on a cluster of data processing systems utilizing a single Internet Protocol (IP) address, comprising:

means for notifying a distributing data processing system if an application opens a listening socket utilizing any port associated with the single IP address;

means for identifying potential target data processing systems in the cluster of data processing systems at the distributing data processing system based on the notification;

means for receiving a request to establish a connection to the single IP address and a port associated with the single IP address at the distributing data processing system;

means for selecting a data processing system from the potential target data processing systems if the port associated with the request is associated with a potential data processing system;

means for routing communications for the connection to the selected data processing system;

means for notifying a distributing data processing system if an application opens a listening socket utilizing an enumerated port if ports associated with the single IP address are enumerated; and

wherein the means for notifying the distributing data processing system if an application opens a listening socket utilizing any port associated with the single IP address comprises means for notifying the distributing data processing system if an application opens a listening socket utilizing any port associated with the single IP address if ports are not enumerated.

14. A system for communicating with a plurality of application instances executing on a cluster of data processing systems utilizing a single Internet Protocol (IP) address, comprising:

means for notifying a distributing data processing system if an application opens a listening socket utilizing any port associated with the single IP address;

means for identifying potential target data processing systems in the cluster of data processing systems at the distributing data processing system based on the notification;

means for receiving a request to establish a connection to the single IP address and a port associated with the single IP address at the distributing data processing system;

means for selecting a data processing system from the potential target data processing systems if the port associated with the request is associated with a potential data processing system;

means for routing communications for the connection to the selected data processing system;

means for notifying a distributing data processing system if an application opens a listening socket utilizing an enumerated port of the single IP address if ports associated with the single IP address are enumerated irrespective of whether the listening socket is opened with the single IP address specifically identified; and

wherein the means for notifying the distributing data processing system if an application opens a listening socket utilizing any port associated with the single IP address comprises means for notifying the distributing data processing system if an application opens a listening socket utilizing any port associated with the single IP address if the listening socket is opened with the single IP address specifically identified.

15. The system according to claim 14 , further comprising:

means for receiving at the data processing system in the cluster of data processing systems a definition that the single IP address is a distributed address from the distributing data processing system, wherein the definition includes an indication of whether ports associated with the single IP address which are to be distributed are enumerated; and

means for evaluating the definition to determine if the ports associated with the single IP address are enumerated.

16. A system for communicating with a plurality of application instances executing on a cluster of data processing systems utilizing a single Internet Protocol (IP) address, comprising:

means for notifying a distributing data processing system if an application opens a listening socket utilizing any port associated with the single IP address;

means for identifying potential target data processing systems in the cluster of data processing systems at the distributing data processing system based on the notification;

means for receiving a request to establish a connection to the single IP address and a port associated with the single IP address at the distributing data processing system;

means for selecting a data processing system from the potential target data processing systems if the port associated with the request is associated with a potential data processing system;

means for routine communications for the connection to the selected data processing system;

means for determining if a port associated with the received request is a unique port associated with a listening socket of an application on a data processing system within the cluster has a port associated;

means for selecting the data processing system associated with the unique port as a destination data processing system for the request; and

means for routing the request to the destination data processing system.

17. The system according to claim 16 , wherein the means for determining if a port associated with the received request is a unique port comprises:

means for notifying the distributing data processing system if an application associated with a data processing system in the cluster of data processing systems opens a listening socket associated with the single IP address utilizing a unique port within the cluster of data processing systems so as to provide an identification of data processing systems associated with unique ports of the IP address; and

means for determining if the port associated with the received request is a unique port associated with an identified data processing system.

18. The system according to claim 16 , wherein the unique port comprises an ephemeral port.

19. A computer program product for communicating with a plurality of application instances executing on a cluster of data processing systems utilizing a single Internet Protocol (IP) address, comprising:

a computer readable storage media having computer readable program code embodied therein, the computer readable program code comprising:

computer readable program code configured to notify a distributing data processing system if an application opens a listening socket utilizing any port of multiple ports associated with the single IP address;

computer readable program code configured to identify potential target data processing systems in the cluster of data processing systems at the distributing data processing system based on the notification;

computer readable program code configured to receive a request to establish a connection to the single IP address and a port of the multiple ports associated with the single IP address at the distributing data processing system;

computer readable program code configured to select a data processing system from the potential target data processing systems if the port associated with the request is a port of the multiple ports associated with the single IP address associated with a potential data processing system; and

computer readable program code configured to route communications for the connection to the selected data processing system.

20. The computer program product according to claim 19 , wherein the computer readable program code configured to select a data processing system comprises computer readable program code configured to select a data processing system to distribute workload between the potential target data processing systems.

21. The computer program product according to claim 19 , wherein the distributing data processing system comprises a routing communication protocol stack.

22. A computer program product for communicating with a plurality of application instances executing on a cluster of data processing systems utilizing a single Internet Protocol (IP) address, comprising:

a computer readable storage media having computer readable program code embodied therein, the computer readable program code comprising;

computer readable program code configured to notify a distributing data processing system if an application opens a listening socket utilizing any port associated with the single IP address;

computer readable program code configured to identify potential target data processing systems in the cluster of data processing systems at the distributing data processing system based on the notification;

computer readable program code configured to receive a request to establish a connection to the single IP address and a port associated with the single IP address at the distributing data processing system;

computer readable program code configured to select a data processing system from the potential target data processing systems if the port associated with the request is associated with a potential data processing system;

computer readable program code configured to route communications for the connection to the selected data processing system;

computer readable program code configured to notify a distributing data processing system if an application opens a listening socket utilizing an enumerated port if ports associated with the single IP address are enumerated; and

wherein the computer readable program code configured to notify the distributing data processing system if an application opens a listening socket utilizing any port associated with the single IP address comprises computer readable program code configured to notify the distributing data processing system if an application opens a listening socket utilizing any port associated with the single IP address if ports are not enumerated.

23. A computer program product for communicating with a plurality of application instances executing on a cluster of data processing systems utilizing a single Internet Protocol (IP) address, comprising:

a computer readable storage media having computer readable program code embodied therein, the computer readable program code comprising;

computer readable program code configured to notify a distributing data processing system if an application opens a listening socket utilizing any port associated with the single IP address;

computer readable program code configured to identify potential target data processing systems in the cluster of data processing systems at the distributing data processing system based on the notification;

computer readable program code configured to receive a request to establish a connection to the single IP address and a port associated with the single IP address at the distributing data processing system;

computer readable program code configured to select a data processing system from the potential target data processing systems if the port associated with the request is associated with a potential data processing system;

computer readable program code configured to route communications for the connection to the selected data processing system;

computer readable program code configured to notify a distributing data processing system if an application opens a listening socket utilizing an enumerated port of the single IP address if ports associated with the single IP address are enumerated irrespective of whether the listening socket is opened with the single IP address specifically identified; and

wherein the computer readable program code configured to notify the distributing data processing system if an application opens a listening socket utilizing any port associated with the single IP address comprises computer readable program code configured to notify the distributing data processing system if an application opens a listening socket utilizing any port associated with the single IP address if the listening socket is opened with the single IP address specifically identified.

24. The computer program product according to claim 23 , further comprising:

computer readable program code configured to receive at the data processing system in the cluster of data processing systems a definition that the single IP address is a distributed address from the distributing data processing system, wherein the definition includes an indication of whether ports associated with the single LP address which are to be distributed are enumerated; and

computer readable program code configured to evaluate the definition to determine if the ports associated with the single IP address are enumerated.

25. A computer program product for communicating with a plurality of application instances executing on a cluster of data processing systems utilizing a single Internet Protocol (IP) address, comprising:

a computer readable storage media having computer readable program code embodied therein, the computer readable program code comprising;

computer readable program code configured to notify a distributing data processing system if an application opens a listening socket utilizing any port associated with the single IP address;

computer readable program code configured to identify potential target data processing systems in the cluster of data processing systems at the distributing data processing system based on the notification;

computer readable program code configured to receive a request to establish a connection to the single IP address and a port associated with the single IP address at the distributing data processing system;

computer readable program code configured to select a data processing system from the potential target data processing systems if the port associated with the request is associated with a potential data processing system;

computer readable program code configured to route communications for the connection to the selected data processing system;

computer readable program code configured to determine if a port associated with the received request is a unique port associated with a listening socket of an application on a data processing system within the cluster has a port associated;

computer readable program code configured to select the data processing system associated with the unique port as a destination data processing system for the request; and

computer readable program code configured to route the request to the destination data processing system.

26. The computer program product according to claim 25 , wherein the computer readable program code configured to determine if a port associated with the received request is a unique port comprises:

computer readable program code configured to notify the distributing data processing system if an application associated with a data processing system in the cluster of data processing systems opens a listening socket associated with the single IP address utilizing a unique port within the cluster of data processing systems so as to provide an identification of data processing systems associated with unique ports of the IP address; and

computer readable program code configured to determine if the port associated with the received request is a unique port associated with an identified data processing system.

27. The computer program product according to claim 25 , wherein the unique port comprises an ephemeral port.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2016
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: A10 NETWORKS, INC.
Reel/Frame 039968/0597 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2002
From: AIKEN, JOHN ANDREW JR.; CHRISTENSEN, ALFRED BUNDGAARD; HERR, DAVID ANTHONY; MCCLINTOCK, MARK W.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 012891/0486 →
Continuity (3)
Continuation In Part 0986296800 · May 22, 2001
Continuation In Part 0964040900 · Aug 17, 2000
Related Publication 20020124089A1 · Sep 5, 2002