Load balancing of servers
Claim Score by NHIP
Abstract
A server load balancing method is provided for making the load of each server uniform. The server load balancing method is arranged to include a server pool definition unit of storing the information on plural servers as a server pool, a processing status storing unit of storing a processing status of each server, and a request distributing unit of breaking a series of requests received from the client and sending each request to the server with the least load on the request-receiving time.

Term
Term ended
Projected expiry passed 4 September 2022, 4.1 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
7 claims: 2 independent, 5 dependent
- 1Broadest claimClaim Score 74, broad(NHIP)A server load balancing system including a plurality of servers and one or more clients, comprising:a server pool defining unit of storing information about said servers as a server pool;a processing status storing unit of storing a processing status of each of said servers;and a request distributing unit of selecting a server to which said request is to be sent by referring to said processing status storing unit when each request is received from said client and of sending said request to said selected server.
- 7A server load balancing device used in an information processing system composed of a plurality of servers and clients, comprising:a server pool defining unit of storing information about said plural servers as a server pool;a processing status storing unit of storing the processing status of said each server;and a request distributing unit of selecting said server to which said request is to be sent by referring to said processing status storing unit when each request is received from said client and then sending said request to said selected server.
Independent claims2
80 paragraphs in 4 sections, as filed
BACKGROUND OF THE INVENTION
[0001] The present invention relates to a load balancing device that is served to distribute a request from a client to any one of the servers related thereto.
[0002] In order to realize smooth communications of an intranet and an extranet, an electronic mail system has been more and more common which system is arranged to transfer a document created by an information processing apparatus such as a PC (Personal Computer) through a network like a LAN (Local Area Network). As the so-called address book function, that is, a function of searching a mail address of a recipient, the directory service such as the CCITT recommendation X.500 (SO9594) is started to be in use.
[0003] The IETF (Internet Engineering Task Force), which is a standardization engine of the internet, includes the LDAP (Lightweight Directory Access Protocol) (RFC2251) standardized as a protocol between the directory client and the server on the TCI/IP. A user may make access to the directory server such as the X.500 from the directory client through the LDAP, for searching target information like his or her mail address. Further, the LDAP includes the specified directory update system operations such as add, delete and modify of an entry and modify of an entry name.
[0004] The directory service may correspond with a distribution system architecture and thus replicate the information managed by each directory server to another server. Hence, if one server is failed, another server is enabled to continue the service. Moreover, the load of access may be distributed into plural servers.
[0005] In preparation for a server's failure, the conventional directory client has selected any one of the servers through the use of a specific algorithm such as the round robin and then has sent the LDAP request. However, the method of switching the server by the client needs to set a list of target servers to each client and thus needs an intricate maintenance accompanied with promotion in adding a new server, for example. In order to overcome this shortcoming, as disclosed in JP-A-2001-229070, a new method has been proposed which is arranged to find a server to be accessed among a plurality of directory servers and to send the request to the server.
[0006] On the other hand, if the conventional server switching method by the client is applied to load balancing, as a shortcoming, each client determines a server to be accessed by itself, so that load of each server is not constantly balanced.
[0007] As a technology of overcoming this shortcoming, there may be referred a load balancing device (referred to as a switch) described in pages 28 to 39 of IEEE INTERNET COMPUTING, MAY and JUNE 1999. The switch is located between the client and the server, undertakes all the requests from the clients, and sends a series of requests to the most suitable server.
[0008] The aforementioned conventional switch brings about the following shortcomings.
[0009] The conventional switch has as a processing target the HTTP (Hyper Text Transfer Protocol) in which each request is independent so that the requests may be distributed each by each. As to the other application protocol rather than that, load balancing is carried out at the layer four level, that is, the TCP connection unit.
[0010]FIG. 4 shows an example of a communication sequence of load balancing through the use of the conventional switch. For a quite short time, each of the three clients <b>2</b><i>a</i>, <b>2</b><i>b </i>and <b>2</b><i>c </i>sends two search requests in one LDAP connection on each individual timing. The switch <b>17</b> operates to distribute each request to two servers <b>1</b><i>a </i>and <b>1</b><i>b</i>. The LDAP is a protocol that is arranged to transfer a series of requests and responses on the set-up connection. When the LDAP connection is set up, the TCP connection is set up.
[0011] As mentioned earlier, the conventional switch <b>17</b> realizes load balancing at each TCP connection unit, so that all requests on the same LDAP connection may be sent to the same server. That is, the request-distributing target is determined when the LDAP connection is set up. It is not changed until the LDAP connection is disconnected. For example, the requests <b>18</b> and <b>21</b> the client <b>2</b><i>a </i>has sent are included in one LDAP connection. Hence, these requests are sent as requests <b>24</b> and <b>27</b> to the same server la. Likewise, the requests <b>19</b> and <b>22</b> the client <b>2</b><i>b </i>has sent are sent to the server <b>1</b><i>b</i>. The requests <b>20</b> and <b>23</b> the client <b>2</b><i>c </i>has sent are sent to the server <b>1</b><i>a</i>. At a time, four requests are distributed to the server <b>1</b><i>a</i>, while only two requests are distributed to the server <b>1</b><i>b. </i>
[0012] As noted above, the conventional load balancing method through the use of the switch brings about a load shift of each server, is degraded in local response performance, and thus impairs the user's convenience. In order to meet the performance request of the system, it is necessary to add the redundant server, which leads to increasing the cost of introducing the information processing apparatus in proportional to a system scale.
SUMMARY OF THE INVENTION
[0013] The present invention provides a server load balancing technology which makes load of each server more uniform.
[0014] According to the invention, in the information processing system composed of the servers and the clients, the server load balancing method is arranged to send each request received from the client to the server with the least load on the request-receiving time independently of the connection established with the client.
[0015] In more particular, according to the server load balancing method of the invention, the information processing system composed of the servers and the clients, in one aspect, includes a server pool defining unit of storing information about plural servers as a server pool, a processing status storing unit of storing a processing status of each server, and a request distributing unit of sending each request received in the connection established with the client to the server with the least load on the receipt time.
BRIEF DESCRIPTION OF THE DRAWINGS
[0016]FIG. 1 is a block diagram showing a system according to an embodiment of the invention;
[0017]FIG. 2 is a view showing an information composition of a processing status storing unit <b>6</b> included in the first embodiment;
[0018]FIG. 3 is a view showing an information composition of a server pool definition file <b>9</b> included in the first embodiment;
[0019]FIG. 4 is an explanatory view showing a communication sequence in the conventional load balancing system;
[0020]FIG. 5 is an explanatory view showing a communication sequence in the load balancing system according to this embodiment;
[0021]FIG. 6 is a flowchart showing an operation of a connection managing unit <b>8</b> according to the present invention;
[0022]FIG. 7 is a flowchart showing an operation of a request distributing unit <b>5</b> according to the present invention;
[0023]FIG. 8 is a view showing an information composition included in the processing status storing unit <b>6</b> according to the second embodiment; and
[0024]FIG. 9 is a view showing an information composition of a server pool definition file <b>9</b> according to the second embodiment.
DESCRIPTION OF THE EMBODIMENTS
[0025] Hereafter, one embodiment of the embodiment will be described with reference to the appended drawings. The same components have the same reference numbers throughout the drawings.
[0026]FIG. 1 is a block diagram showing a directory system to which the present invention applies. A switch <b>3</b>, two directory servers <b>1</b><i>a </i>and <b>1</b><i>b</i>, and three directory clients <b>2</b><i>a</i>, <b>2</b><i>b </i>and <b>2</b><i>c </i>are connected through a network <b>10</b> like a LAN.
[0027] The switch <b>3</b> includes a client communication control unit <b>4</b> of executing a communication with a client, a server communication control unit <b>7</b> of executing a communication with a server, a server pool definition file <b>9</b> of defining a group of servers to which load is to be distributed (referred to as a server pool), a connection managing unit <b>8</b> of managing a connection with the server, a processing status storing unit <b>6</b> of storing a processing status of each server, and a request distributing unit <b>5</b> of distributing a request received from the client to the most suitable server at the time.
[0028] The switch <b>3</b> is composed of a CPU, a memory, internal communication wires like buses, a secondary storage unit like a harddisk, and a communication interface. The communication interface is connected with the network, through which interface the switch <b>3</b> is communicated with the client and the server. The memory stores a program of realizing the following processes through the use of the CPU and the necessary data. The program and the data may be prestored, introduces from another server through the network or another storage medium or introduces from the secondary storage unit.
[0029]FIG. 3 illustrates an example of a server pool definition file <b>9</b>. An administrator of the system describes the names <b>16</b> of plural servers to which load is to be distributed in a server pool definition file <b>9</b>. The name <b>16</b> includes a DNS name (or IP address) of the server and a port number, both of which are delimited by “:”. The port number may be omitted. If omitted, the standard port number “389” may be used therefor.
[0030]FIG. 2 shows information components stored in the processing status storage unit <b>6</b>, which is composed of a connection table <b>11</b> of storing information about a connection established with the server. The connection table <b>11</b> is composed of an array structure that corresponds to the number of connections established with the server.
[0031] Each connection table <b>11</b> includes an area <b>12</b> of storing handle information for uniquely identifying a connection with the server, an area <b>13</b> of storing a message ID (that is called a last message ID) of the request lastly sent to the server, an area <b>14</b> of storing the number of requests being processed by the server, and an area <b>15</b> of storing a client message ID contained in the request received from the client. The client message ID <b>15</b> of each connection table <b>11</b> is composed of an array structure that corresponds to the number of requests being processed by the server.
[0032] In turn, the description will be oriented to the operation of the switch of this embodiment.
[0033] First, the method of establishing the connection with the server will be described with reference to FIG. 6. When the switch is started, the connection managing unit <b>8</b> establishes the LDAP connection with each server belonging to the server pool. The connection managing unit <b>8</b> reads the server name <b>16</b> described at the head of the server pool definition file <b>9</b>, builds up a Bind request of establishing the LDAP connection with the server, and requests the server communication control unit <b>7</b> to send the server (S<b>601</b>).
[0034] After connected with the server, the connection managing unit <b>8</b> operates to generate a new connection table <b>11</b> inside the processing status storing unit <b>6</b>, register the handle information for identifying the LDAP connection established with the server in the area <b>12</b>, and initialize the last message ID <b>13</b> as “1” and the number of requests <b>14</b> as “0” (S602).
[0035] The connection managing unit <b>8</b> repeats the processes of S<b>601</b> and S<b>602</b> as to all the servers described in the server pool definition file <b>9</b> for establishing the LDAP connection between the switch and the server (S<b>603</b>).
[0036] Then, the switch <b>3</b> terminates the start process, from which the service may be started.
[0037] The method of distributing the request will be described with reference to FIG. 7.
[0038] The client communication control unit <b>4</b> receives the Bind request of establishing the LDAP connection from the client, when the control unit <b>4</b> returns a response of indicating a success of establishing the connection to the client without sending the request to any one of the servers. This makes it possible to establish the LDAP connection between the client and the switch.
[0039] When the client communication control unit <b>4</b> receives a request except for a Bind an Unbind from the client, the request distributing unit <b>5</b> operates to select the most suitable server to the processing from the server pool and then send the request to the selected server.
[0040] When the client communication control unit <b>4</b> receives the request from the client, the request distributing unit <b>5</b> selects the most suitable server to the process of the request by searching the connection table <b>11</b> with the least numeric value registered in the number of requests <b>14</b> from the processing status storing unit <b>6</b> (S<b>701</b>).
[0041] Then, the operation is executed to refer to the connection table <b>11</b> of the selected most suitable server and then add “1” to the request number <b>14</b> and the last message ID <b>13</b> (S<b>702</b>, S<b>703</b>).
[0042] In succession, the request distributing unit <b>5</b> operates to generate a new client message ID area <b>15</b> inside the connection table <b>11</b> and temporarily save a message ID contained in the received request (S<b>704</b>).
[0043] Then, the message ID of the request received from the client is replaced with the ID indicated by the last message ID <b>13</b> (S<b>705</b>).
[0044] Next, the handle information registered in the server connection handle <b>12</b> is notified to the server communication control unit <b>7</b> for requesting to send the request to the selected server (S<b>706</b>). Then, the request distributing control unit <b>5</b> waits for a response from the server (S<b>707</b>).
[0045] When the server communication control unit <b>7</b> receives a response from the server, the request distributing unit <b>5</b> replaces the message ID of the received response with the client message ID <b>15</b> saved in the step S<b>704</b> (S<b>708</b>) and then requests the client communication control unit <b>4</b> to send the response (S<b>709</b>).
[0046] Lastly, the request distributing unit <b>5</b> subtracts “1” from the request number <b>14</b> (S<b>710</b>) and deletes the client message ID area <b>15</b> generated in the step S<b>704</b> (S<b>711</b>). Then, the distributing process of the request is completed.
[0047] As mentioned above, according to this embodiment, each one of plural requests included in the LDAP connection established with one client is allowed to be sent to the server with the smallest load when the request is received. This allows the load to be distributed more effectively.
[0048]FIG. 5 shows an example of a communication sequence of load balancing to which the switch <b>3</b> of this embodiment is applied.
[0049] The requests <b>18</b> and <b>21</b> sent by the client <b>2</b><i>a </i>are distributed as the requests <b>24</b> and <b>30</b> to the servers <b>1</b><i>a </i>and <b>1</b><i>b</i>, respectively, though they are sent with the same LDAP connection. Likewise, the requests <b>19</b> and <b>22</b> sent by the client <b>2</b><i>b </i>and the requests <b>20</b> and <b>23</b> sent by the client <b>2</b><i>c </i>are distributed to the servers <b>1</b><i>a </i>and <b>1</b><i>b</i>, respectively. That is, a group of three requests are distributed to the server <b>1</b><i>a </i>and <b>1</b><i>b</i>, respectively.
[0050] As mentioned above, the switch <b>3</b> of this embodiment is arranged to send a series of requests (for example, the requests <b>24</b> and <b>30</b>) received through one client connection through a different connection established with the server or send the requests (for example, the requests <b>24</b>, <b>26</b>, <b>31</b>) received through a different connection established with the client through the same server connection.
[0051] The foregoing description has concerned with one embodiment to which the server load balancing method of this invention is applied. According to this embodiment, each of one or more requests received from the client in one client connection is sent to the most suitable server at each request-receiving time through the connection to the server. In comparison with the conventional switch that is arranged to determine the request-distributing target on each connection unit, irrespective of the client connection, the requests may be distributed to the most suitable server on the receiving time. This allows a load shift of each server to be lessened more.
[0052] The foregoing system may be arranged to establish plural connections with one of the server. This arrangement makes it possible to execute the servers process in another database system with no LDAP feature of sending a plurality of requests on one connection in a multiplexing manner.
[0053] In turn, the description will be oriented to the second embodiment of the invention, in which the same process as that of the first embodiment is not described herein.
[0054] The foregoing first embodiment has concerned with the load distributing method through the use of a single server pool. This embodiment may request load balancing through the use of plural server pools according to some ways of use.
[0055]FIG. 9 shows an example of a server pool definition file <b>9</b> included in a switch arranged to correspond with plural server pools. A reference number <b>38</b> denotes a pool identifier for uniquely identifying each server pool. The administrator of the system enables to define a group of servers to which load is to be distributed in each pool. According to this embodiment, a parameter of the Bind request regulated in RFC2251, “name”, is specified as a pool identifier. The parameter “name” is a title of an identify that uses the directory server, which corresponds to the user name or the user ID in another information processing system.
[0056]FIG. 8 shows the information components of the processing status storing unit <b>6</b> according to this embodiment. The information components are composed of a server table <b>33</b> of storing the status of each server and a connection table <b>11</b>. The server table <b>33</b> composes an array structure that corresponds to each server of all the server pools.
[0057] Each server table <b>33</b> is composed of an area <b>36</b> of storing information for uniquely identifying a server, such as a server name, an area <b>14</b> of storing a request number being processed by the server, and an area <b>37</b> of storing an identifier of a server pool to which the server belongs. The pool identifier <b>37</b> of each server table <b>33</b> composes an array structure that corresponds to the number of all pools to which the server belongs.
[0058] Each connection table <b>11</b> is composed of a server connection handle area <b>12</b>, an area <b>34</b> of storing an identifier of a server pool to which the connection belongs, an area <b>35</b> of storing the information for uniquely identifying the server, a last message ID area <b>13</b>, and a client message ID area <b>15</b>.
[0059] In turn, the description will be oriented to the operation of the switch <b>3</b> according to this embodiment.
[0060] When the switch <b>3</b> is started, the connection managing unit <b>8</b> is connected with the server described in the server pool definition file <b>9</b> (S<b>601</b>) and then generates a new connection table <b>11</b> inside the processing status storing unit <b>6</b>. Next, the connection managing unit <b>8</b> registers the handle information for identifying a connection established with the server and the pool identifier and the server identifier described in the server pool definition file <b>9</b> in the areas <b>12</b>, <b>34</b> and <b>35</b>, respectively. Further, the connection managing unit initializes the value of the last message ID <b>13</b> into “I”. If there exists no server table <b>33</b> with the server identifier registered therein, the connection managing unit <b>8</b> generates a new server table <b>33</b>, registers the pool identifier and the server identifier in the areas <b>37</b> and <b>36</b>, respectively and initializes the request number <b>14</b> into “0”. On the other hand, if there exists any server table <b>33</b> with the server identifier registered therein, the pool identifier <b>37</b> is additionally registered thereto (S<b>602</b>).
[0061] The connection managing unit <b>8</b> repeats the processes of S<b>601</b> and S<b>602</b> about all servers of all pools described in the server pool definition file <b>9</b> (S<b>603</b>). Then, the switch terminates the starting process and starts the service.
[0062] When the client communication control unit <b>4</b> receives a request from the client, the request distributing unit <b>5</b> operates to select the most suitable server to processing the request by searching the server table <b>33</b> in which the equal identifier to the “name” parameter contained in the previous Bind request is registered in the area <b>37</b> and the numeric value registered in the request number <b>14</b> is the smallest from the processing status storing unit <b>6</b> (S<b>701</b>).
[0063] Then, the request distributing unit <b>5</b> operates to add “1” to the request number 14 of the selected server table <b>33</b> (S<b>702</b>). Then, the request distributing unit <b>5</b> further searches the connection table <b>11</b> in which the equal identifier to the server identifier <b>36</b> is registered in the area <b>35</b> and adds “1” to the value of the last message ID <b>13</b> (S<b>703</b>).
[0064] In succession, the request distributing unit <b>5</b> executes the same message sending process to that of the first embodiment and returns a response from the server to the client (S<b>704</b> to S<b>709</b>). Then, the unit <b>5</b> subtracts “1” from the request number <b>14</b> (S<b>710</b>).
[0065] Next, the unit <b>5</b> deletes the client message ID area <b>15</b> of the connection table <b>11</b> generated in the step S<b>704</b> (S<b>711</b>) and then completes the distributing process of the request.
[0066] The foregoing description has concerned with the second embodiment of the invention. The second embodiment makes it possible to balance the load through the server pool. For example, if plural server pools are defined as shown in FIG. 9, for balancing the load, three servers are allocated for an access from the client with its identify “cn=search, o=abc.com” and two servers are allocated for an access from the client with its identify “cn=update, o=abc.com”. The switch of this embodiment grasps the sum of the requests being processed, distributed from each pool, as a load of the server and selects the most suitable server based on the sum. As shown in the example of FIG. 9, hence, two servers may be used by different pools for balancing the load.
[0067] In the foregoing second embodiment, as means of selecting a server pool by a client, the parameter “name” of the Bind request is used. In place, however, the other existing standard parameter rather than the “name” may be used as a pool identifier. Or, the pool identifier may be specified by using the “Control” and the “Extendedrequest” defined in RFC2251. Further, the pool identifier 38 of FIG. 9 may be specified as “search” and “update”. If the request received from the client is a search request such as “search” and “compare”, the request is distributed into any server belonging to the “search” pool, while if the request received is an update request such as “Add”, “Delete”, “Modify”, and “Modify DN”, the request is distributed into any server belonging to the “update” pool.
[0068] In each of the foregoing embodiments, if the switch needs authentication for establishing a connection with each server, the authentication information such as a user ID and a password may be added to the server name of the server pool definition file <b>9</b>. In the step S<b>601</b>, the switch may be connected with the server through the use of the authentication information.
[0069] In each of the foregoing embodiments, all servers to which the load is to be distributed are connected with the switch when it is started. However, not when the switch is started but when the Bind request from the client is received, the server may be connected with all servers.
[0070] In a case that authentication is needed for connecting the switch with the server, the connection with the server may be established by using the authentication information included in the Bind request from the client without adding the authentication information such as the user ID and the password to the server name <b>16</b> of the server pool definition file <b>9</b>.
[0071] The LDAP may issue a new request on the single connection without waiting for the response to the priory request. Hence, if the same Bind request from another client is received, without having to establish a new connection with the server, the existing connection may be used for later request distribution.
[0072] In each of the foregoing embodiments, in receipt of the Bind request for establishing the LDAP connection from the client, without having to send the request to any one of the servers, the response of indicating that the connection is successfully established is returned to the client. However, if it is necessary to authenticate the client, the received Bind request may be sent to any one of the servers and the response from the server is returned to the client. In this case, if the redundant LDAP connection is established between the servers by the Bind request, immediately after connected, the connection may be disconnected by the Unbind request, for inhibiting the wasteful consumption of an memory area.
[0073] Further, the authentication information such as a user ID and a password included in the Bind request sent to the server may be temporarily stored in the storage area. Or, the authentication information may be added to the server name <b>16</b> of the server pool definition file <b>9</b>. Later, if the Bind request is received, the authentication information included in the Bind request may be checked with the stored authentication information without sending the request to any one of the servers and then the response of indicating whether the connection is successful or not may be returned to the client. This operation allows the load processing of the server to be reduced more.
[0074] In each of the foregoing embodiments, it is described that the switch is operated in another information processing apparatus rather than the server and the client connected with the network. However, the switch may be arranged to be operated in the same information processing apparatus in which the server or the client is operated. This arrangement may offer the same effect.
[0075] In each of the foregoing embodiments, it is described that the switch selects the most suitable server based on the number of outstanding requests of each server. However, the switch may be arranged to select the most suitable server not by the number of outstanding requests but by the proper technique to measuring the load of the server such as CPU load. Moreover, the most suitable server may be selected by the technique such as a round robbin to be more easily implemented.
[0076] The foregoing embodiments have concerned with the application of the present invention to the directory system. In place, the present invention may be effectively applied to any kind of information processing system that may send plural requests on a single connection, such as a relational database management system or an object oriented database management system.
[0077] In each of the foregoing embodiments, the switch is arranged to distribute each of a series of requests on the same connection, received from the client, to the most suitable server on the receipt time. However, some processes such as the transaction processing request a series of requests to be sent to the same server. In correspondence with this operation, for example, in the foregoing second embodiment, the rule which indicates whether decomposition of a series of requests is permissible or not may be added to each server pool definition information in the server pool definition file <b>9</b>. When a series of requests is received to the server pool where decomposition is allowed, the switch distributes each request to the optimum server (each may be a different server), like the second embodiment. On the other hand, when a series of requests is received to the server pool where decomposition is not allowed, the switch sends each request to a single server.
[0078] The foregoing embodiments are not concerned with the response to the request. In actual, the corresponding response is returned from the destination server to which the request is sent. Hence, the load is balanced on a unit of an operation consisting of the request and the response.
[0079] According to the invention, the load of each server is made more uniform and the stable response performance may be achieved in the overall system. This allows the cost to be reduced as keeping the convenience of the user.
[0080] It should be further understood by those skilled in the art that although the foregoing description has been made on embodiments of the invention, the invention is not limited thereto and various changes and modifications may be made without departing from the spirit of the invention and the scope of the appended claims.
Contents4
8 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2005138626A1 | Cited by | United States of America | Pre-grant |
| US9219751B1 | Cited by | United States of America | Applicant |
| US9154584B1 | Cited by | United States of America | Applicant |
| US10484465B2 | Cited by | United States of America | Applicant |
| US7809536B1 | Cited by | United States of America | Search report |
| US10305904B2 | Cited by | United States of America | Applicant |
| US2004139150A1 | Cited by | United States of America | Pre-grant |
| US11895138B1 | Cited by | United States of America | Applicant |
| US10812266B1 | Cited by | United States of America | Applicant |
| US8897154B2 | Cited by | United States of America | Applicant |
| US10230770B2 | Cited by | United States of America | Applicant |
| US8103617B2 | Cited by | United States of America | Search report |
| US9378503B2 | Cited by | United States of America | Search report |
| US2008071811A1 | Cited by | United States of America | Pre-grant |
| US10735267B2 | Cited by | United States of America | Applicant |
| US7263555B2 | Cited by | United States of America | Search report |
| US9992107B2 | Cited by | United States of America | Applicant |
| US9979801B2 | Cited by | United States of America | Applicant |
| US10243791B2 | Cited by | United States of America | Applicant |
| US9961135B2 | Cited by | United States of America | Applicant |
| US9906422B2 | Cited by | United States of America | Applicant |
| US2010146516A1 | Cited by | United States of America | Pre-grant |
| US10021174B2 | Cited by | United States of America | Applicant |
| US10516577B2 | Cited by | United States of America | Applicant |
| US10581976B2 | Cited by | United States of America | Applicant |
| US9749404B2 | Cited by | United States of America | Search report |
| US7721295B2 | Cited by | United States of America | Search report |
| US9942152B2 | Cited by | United States of America | Applicant |
| US11757946B1 | Cited by | United States of America | Applicant |
| US10097616B2 | Cited by | United States of America | Applicant |
| US8533729B2 | Cited by | United States of America | Applicant |
| EP2789147A1 | Cited by | European Patent Office (EPO) | Search report |
| US2019075186A1 | Cited by | United States of America | Search report |
| WO2012050747A2 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US9154404B2 | Cited by | United States of America | Search report |
| US2018205605A1 | Cited by | United States of America | Search report |
| US10404698B1 | Cited by | United States of America | Applicant |
| US8886826B2 | Cited by | United States of America | Search report |
| US8713186B2 | Cited by | United States of America | Search report |
| US10027761B2 | Cited by | United States of America | Applicant |
| WO2010148833A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| USRE48725E | Cited by | United States of America | Applicant |
| US2008137638A1 | Cited by | United States of America | Pre-grant |
| US10659354B2 | Cited by | United States of America | Applicant |
| EP2789147A4 | Cited by | European Patent Office (EPO) | Search report |
| US9106561B2 | Cited by | United States of America | Applicant |
| US10721269B1 | Cited by | United States of America | Applicant |
| US2012005370A1 | Cited by | United States of America | Pre-grant |
| US9961136B2 | Cited by | United States of America | Applicant |
| US11005762B2 | Cited by | United States of America | Applicant |
| US11223689B1 | Cited by | United States of America | Applicant |
| US9609052B2 | Cited by | United States of America | Applicant |
| US10447775B2 | Cited by | United States of America | Applicant |
| US10673938B2 | Cited by | United States of America | Search report |
| US10880400B2 | Cited by | United States of America | Applicant |
| US10044582B2 | Cited by | United States of America | Applicant |
| US2009144743A1 | Cited by | United States of America | Pre-grant |
| US9705800B2 | Cited by | United States of America | Applicant |
| WO2012050747A3 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US11838851B1 | Cited by | United States of America | Applicant |
| US9094364B2 | Cited by | United States of America | Applicant |
| US11108815B1 | Cited by | United States of America | Applicant |
| US9992229B2 | Cited by | United States of America | Applicant |
| US9215275B2 | Cited by | United States of America | Applicant |
| US9960967B2 | Cited by | United States of America | Applicant |
| USRE47296E | Cited by | United States of America | Applicant |
| CN105592126A | Cited by | China | Search report |
| US10129122B2 | Cited by | United States of America | Applicant |
| US10749904B2 | Cited by | United States of America | Applicant |
| US11178150B1 | Cited by | United States of America | Applicant |
| US10505818B1 | Cited by | United States of America | Applicant |
| US8321585B2 | Cited by | United States of America | Search report |
| US10257101B2 | Cited by | United States of America | Applicant |
| US2009204571A1 | Cited by | United States of America | Pre-grant |
| US10917496B2 | Cited by | United States of America | Search report |
| US2008228923A1 | Cited by | United States of America | Pre-grant |
| US11019104B2 | Cited by | United States of America | Applicant |
| US12003422B1 | Cited by | United States of America | Applicant |
| US10834065B1 | Cited by | United States of America | Applicant |
| US9843484B2 | Cited by | United States of America | Applicant |
| US2011093522A1 | Cited by | United States of America | Pre-grant |
| US10862955B2 | Cited by | United States of America | Applicant |
| WO2020147330A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US9942162B2 | Cited by | United States of America | Applicant |
| US11343237B1 | Cited by | United States of America | Applicant |
| US2007094235A1 | Cited by | United States of America | Pre-grant |
| US10178165B2 | Cited by | United States of America | Applicant |
| US10505792B1 | Cited by | United States of America | Applicant |
| US8595791B1 | Cited by | United States of America | Applicant |
| US10491449B2 | Cited by | United States of America | Search report |
| US7340250B2 | Cited by | United States of America | Search report |
| US11350254B1 | Cited by | United States of America | Applicant |
| US9986061B2 | Cited by | United States of America | Applicant |
| US2013201990A1 | Cited by | United States of America | Pre-grant |
| US2004221065A1 | Cited by | United States of America | Pre-grant |
| US11122042B1 | Cited by | United States of America | Applicant |
| US2004235473A1 | Cited by | United States of America | Pre-grant |
| US2008059499A1 | Cited by | United States of America | Pre-grant |
| US11063758B1 | Cited by | United States of America | Applicant |
| US9930107B2 | Cited by | United States of America | Applicant |
2 members in 2 offices
Priority claims4
| Document | Office | Kind | Date |
|---|---|---|---|
| 2002107282 | Japan | A | |
| 2002107282 | Japan | A | |
| 2002107282 | – | – | – |
| JP20020107282 | – | – | – |
Members2
| Document | Office | Kind | |
|---|---|---|---|
| US2003195962A1 | United States of America | A1 | |
| JP2004005360A | Japan | A |
28 transactions on the USPTO file
Abandoned after 1 non-final rejection and 1 final rejection.
- Non-final rejections
- 1
- Final rejections
- 1
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | |
|---|---|
| Correspondence Address Change | |
| Correspondence Address Change | |
| Mail Abandonment for Failure to Respond to Office ActionAbandoned | |
| Aband. for Failure to Respond to O. A. | |
| Mail Final Rejection (PTOL - 326)Final rejection | |
| Final RejectionFinal rejection | |
| Date Forwarded to Examiner | |
| Response after Non-Final Action | |
| Correspondence Address Change | |
| Change in Power of Attorney (May Include Associate POA) | |
| Mail Non-Final RejectionNon-final rejection | |
| Non-Final RejectionNon-final rejection | |
| Case Docketed to Examiner in GAU | |
| IFW TSS Processing by Tech Center Complete | |
| Case Docketed to Examiner in GAU | |
| Case Docketed to Examiner in GAU | |
| Case Docketed to Examiner in GAU | |
| Application Dispatched from OIPE | |
| Application Is Now Complete | |
| Request for Foreign Priority (Priority Papers May Be Included) | |
| Additional Application Filing Fees | |
| A statement by one or more inventors satisfying the requirement under 35 USC 115, Oath of the Applic | |
| Notice Mailed--Application Incomplete--Filing Date Assigned | |
| IFW Scan & PACR Auto Security Review | |
| Information Disclosure Statement considered | |
| Information Disclosure Statement (IDS) Filed | |
| Information Disclosure Statement (IDS) Filed | |
| Initial Exam Team nn |
3 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Information on status: application discontinuationABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTIONSTCB | STCB | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication, DOCDB
- 2003195962
- Publication, EPODOC
- US2003195962
- Application
- 10233572
- Application, DOCDB
- 23357202
- Application, EPODOC
- US20020233572
Titles
- English
- Load balancing of servers
Classification
- CPC, 7
- H04L67/10
- H04L67/1008
- H04L69/329
- H04L67/10015
- H04L67/1001
- H04L67/63
- H04L9/40
- IPC, 2
- H04L29 06
- H04L29 08
- USPC, 3
- 709226000
- 709228000
- 709241000