Load balancing in a multiple network environment
First Claim
1. A method of dynamically balancing a load between a plurality of gateways which provide access between a first computer network and a second computer network, the method comprising:
- receiving at a first of the plurality of gateways a communication from a source device on the first computer network, wherein the communication is to be transmitted to the second computer network;
determining through which of the plurality of gateways the communication is to be transmitted to the second computer network so as to balance the load between the plurality of gateways based upon a resource identifier associated with the source device received in the communication from the source device;
transmitting the communication to the second computer network if said determining step determines that the first gateway is to transmit the communication to the second computer network;
transmitting the communication from the first of the plurality of gateways over the first computer network to the one of the plurality of gateways which said determining step determines the communication is to be transmitted if said determining step determines that a gateway other than the first gateway is to transmit the communication to the second computer network.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods, systems and computer program products are provided which dynamically balance the load between gateways which provide access between a first computer network and a second computer network. This load balancing includes receiving at a gateway a communication to be transmitted to a second computer network from a source device on the first computer network. The gateway determines, preferably based on an address contained in the communication, through which of the gateways the communication is to be transmitted and then either transmits the communication to the second network or over the first network to the determined gateway. A redirect message may then be sent to the source device to direct subsequent messages to the proper gateway. The gateway determination may be made by dividing a resource identifier into subgroups, summing the subgroups and then dividing the sum by the number of parallel gateways. The remainder may then be used as a gateway identifier.
176 Citations
52 Claims
-
1. A method of dynamically balancing a load between a plurality of gateways which provide access between a first computer network and a second computer network, the method comprising:
-
receiving at a first of the plurality of gateways a communication from a source device on the first computer network, wherein the communication is to be transmitted to the second computer network; determining through which of the plurality of gateways the communication is to be transmitted to the second computer network so as to balance the load between the plurality of gateways based upon a resource identifier associated with the source device received in the communication from the source device; transmitting the communication to the second computer network if said determining step determines that the first gateway is to transmit the communication to the second computer network; transmitting the communication from the first of the plurality of gateways over the first computer network to the one of the plurality of gateways which said determining step determines the communication is to be transmitted if said determining step determines that a gateway other than the first gateway is to transmit the communication to the second computer network. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of dynamically balancing a load between a plurality of gateways which provide access between a first computer network and a second computer network, the method comprising:
-
receiving at a first of the plurality of gateways a communication from a source device on the first computer network, wherein the communication is to be transmitted to the second computer network; determining through which of the plurality of gateways the communication is to be transmitted to the second computer network; transmitting the communication to the second computer network if said determining step determines that the first gateway is to transmit the communication to the second computer network; and transmitting the communication over the first computer network to the one of the plurality of gateways which said determining step determines the communication is to be transmitted if said determining step determines that a gateway other than the first gateway is to transmit the communication to the second computer network; and wherein said determining step comprises the steps of; splitting a resource identifier of the communication having a plurality of bits into sub-groups of bits based upon the number gateways interconnecting the first computer network and the second computer network; summing the sub-groups of bits to provide an allocation sum; dividing the allocation sum by the number of gateways interconnecting the first computer network and the second computer network; and allocating messages to the plurality of gateways based upon the remainder of said dividing step. - View Dependent Claims (7, 8, 9, 10, 11, 12)
-
-
13. A method of allocating network resources among a plurality of gateways interconnecting a first computer network and a second computer network, the method comprising the steps of:
-
splitting a resource identifier having a plurality of bits into sub-groups of bits based upon the number gateways interconnecting the first computer network and the second computer network; summing the sub-groups of bits to provide an allocation sum; dividing the allocation sum by the number of gateways interconnecting the first computer network and the second computer network; and allocating resources to the plurality of gateways based upon the remainder of said dividing step. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A system for dynamically balancing a load between a plurality of gateways which provide access between a first computer network and a second computer network, the system comprising:
-
means for receiving at a first of the plurality of gateways a communication from a source device on the first computer network, wherein the communication is to be transmitted to the second computer network; means for determining through which of the plurality of gateways the communication is to be transmitted to the second computer network so as to balance the load between the plurality of gateways based upon a resource identifier associated with the source device received in the communication from the source device; means for transmitting the communication to the second computer network if said means for determining determines that the first gateway is to transmit the communication to the second computer network; and means for transmitting the communication from the first of the plurality of gateways over the first computer network to the one of the plurality of gateways which said means for determining determines the communication is to be transmitted if said means for determining determines that a gateway other than the first gateway is to transmit the communication to the second computer network. - View Dependent Claims (20, 21, 22, 23)
-
-
24. A system for dynamically balancing a load between a plurality of gateways which provide access between a first computer network and a second computer network, the system comprising:
-
means for receiving at a first of the plurality of gateways a communication from a source device on the first computer network, wherein the communication is to be transmitted to the second computer network; means for determining through which of the plurality of gateways the communication is to be transmitted to the second computer network; means for transmitting the communication to the second computer network if said means for determining determines that the first gateway is to transmit the communication to the second computer network; and means for transmitting the communication over the first computer network to the one of the plurality of gateways which said means for determining determines the communication is to be transmitted if said means for determining determines that a gateway other than the first gateway is to transmit the communication to the second computer network; and wherein said means for determining comprises; means for splitting a resource identifier of the communication having a plurality of bits into sub-groups of bits based upon the number gateways interconnecting the first computer network and the second computer network; means for summing the sub-groups of bits to provide an allocation sum; means for dividing the allocation sum by the number of gateways interconnecting the first computer network and the second computer network; and means for allocating messages to the plurality of gateways based upon the remainder of said means for dividing. - View Dependent Claims (25, 26, 27, 28, 29, 30)
-
-
31. A system for allocating network resources among a plurality of gateways interconnecting a first computer network and a second computer network, the system comprising:
-
means for splitting a resource identifier having a plurality of bits into sub-groups of bits based upon the number gateways interconnecting the first computer network and the second computer network; means for summing the sub-groups of bits to provide an allocation sum; means for dividing the allocation sum by the number of gateways interconnecting the first computer network and the second computer network; and means for allocating resources to the plurality of gateways based upon a remainder of said means for dividing. - View Dependent Claims (32, 33, 34, 35, 36)
-
-
37. A computer program product for dynamically balancing a load between a plurality of gateways which provide access between a first computer network and a second computer network, the computer program product comprising:
a computer-readable storage medium having computer-readable program code means embodied in said medium, said computer-readable program code means comprising; computer-readable program code means for receiving at a first of the plurality of gateways a communication from a source device on the first computer network, wherein the communication is to be transmitted to the second computer network; computer-readable program code means for determining through which of the plurality of gateways the communication is to be transmitted to the second computer network so as to balance the load between the plurality of gateways based upon a resource identifier associated with the source device received in the communication from the source device; computer-readable program code means for transmitting the communication to the second computer network if said computer-readable program code means for determining determines that the first gateway is to transmit the communication to the second computer network; and computer-readable program code means for transmitting the communication from the first of the plurality of gateways over the first computer network to the one of the plurality of gateways which said computer-readable program code means for determining determines the communication is to be transmitted. - View Dependent Claims (38, 39)
-
40. A computer program product for dynamically balancing a load between a plurality of gateways which provide access between a first computer network and a second computer network, the computer program product comprising:
a computer-readable storage medium having computer-readable program code means embodied in said medium, said computer-readable program code means comprising; computer-readable pro-gram code means for receiving at a first of the plurality of gateways a communication from a source device on the first computer network, wherein the communication is to be transmitted to the second computer network; computer-readable program code means for determining through which of the plurality of gateways the communication is to be transmitted to the second computer network; computer-readable program code means for transmitting the communication to the second computer network if said computer-readable program code means for determining determines that the first gateway is to transmit the communication to the second computer network; and computer-readable program code means for transmitting the communication over the first computer network to the one of the plurality of gateways which said computer-readable program code means for determining determines the communication is to be transmitted; and wherein said computer-readable program code means for determining comprises; computer-readable program code means for splitting a resource identifier of the communication having a plurality of bits into sub-groups of bits based upon the number gateways interconnecting the first computer network and the second computer network; computer-readable program code means for summing the sub-groups of bits to provide an allocation sum; computer-readable program code means for dividing the allocation sum by the number of gateways interconnecting the first computer network and the second computer network; and computer-readable program code means for allocating messages to the plurality of gateways based upon the remainder of said computer-readable program code means for dividing. - View Dependent Claims (41, 42, 43, 44, 45, 46)
-
47. A computer program product for allocating network resources among a plurality of gateways interconnecting a first computer network and a second computer network, the computer program product comprising:
a computer-readable storage medium having computer-readable program code means embodied in said medium, said computer-readable program code means comprising; computer-readable program code means for splitting a resource identifier having a plurality of bits into sub-groups of bits based upon the number gateways interconnecting the first computer network and the second computer network; computer-readable program code means for summing the sub-groups of bits to provide an allocation sum; computer-readable program code means for dividing the allocation sum by the number of gateways interconnecting the first computer network and the second computer network; and computer-readable program code means for allocating resources to the plurality of gateways based upon a remainder of said computer-readable program code means for dividing. - View Dependent Claims (48, 49, 50, 51, 52)
Specification