Method and apparatus for incorporating state information into a URL
First Claim
1. A method of responding to a request issued from a browser, the method comprising computer-implemented steps of:
- receiving at a dispatcher a browser request that includes a URL;
the dispatcher transmitting the URL to a virtual path manager;
the virtual path manager inspecting metadata that maps URLs to cartridges associated with the URL, and determining whether a cartridge associated with the URL requires authentication;
the virtual path manager transmitting to the dispatcher data that identifies the cartridge, and indicates whether authentication is required;
if authentication is required, then the dispatcher communicates with an authentication server to determine whether the browser is authorized to access the cartridge;
if the browser is authorized to access the cartridge, then the dispatcher creates a revised request based on the browser request; and
transmitting the revised request to a particular instance of the cartridge.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention provides an effective and highly scalable mechanism for supporting multiple-request operations (including but not limited to transactions) in a stateless environment, such as the web. A server is used to coordinate the overall processing of client requests. The server performs this coordination function in such a way that: (4) state information associated with multiple-request operations is maintained by the clients making the requests; (5) the clients are unaware that they are maintaining operation-specific state information; and (6) the server itself is not required to persistently maintain the state information, thereby remaining stateless.
183 Citations
27 Claims
-
1. A method of responding to a request issued from a browser, the method comprising computer-implemented steps of:
-
receiving at a dispatcher a browser request that includes a URL;
the dispatcher transmitting the URL to a virtual path manager;
the virtual path manager inspecting metadata that maps URLs to cartridges associated with the URL, and determining whether a cartridge associated with the URL requires authentication;
the virtual path manager transmitting to the dispatcher data that identifies the cartridge, and indicates whether authentication is required;
if authentication is required, then the dispatcher communicates with an authentication server to determine whether the browser is authorized to access the cartridge;
if the browser is authorized to access the cartridge, then the dispatcher creates a revised request based on the browser request; and
transmitting the revised request to a particular instance of the cartridge. - View Dependent Claims (2, 3, 4, 5)
if the dispatcher knows of an unused instance for the cartridge, then the dispatcher transmits the revised request to the unused instance;
if the dispatcher does not know of an unused instance for the cartridge, then the dispatcher requests that a resource manager create a new cartridge instance; and
the dispatcher transmits the revised request to the new cartridge instance.
-
-
3. The method of claim 1, further comprising the steps of:
-
if the browser is not authorized to access the cartridge, then the browser is notified that access has been denied.
-
-
4. The method of claim 1, further comprising the steps of:
-
the particular instance processing the revised request; and
the particular instance transmitting to the dispatcher a response to the revised request.
-
-
5. The method of claim 1, further comprising the steps of:
-
if authentication is not required, then the dispatcher creates the revised request based on the browser request;
transmitting the revised request to the particular instance of the cartridge by;
if the dispatcher knows of an unused instance for the cartridge, then the dispatcher transmits the revised request to the unused instance;
if the dispatcher does not know of an unused instance for the cartridge, then the dispatcher requests that the resource manager create the new cartridge instance; and
the dispatcher transmits the revised request to the new cartridge instance.
-
-
6. A method of load balancing the execution of cartridge instances on a plurality of host machines, the method comprising computer-implemented steps of:
-
receiving a request that must be executed by a cartridge instance;
a resource manager determining that the cartridge instance required to handle the request can be executed on any one of the plurality of host machines;
selecting a particular host machine of the plurality of host machines to execute the cartridge instance based on a current load of the plurality of host machines, a processing capacity of the particular host machine relative to other possible host machines, and the resource manager inspecting metadata that indicates for each of the other possible host machines a maximum number of cartridge instances for each host machine, wherein the metadata also specifies a sequence for the plurality of host machines and wherein the particular host machine is at the N+1 position in the sequence and is selected in response to determining that a host machine at the Nth position is executing its maximum number of cartridge instances; and
executing the cartridge instance on the host machine at the N+1 position. - View Dependent Claims (7)
the resource manager distributing additional cartridge instances among the other possible host machines based on which host machine has a lowest ratio of actual cartridge instances to the maximum number of cartridge instances.
-
-
8. A method of processing a transaction, the method comprising computer-implemented steps of:
-
storing metadata that identifies resources that are required by a particular type of transaction and a cartridge type for performing services for the particular type of transaction;
receiving a browser request that requests the particular type of transaction;
reading the metadata to determine a particular cartridge type to perform the particular type of transaction;
a transaction manager that is associated with the cartridge instance reads the metadata to determine what resources are required to perform the particular type of transaction;
the transaction manager reading the metadata and causing the required resources to be made available for executing the particular type of transaction; and
executing the transaction using a cartridge instance of the particular cartridge type and the resources. - View Dependent Claims (9)
storing the metadata that identifies the one or more databases that are required by the particular type of transaction and that are provided by the particular cartridge type.
-
-
10. A computer-readable medium carrying one or more sequences of instructions for responding to a request issued from a browser, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
-
receiving at a dispatcher a browser request that includes a URL;
the dispatcher transmitting the URL to a virtual path manager;
the virtual path manager inspecting metadata that maps URLs to cartridges associated with the URL, and determining whether a cartridge associated with the URL requires authentication;
the virtual path manager transmitting to the dispatcher data that identifies the cartridge, and indicates whether authentication is required;
if authentication is required, then the dispatcher communicates with an authentication server to determine whether the browser is authorized to access the cartridge;
if the browser is authorized to access the cartridge, then the dispatcher creates a revised request based on the browser request; and
transmitting the revised request to a particular instance of the cartridge. - View Dependent Claims (11, 12, 13, 14)
if the dispatcher knows of an unused instance for the cartridge, then the dispatcher transmits the revised request to the unused instance;
if the dispatcher does not know of an unused instance for the cartridge, then the dispatcher requests that a resource manager create a new cartridge instance; and
the dispatcher transmits the revised request to the new cartridge instance.
-
-
12. The computer-readable medium of claim 10, further comprising instructions for the steps of:
-
if the browser is not authorized to access the cartridge, then the browser is notified that access has been denied.
-
-
13. The computer-readable medium of claim 10, further comprising instructions for the steps of:
-
the particular instance processing the revised request; and
the particular instance transmitting to the dispatcher a response to the revised request.
-
-
14. The computer-readable medium of claim 10, further comprising instructions for the steps of:
-
if authentication is not required, then the dispatcher creates the revised request based on the browser request;
transmitting the revised request to the particular instance of the cartridge by;
if the dispatcher knows of an unused instance for the cartridge, then the dispatcher transmits the revised request to the unused instance;
if the dispatcher does not know of an unused instance for the cartridge, then the dispatcher requests that the resource manager create the new cartridge instance; and
the dispatcher transmits the revised request to the new cartridge instance.
-
-
15. A computer-readable medium carrying one or more sequences of instructions for load balancing the execution of cartridge instances on a plurality of host machines, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
-
receiving a request that must be executed by a cartridge instance;
a resource manager determining that the cartridge instance required to handle the request can be executed on any one of the plurality of host machines;
selecting a particular host machine of the plurality of host machines to execute the cartridge instance based on a current load of the plurality of host machines, a processing capacity of the particular host machine relative to other possible host machines, and the resource manager inspecting metadata that indicates for each of the other possible host machines a maximum number of cartridge instances for each host machine, wherein the metadata also specifies a sequence for the plurality of host machines and wherein the particular host machine is at the N+1 position in the sequence and is selected in response to determining that a host machine at the Nth position is executing its maximum number of cartridge instances; and
executing the cartridge instance on the host machine at the N+1 position. - View Dependent Claims (16)
the resource manager distributing additional cartridge instances among the other possible host machines based on which host machine has a lowest ratio of actual cartridge instances to the maximum number of cartridge instances.
-
-
17. A computer-readable medium carrying one or more sequences of instructions for processing a transaction, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
-
storing metadata that identifies resources that are required by a particular type of transaction and a cartridge type for performing services for the particular type of transaction;
receiving a browser request that requests the particular type of transaction;
reading the metadata to determine a particular cartridge type to perform the particular type of transaction;
a transaction manager that is associated with the cartridge instance reads the metadata to determine what resources are required to perform the particular type of transaction;
the transaction manager reading the metadata and causing the required resources to be made available for executing the particular type of transaction; and
executing the transaction using a cartridge instance of the particular cartridge type and the resources. - View Dependent Claims (18)
storing the metadata that identifies the one or more databases that are required by the particular type of transaction and that are provided by the particular cartridge type.
-
-
19. An apparatus for responding to a request issued from a browser, the apparatus comprising a memory carrying one or more sequences of instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of:
-
receiving at a dispatcher a browser request that includes a URL;
the dispatcher transmitting the URL to a virtual path manager;
the virtual path manager inspecting metadata that maps URLs to cartridges associated with the URL, and determining whether a cartridge associated with the URL requires authentication;
the virtual path manager transmitting to the dispatcher data that identifies the cartridge, and indicates whether authentication is required;
if authentication is required, then the dispatcher communicates with an authentication server to determine whether the browser is authorized to access the cartridge;
if the browser is authorized to access the cartridge, then the dispatcher creates a revised request based on the browser request; and
transmitting the revised request to a particular instance of the cartridge. - View Dependent Claims (20, 21, 22, 23)
if the dispatcher knows of an unused instance for the cartridge, then the dispatcher transmits the revised request to the unused instance;
if the dispatcher does not know of an unused instance for the cartridge, then the dispatcher requests that a resource manager create a new cartridge instance; and
the dispatcher transmits the revised request to the new cartridge instance.
-
-
21. The apparatus of claim 19, wherein the memory further comprises one or more additional instructions which, when executed by the one or more processors, cause the one or more processors to perform the additional step of:
-
if the browser is not authorized to access the cartridge, then the browser is notified that access has been denied.
-
-
22. The method of claim 19, wherein the memory further comprises one or more additional instructions which, when executed by the one or more processors, cause the one or more processors to perform the additional steps of:
-
the particular instance processing the revised request; and
the particular instance transmitting to the dispatcher a response to the revised request.
-
-
23. The method of claim 19, wherein the memory further comprises one or more additional instructions which, when executed by the one or more processors, cause the one or more processors to perform the additional steps of:
-
if authentication is not required, then the dispatcher creates the revised request based on the browser request;
transmitting the revised request to the particular instance of the cartridge by;
if the dispatcher knows of an unused instance for the cartridge, then the dispatcher transmits the revised request to the unused instance;
if the dispatcher does not know of an unused instance for the cartridge, then the dispatcher requests that the resource manager create the new cartridge instance; and
the dispatcher transmits the revised request to the new cartridge instance.
-
-
24. An apparatus for load balancing the execution of cartridge instances on a plurality of host machines, the apparatus comprising a memory carrying one or more sequences of instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of:
-
receiving a request that must be executed by a cartridge instance;
a resource manager determining that the cartridge instance required to handle the request can be executed on any one of the plurality of host machines;
selecting a particular host machine of the plurality of host machines to execute the cartridge instance based on a current load of the plurality of host machines, a processing capacity of the particular host machine relative to other possible host machines, and the resource manager inspecting metadata that indicates for each of the other possible host machines a maximum number of cartridge instances for each host machine, wherein the metadata also specifies a sequence for the plurality of host machines and wherein the particular host machine is at the N+1 position in the sequence and is selected in response to determining that a host machine at the Nth position is executing its maximum number of cartridge instances; and
executing the cartridge instance on the host machine at the N+1 position. - View Dependent Claims (25)
-
-
26. An apparatus for processing a transaction, the apparatus comprising a memory carrying one or more sequences of instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of:
-
storing metadata that identifies resources that are required by a particular type of transaction and a cartridge type for performing services for the particular type of transaction;
receiving a browser request that requests the particular type of transaction;
reading the metadata to determine a particular cartridge type to perform the particular type of transaction;
a transaction manager that is associated with the cartridge instance reads the metadata to determine what resources are required to perform the particular type of transaction;
the transaction manager reading the metadata and causing the required resources to be made available for executing the particular type of transaction; and
executing the transaction using a cartridge instance of the particular cartridge type and the resources. - View Dependent Claims (27)
storing the metadata that identifies the one or more databases that are required by the particular type of transaction and that are provided by the particular cartridge type.
-
Specification