Web request broker controlling multiple processes
First Claim
1. A method for responding to a request issued to a server from a client over a network system, the method comprising the steps of:
- said server obtaining the request over a network;
said server identifying, from a plurality of program types available to said server, a program type that corresponds to the request, wherein each program type of said plurality of program types implements different functionality than the other program types of said plurality of program types;
determining whether an instance of said program type currently exists that is not currently processing a previously received request;
if no currently executing instance of said program type exists that is not currently processing a previously received request, then said server selectively initiating an instance of the program type based on a comparison between how many instances of said program type are currently executing and a prescribed number of instances of said program type;
said server dispatching the request to said instance of said program type;
executing said instance to cause said instance to process said request; and
responding to the request based on execution of said instance.
2 Assignments
0 Petitions
Accused Products
Abstract
A web server configured to respond to client requests over a network such as the World Wide Web includes a web listener having a Hypertext Transfer Protocol (HTTP) daemon, a plurality of extension programs configured to perform respective operations, and a web request broker configured to identify one of the programs for responding to a client request, and determine the availability of an instance of the identified program. The web request broker maintains control of multiple instances of each server extension program to provide enhanced server operation without overwhelming server resources. The web request broker maintains a minimum number of instances of the identified program in memory, each executed in its own address space. The web request broker determines whether an available instance of the identified program is available from an existing number of instances, and selectively initiates a new instance of the program if no other instance is available. If no instance is available and the existing number of instances exceeds the maximum prescribed number, then the web request broker returns the reply to the web listener to send a reply over the network that the request was not processed.
120 Citations
35 Claims
-
1. A method for responding to a request issued to a server from a client over a network system, the method comprising the steps of:
-
said server obtaining the request over a network;
said server identifying, from a plurality of program types available to said server, a program type that corresponds to the request, wherein each program type of said plurality of program types implements different functionality than the other program types of said plurality of program types;
determining whether an instance of said program type currently exists that is not currently processing a previously received request;
if no currently executing instance of said program type exists that is not currently processing a previously received request, then said server selectively initiating an instance of the program type based on a comparison between how many instances of said program type are currently executing and a prescribed number of instances of said program type;
said server dispatching the request to said instance of said program type;
executing said instance to cause said instance to process said request; and
responding to the request based on execution of said instance. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method, for execution by a server, for responding to a request for performance of an operation, the method comprising:
-
obtaining the request over a network;
forwarding the request to a dispatcher executed by the server; and
processing the request by causing the dispatcher to perform the steps of;
A) determining whether an available instance exists of a program type configured to handle the request, wherein the available instance is among an existing number of instances of the program type and is not currently processing a previously received request, B) if an available instance is available, then dispatching the request for execution by the available instance, C) if no instance is available, then initiating a new instance of the program type for execution of the request if the existing number of instances does not exceed a maximum prescribed number, D) if no instance is available and the existing number of instances exceeds the maximum prescribed number, then sending said reply over the network indicating the request was not processed, and E) registering with the dispatcher a plurality of program types configured to handle respective types of requests, the step of registering with the dispatcher a plurality of said program types including the step of storing in the dispatcher for each of said program types a maximum number of instances and a virtual path specifying an address location associated with the corresponding program type. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A method, for execution by a server, for responding to a request for performance of an operation, the method comprising:
-
obtaining the request over a network;
forwarding the request to a dispatcher executed by the server; and
processing the request by causing the dispatcher to perform the steps of;
A) determining whether an available instance of a program type configured to handle the request is available among an existing number of instances of the program type, wherein the available instance is not currently processing a previously received request, B) if an available instance is available, then dispatching the request for execution by the available instance, C) if no instance is available, then initiating a new instance of the program type for execution of the request if the existing number of instances does not exceed a maximum prescribed number, D) if no instance is available and the existing number of instances exceeds the maximum prescribed number, then sending said reply over the network indicating the request was not processed, and E) delaying deallocation of said new instance at least a predetermined time interval after processing the request for processing a subsequent request, and automatically deallocating said new instance if no subsequent request has arrived after said predetermined time interval.
-
-
20. A method, for execution by a server, for responding to a request for performance of an operation by a particular program type, the method comprising:
-
obtaining the request over a network;
forwarding the request to a dispatcher executed by the server; and
processing the request by causing the dispatcher to perform the steps of;
A) determining whether an available instance exists of a program type configured to handle the request, wherein the available instance is among an existing number of instances of the program type and is not currently processing a previously received request, B) if an available instance is available, then dispatching the request for execution by the available instance, C) if no instance is available, then initiating a new instance of the program type for execution of the request if the existing number of instances does not exceed a maximum prescribed number, D) if no instance is available and the existing number of instances exceeds the maximum prescribed number, then sending said reply over the network indicating the request was not processed, wherein the step of obtaining the request over the network comprises receiving the request from a transport protocol process operating according to a first protocol, said first protocol being one of a plurality of protocols; and
the method further comprises the step of converting the request to a second protocol independent from the first protocol by a transport adapter configured to convert to said second protocol requests received according to any of said first plurality of protocols. - View Dependent Claims (21, 22, 23)
-
-
24. A computer readable medium having stored thereon sequences of instructions for responding to a request for performance of an operation received by a server, the sequences of instructions including instructions for performing the steps of:
-
obtaining the request over a network;
identifying a program type, from a plurality of program types, a program type that corresponds to the request, wherein each program type of said plurality of program types implements different functionality than the other program types of said plurality of program types;
determining whether an instance of said program type currently exists that is not currently processing a previously received request;
if no currently executing instance of said program type exists that is not currently processing a previously received request, then selectively initiating an instance of the program type based on a comparison between how many instances of said program type are currently executing and a prescribed number of instances of said program type;
dispatching the request to said instance of said program type;
executing said instance to cause said instance to process said request; and
responding to the request based on execution of said instance. - View Dependent Claims (25, 26)
-
-
27. A computer server configured to respond to a request for performance of an operation, comprising:
-
a network listener configured to receive the request over a network and send a response to the request over the network, the request having a prescribed object type specifying an operation to be performed;
a plurality of program types, each program type configured to perform an operation that generates an output in response to receiving a request having a corresponding object type specifying the operation performed by the program type, each program type having a prescribed number of instances executing at respective address spaces; and
a dispatcher plug-in configured to identify one of the program types for responding to the request based on the prescribed object type, the dispatcher plug-in selectively dispatching the request to an available instance of the identified program type based upon the corresponding prescribed number of instances, wherein the available instance of the identified program type is selected to receive said request based on a set of factors that includes that said available instance is not currently processing a previously received request, the dispatcher plug-in sending said response to the network listener based on execution of the request by the available instance. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34, 35)
-
Specification