Stateless distributed computer architecture with server-oriented state-caching objects maintained on network or client
First Claim
1. A method comprising:
- calling a remote object that resides on a server using an object-oriented network protocol;
receiving a reply from the server, the reply containing server state information; and
caching the server state information for use in subsequent communication with the server.
2 Assignments
0 Petitions
Accused Products
Abstract
A stateless distributed computer architecture allows state-caching objects, which hold server state information, to be maintained on a client or network rather than on a server. In one implementation, the computer architecture implements object-oriented program modules according to a distributed component object model (DCOM). Using an object-oriented network protocol (e.g., remote procedure call), a client-side application calls through an application program interface (API) to a program object residing at a server computer. The program object, responsive to the call, creates a state caching object that contains state information pertaining to the client connection. The server inserts the state-caching object into a local thread context and processes the request to generate a reply. The server subsequently attaches the state-caching object to the reply and returns them both to the client. The client stores the state-caching object for later communication with the server. When the client subsequently calls the program object at the server, the client submits the state-caching object along with the request packet. The server uses the state information in the state-caching object to quickly restore state for the client reconnection. In this manner, the server can offload its state information to other computing devices in the distributed architecture, thereby improving scalability. In another implementation, the network itself caches the server-oriented state-caching object.
-
Citations
47 Claims
-
1. A method comprising:
-
calling a remote object that resides on a server using an object-oriented network protocol;
receiving a reply from the server, the reply containing server state information; and
caching the server state information for use in subsequent communication with the server. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method comprising:
-
receiving a request for a local program object from a remote application program interface on a requesting computer;
creating a state-caching object that contains state information pertaining to the request;
processing the request to generate a reply; and
returning the reply together with the state-caching object to the requesting computer. - View Dependent Claims (7, 8, 9)
-
-
10. A method comprising:
-
submitting a request to a server using a non-HTTP protocol over a network;
receiving a reply from the server, the reply containing a state-caching object with session state information; and
storing the state-caching object for use in subsequent communication with the server. - View Dependent Claims (11, 12, 13, 14, 16, 17, 18, 19)
-
-
15. A method comprising:
-
routing a request from a first computer to a second computer via a network;
routing a reply from the second computer back to the first computer via the network, the reply carrying state information of the second computer that pertains to the request; and
maintaining the state information within the network.
-
-
20. A method comprising:
-
performing request/reply exchanges among multiple computers organized in a computer cluster;
generating state-caching objects that contain state information of corresponding computers as part of the request/reply exchanges;
storing the state-caching objects on one or more different computers within the computer cluster to maintain the state information remotely from the corresponding computers from which the state-caching objects originated and preserve the state information in an event that one of the corresponding computers fails. - View Dependent Claims (21, 22, 23, 25, 26, 27, 29, 30)
-
-
24. A stateless distributed computer architecture, comprising:
-
a program object resident at a first computing device;
an application program interface (API) resident at a second computing device to facilitate calls to the program object at the first computing device using an object-oriented network protocol;
the program object, responsive to a call, returning a reply with a state-caching object that contains state information pertaining to the first computing device; and
wherein the state-caching object is stored on the second computing device for later communication with the first computing device.
-
-
28. A stateless distributed computer system, comprising:
-
a network having one or more network components to route requests from a first endpoint device to a second endpoint device and to route replies from the second endpoint device back to the first endpoint device, wherein at least one reply contains state information pertaining to the second endpoint device; and
the network being configured to maintain the state information and to reassociate the state information with a subsequent request from the first endpoint device to the second endpoint device.
-
-
31. A computer-readable medium comprising computer-executable instructions that, when executed on one or more processors, direct a computing device to:
-
call a remote object that resides on a remote computer using an object-oriented network protocol;
receive a reply from the remote computer, the reply containing state information of the remote computer; and
cache the state information for use in subsequent communication with the remote computer. - View Dependent Claims (32, 33, 34, 35, 37, 38, 39)
-
-
36. A computer-readable medium comprising computer-executable instructions that, when executed on one or more processors, direct a computing device to:
-
create a state-caching object that contains state information pertaining to a request for a local program object received from a remote application program interface;
generate a reply; and
return the reply together with the state-caching object to the client.
-
-
40. A computer-readable medium comprising computer-executable instructions that, when executed on one or more processors, direct a computing device to:
-
submit a request to a remote computer using a non-HTTP protocol over a network;
receive a reply from the remote computer, the reply containing session state information; and
cache the session state information for use in subsequent communication with the remote computer. - View Dependent Claims (41, 42, 43, 44)
-
-
45. A computing device comprising:
-
means for calling a remote object that resides on a remote computer using an object-oriented network protocol;
means for receiving a reply from the remote computer, the reply containing state information pertaining to the remote computer; and
means for caching the state information for use in subsequent communication with the remote computer.
-
-
46. A computing device comprising:
-
means for receiving a request for a local program object from a remote application program interface;
means for creating a state-caching object that contains state information pertaining to the request;
means for generating a reply; and
means for returning the reply together with the state-caching object to the client.
-
-
47. A network comprising:
-
means for routing a request from a first computer to a second computer;
means for routing a reply from the second computer back to the first computer, the reply carrying state information of the second computer that pertains to the request; and
means for maintaining the state information on behalf of the first and second computers.
-
Specification