Ex Parte Desai et alDownload PDFPatent Trial and Appeal BoardMay 13, 201411180072 (P.T.A.B. May. 13, 2014) Copy Citation UNITED STATES PATENT AND TRADEMARK OFFICE 1 ___________ 2 3 BEFORE THE PATENT TRIAL AND APPEAL BOARD 4 ___________ 5 6 Ex parte ADITYA A. DESAI, BRIAN K. MARTIN, 7 JASON MCGEE, and GABRIEL G. MONTERO 8 ___________ 9 10 Appeal 2011-009372 11 Application 11/180,072 12 Technology Center 2400 13 ___________ 14 15 16 Before HUBERT C. LORIN, ANTON W. FETTING, and 17 THOMAS F. SMEGAL, Administrative Patent Judges. 18 19 FETTING, Administrative Patent Judge. 20 21 22 DECISION ON APPEAL 23 Appeal 2011-009372 Application 11/180,072 2 STATEMENT OF THE CASE1 1 1 Our decision will make reference to the Appellants’ Appeal Brief (“App. Br.,” filed November 26, 2010) and the Examiner’s Answer (“Ans.,” mailed February 18, 2011). Aditya A. Desai, Brian K. Martin, Jason McGee, and Gabriel G. 2 Montero (Appellants) seek review under 35 U.S.C. § 134 of a final rejection 3 of claims 1-17, the only claims pending in the application on appeal. We 4 have jurisdiction over the appeal pursuant to 35 U.S.C. § 6(b). 5 The Appellants invented a way of maintaining server affinity while 6 load balancing requests to a server cluster that rebalances sessions across a 7 server cluster having multiple routers without coordinating the multiple 8 routers and while accounting for configuration changes in the server cluster 9 (Specification para. [0001]). 10 An understanding of the invention can be derived from a reading of 11 exemplary claim 6, which is reproduced below [bracketed matter and some 12 paragraphing added]. 13 6. A computer implemented method comprising: 14 [1] using a filter program 15 residing in a storage connected to a server cluster, 16 intercepting a client request 17 in a session from a client computer 18 directed to a first server in the server cluster 19 by one router of a plurality of routers 20 and 21 sending a filter request to an analysis program, 22 each router in the plurality of routers distributes client 23 requests to the server cluster; 24 [2] responsive to receiving instructions from the analysis 25 program, 26 adding a cookie to the client request 27 after establishing the session, 28 Appeal 2011-009372 Application 11/180,072 3 and 1 sending the client request, 2 including the cookie, 3 to a second server 4 chosen by the analysis component 5 in order to achieve a rebalance of a workload 6 within the server cluster 7 during the session; 8 [3] wherein the cookie contains a redirect command 9 instructing the client computer 10 to send all subsequent client request in the session 11 to the second server; 12 [4] wherein the filter program continually redirects 13 each subsequent client request within the session 14 to the second server 15 until 16 the client computer receives the redirect command 17 and 18 begins to send any post command client requests in 19 the session to the second server; 20 and 21 [5] wherein the session is moved 22 from the first server 23 to the second server 24 to achieve the rebalance of the workload 25 independently of the plurality of routers. 26 The Examiner relies upon the following prior art: 27 Choquier US 5,951,694 Sep. 14, 1999 Amano US 2003/0187871 A1 Oct. 2, 2003 28 Claims 1-17 stand rejected under 35 U.S.C. § 103(a) as unpatentable 29 over Choquier and Amano. 30 Appeal 2011-009372 Application 11/180,072 4 ISSUES 1 The issues of obviousness turn primarily on whether there is a reason 2 to place Choquier’s load balancing program on all of its servers and whether 3 the claims recite session ID’s in the limitations. 4 5 FACTS PERTINENT TO THE ISSUES 6 The following enumerated Findings of Fact (FF) are believed to be 7 supported by a preponderance of the evidence. 8 Facts Related to the Prior Art 9 Choquier 10 01. Choquier is directed to large-scale computer networks for 11 providing information-related services and communications 12 services to end users. Choquier 1:15-17. 13 02. Multiple Gateway microcomputers are connected to the local 14 area network. Each Gateway microcomputer is for 15 communicating with client microcomputers of end users. The 16 Gateway microcomputers serve as intermediaries between the 17 client microcomputers and the application servers. When a user 18 initially logs onto the network, a connection is established 19 between the client microcomputer and a Gateway microcomputer, 20 and the connection is maintained throughout the logon session. 21 During the logon session, the user typically opens and closes 22 multiple services, and thus communicates with multiple 23 application servers. The Gateway microcomputer assigned to the 24 logon session maintains the various client-server message streams 25 by routing service requests (from the client microcomputer) to the 26 Appeal 2011-009372 Application 11/180,072 5 appropriate application servers, and by returning application 1 server responses to the client microcomputer. Choquier 2:26-47. 2 03. In accordance with a dynamic load balancing feature, when a 3 user sends a request to open a service, the Gateway 4 microcomputer that receives the request initially identifies the 5 application servers that are within the relevant service group. The 6 Gateway microcomputer then determines the current load of each 7 application server in the service group, and applies a load 8 balancing method to select an application server that is relatively 9 lightly loaded. The service request is then passed to the selected 10 application server for processing. Choquier 2:48-57. 11 04. The Gateway microcomputers identify the application servers 12 in the service groups and determine the loads of the application 13 servers by accessing a locally-stored service map. The service 14 map contains information about every application server of the 15 system. For example, for each application server, the service map 16 indicates the names of the server applications running on the 17 application server, the current processing load of the application 18 server, and the overall processing power (in the form of a static 19 CPU INDEX benchmark) of the application server. The service 20 map is updated on the order of every 30 seconds to reflect changes 21 in application server loads, and to reflect various changes in the 22 system configuration. Choquier 2:58 – 3:3. 23 05. Load balancing is preferably performed according to the 24 specific dynamics of the individual services. One load balancing 25 method uses the load and CPU INDEX values contained in the 26 Appeal 2011-009372 Application 11/180,072 6 service map to calculate the available CPU processing power for 1 each application server in the relevant service-group, and then 2 passes the service request to the application server having the 3 greatest available CPU processing power. Another load balancing 4 method selects application servers such that the probability of 5 selection of a given application server is proportional to that 6 application server’s available CPU processing power. Choquier 7 3:4-14. 8 06. Application servers may be dynamically allocated to services to 9 accommodate for fluctuations in usage levels of different services. 10 To allocate an application server to a particular service, the server 11 application that implements the service is dynamically loaded (i.e., 12 loaded without stopping the underlying process) on the application 13 server. Likewise, to remove an application server from a service 14 group, the relevant server applications are dynamically unloaded. 15 Allocation of application servers to service groups can be 16 performed semi-automatically by a system operator who monitors 17 service loads from a system console, or automatically using a load 18 monitoring program that compares service loads to predetermined 19 thresholds. Choquier 3:32-50. 20 07. Application servers may be dynamically allocated to services to 21 accommodate for fluctuations in usage levels of different services. 22 To allocate an application server to a particular service, the server 23 application that implements the service is dynamically loaded (i.e., 24 loaded without stopping the underlying process) on the application 25 server. Likewise, to remove an application server from a service 26 Appeal 2011-009372 Application 11/180,072 7 group, the relevant server applications are dynamically unloaded. 1 Allocation of application servers to service groups can be 2 performed semi-automatically by a system operator who monitors 3 service loads from a system console, or automatically using a load 4 monitoring program that compares service loads to predetermined 5 thresholds. Choquier 3:32-50. 6 08. FIG. 6 illustrates a preferred sequence of steps that is performed 7 whenever a Gateway receives an "open" request from a client-8 user. Gateway initially accesses the current service map to 9 determine the number of servers that are allocated to the requested 10 service. If only one server is currently assigned to the service, the 11 Gateway routes the service request to that server. Choquier 13:56-12 65. 13 09. If multiple servers are assigned to the service group, the 14 Gateway then determines whether or not the particular service 15 requires load balancing. Although load balancing is appropriate 16 for most services, certain services require that service requests be 17 handled by a particular server, and thus require the use of a 18 custom locator program to identify the correct server. Choquier 19 13:66 – 14:6. 20 10. If the requested service does not require the use of a custom 21 locator program, the Gateway reads the service map to obtain the 22 CPU LOAD and CPU INDEX values for every server within the 23 service group. The Gateway then accesses a table which specifies 24 a load balancing method to use for the service. Although the same 25 load balancing method could be used for all services, it has been 26 Appeal 2011-009372 Application 11/180,072 8 found that a more uniform load balancing result can be achieved 1 by taking into account the differing processing demands placed on 2 the servers by different service applications. The "open" request 3 is then passed to the selected server. Choquier 13:66 – 14:6. 4 11. Various alternative load balancing methods are possible, and 5 the load balancing function need not be performed by the 6 Gateways. For example, the Gateways could be programmed to 7 pass each “open” request to one of the servers within the service 8 group, and the recipient server could apply the load balancing 9 method and (if necessary) reroute the request. Choquier 16:1-8. 10 12. Prior to dynamically unloading a service DLL from a server, all 11 sessions of the service (if any) must be moved to another server 12 that is handling the same service. A “hot redirection” technique is 13 used to transfer service sessions. The hot redirection technique 14 works as follows. Initially, the Gateway that is handling the logon 15 session submits a serialization request to the server that is 16 handling the service session. The server responds to the 17 serialization request by returning an object that describes the 18 internal state of the service session. This object is in the form of a 19 byte stream which is normally meaningful only to a specific 20 service. By way of example, the object for the hot redirection of a 21 CHAT service session would normally indicate the conference 22 name, the user name, the status of the user (e.g., a spectator, 23 moderator, etc.), and the message number of the last CHAT 24 message sent to the user in the CHAT conference. While the 25 server is responding to the serialization request, the Gateway 26 Appeal 2011-009372 Application 11/180,072 9 buffers any service requests that are received from the client 1 microcomputer. The Gateway then forwards the internal state 2 information and the buffered service requests (if any) to a new 3 server (using the load balancing procedure of FIG. 6 to select a 4 new server), and the new server resumes processing of service 5 requests where the former server left off. Once all service 6 sessions have been transferred in this manner, the service DLL can 7 be dynamically unloaded. A new service DLL can then be 8 dynamically, loaded to activate a different service, or to activate 9 an updated version of the removed service. The above-described 10 hot redirection technique improves service reliability from the 11 perspective of the end user by allowing service sessions to 12 continue when corresponding servers are taken down for 13 maintenance. It is contemplated that this technique will be 14 combined with a fault detection mechanism to automatically 15 transfer service sessions to different servers when signs of 16 abnormal service behavior are present. Choquier 17:57 – 18:23. 17 13. Hot redirection enables a service session to be transferred from 18 one server to another, so that a server can be removed from a 19 service group without prematurely terminating a service session 20 Choquier 23:60-63. 21 Amano 22 14. Amano is directed to handling session information for use on a 23 Web by inheriting the session information when a browser side is 24 cooperatively directed from an original server site to another site 25 and then restored to the original site. Amano para. [0001]. 26 Appeal 2011-009372 Application 11/180,072 10 15. Amano describes a first redirect application for accepting a first 1 request for session and a second redirect application for accepting 2 a request in getting back from another site. The first redirect 3 application and the second redirect application make a redirect 4 process of returning a response to the browser side once, and 5 automatically transmitting a request to the server side again, and 6 return a response to the browser side. The browser side 7 automatically transmits a request to the real application on the 8 server side again, in accordance with a description in the response, 9 without making the user aware of it. Amano para. [0019]. 10 16. Amano describes inheriting the session information, including a 11 step of receiving an HTTP request, a step of reading the cluster 12 information to be redirected from a configuration file of an 13 operating server, a step of generating a redirect response for 14 initiating the real application employing the parameters received 15 upon the HTTP request and the cluster information, a step of 16 setting the cluster information as a cookie in the redirect 17 response, a step of transmitting the redirect response to the 18 browser side, a step of receiving a new HTTP request from the 19 browser side piloted from the other site, a step of acquiring the 20 cluster information that is set in the new HTTP request, a step of 21 generating a new redirect response employing the parameters 22 received upon the new HTTP request and the acquired cluster 23 information, and a step of transmitting the new redirect response 24 to the browser side. Amano also describes inheriting the session 25 information, including a step of checking whether or not the 26 Appeal 2011-009372 Application 11/180,072 11 cluster information is embedded in a cookie for a received HTTP 1 request, a step of setting the cluster information or the read 2 cluster information as the cookie in the redirect response, and a 3 step of transmitting the redirect response. Amano para. [0021]. 4 17. It is known to use cookies to maintain a “stick” session to a 5 server in a cluster after an initial step of selecting the server by 6 load balancing. Amano para. [0044]. 7 18. The redirect application A sets the cluster information read 8 from the configuration file as a cookie in a Set-Cookie header 9 within the header of the redirect response. Amano para. [0054]. 10 ANALYSIS 11 As to claims 1 and 12, reciting “a filter program residing in a storage 12 in each of the servers of the server cluster,” we are persuaded by the 13 Appellants’ argument that these claims require all servers in the plurality 14 (more than one) of servers to contain the filter program. Br. 8. The 15 Examiner finds that Choquier describes allowing a server other than its 16 Gateway server to apply the equivalent of the recited filter program. The 17 Examiner in particular finds 18 Choquier discloses at column 16 lines 1-8 the load 19 balancing function need not be performed by the Gateways. 20 The Gateways could be programmed to pass each request to one 21 of the servers within the service group, and the recipient server 22 could apply the load balancing method and reroute the request. 23 As such Choquier discloses that the functionality of the 24 Gateways may instead be performed by the servers. 25 Ans. 24. 26 This finding conflates capacity with motivation. Having the filter 27 program in one of the servers does not in itself suggest having that same 28 Appeal 2011-009372 Application 11/180,072 12 program in all servers. Choquier uses a map of servers for the balancing 1 program to consult. With such a map that a single server may consult, it is 2 not seen why Choquier would replicate the balancing program across all 3 servers, and Examiner has not articulated any reason for doing so. The 4 Examiner finds that there was a reason to copy Choquier’s hot redirection 5 across all servers (Ans. 5), but as Appellants contend at Brief 9, there is no 6 reason to apply a cookie with a hot redirection, as the process is transparent 7 to the client. Also, Examiner’s finding that Choquier’s hot redirection relies 8 on Choquier’s load balancing technique does not imply that the balancing 9 algorithm is replicated to each server, but only that Choquier’s load 10 balancing server is consulted. 11 As to claims 6 and 9, reciting “responsive to receiving instructions 12 from the analysis program, adding a cookie to the client request after 13 establishing the session, and sending the client request, including the cookie, 14 to a second server chosen by the analysis component in order to achieve a 15 rebalance of a workload within the server cluster during the session,” we are 16 not persuaded by the Appellants’ argument that Amano does not show 17 redirecting client requests during a session from one application server to 18 another, where the cookie is included and transmitted to the second 19 application server. Appellants contend that Amano’s redirect response 20 occurs before a session object is created, and before a session ID is set in the 21 cookie. Br. 11. Appellants further contend that Amano is 22 using the cluster address rather than the previously assigned 23 server address for a particular server, the information in the 24 cookie allows the client's requests upon returning to the server 25 cluster to continue to be handled by the originally selected 26 application server so that the session is maintained. In other 27 words, after the session is established, even when the browser 28 Appeal 2011-009372 Application 11/180,072 13 “pilots away” from the web site (“server cluster”) it is not 1 redirected to another server, rather the server affiliation 2 established in the session initialization is maintained. 3 Id. 4 5 As to the contention regarding a session object and ID set in the 6 cookie, this is not commensurate with the scope of the claim. As to the 7 contention regarding session timing, the claim provides no limitation on the 8 characteristics or definition of the recited session, and so Amano’s timing is 9 within the scope of a generic recitation of a session. 10 As to the contention regarding redirection, limitation [4] does not 11 further limit the manner of redirection. The manner of redirection is set 12 forth in limitation [3], being instructing the client computer to send all send 13 all subsequent client request in the session to the second server. This is 14 precisely what Amano does. 15 CONCLUSIONS OF LAW 16 The rejection of claims 6-11 under 35 U.S.C. § 103(a) as unpatentable 17 over Choquier and Amano is proper. 18 The rejection of claims 1-5 and 12-17 under 35 U.S.C. § 103(a) as 19 unpatentable over Choquier and Amano is improper. 20 DECISION 21 The rejection of claims 6-11 is affirmed. 22 The rejection of claims 1-5 and 12-17 is reversed. 23 24 Appeal 2011-009372 Application 11/180,072 14 No time period for taking any subsequent action in connection with 1 this appeal may be extended under 37 C.F.R. § 1.136(a). See 37 C.F.R. 2 § 1.136(a)(1)(iv) (2011). 3 4 AFFIRMED-IN-PART 5 6 Klh 7 Copy with citationCopy as parenthetical citation