Patent US6018805A successfully refreshed from Google Patents.
← Back to Patent Explorer
US6018805A Expired / Lapsed US ⏱️ 0.0 years remaining

Transparent recovery of distributed-objects using intelligent proxies

Assignee: APEX INVESTMENT FUND V LP
•
Filing: 1997-12-15
•
Granted: 2000-01-25
•
Expires: 2017-12-15
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A distributed-object software application is capable of recovering from a server crash. The recovery is transparent to the client objects because the client objects do not have to be re-started or re-loaded. Proxies on the client machine handle the details of communication over the network with server objects. An intelligent proxy detects a server crash when no response is received from the server object. The intelligent proxy then sends a name identifier of the server object to a locator. The locator looks up the name identifier and returns a remote reference to another running instance of the server object. If no other running instance exists, the locator loads the server object onto another server machine. The intelligent proxy uses the remote reference from the locator to establish a connection with the new server machine and a session with the new server object. The intelligent proxy stored the last state of the server object before the crash. This last state is dumped to the new server object to advance the new server object to the last state of the crashed server object. Then the new server object is used to continue processing requests from the client object. The intelligent proxy hides the server crash from the client object so that the client object does not have to be reset. Proxies for folders and component levels of a hierarchical application are used to restore a hierarchy of server objects.

Inventors

  • 👤 Henry Chi-To Ma
  • 👤 George C. Lo

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-03 23:51
CPC Classifications
H; H04; H04L; H04L67/00; H04L67/50; H04L67/56; H04L67/564; H04L67/14; H04L69/00; H04L69/40; H04L67/01; H04L67/10; H04L67/1001; H04L67/1034; H04L67/2866; H04L67/2871; H04L67/563; H04L67/59; H04L69/30; H04L69/32; H04L69/322; H04L69/329

Claims Analysis

Total Claims: 21
Claim 1
Independent Claim 298 words
A transparently-recoverable distributed-object application for hiding server failures from clients comprising: a client object running on a client machine on a network; a first server object on a first server machine on the network; wherein the client object is not reloaded or restarted when the first server object fails, the client object continuing its operation with a second server object when the first server object fails; an intelligent proxy running on the client machine, the client object communicating with the intelligent proxy when sending a request over the network to a remote object, the intelligent proxy further comprising: timeout means for determining when a request sent from the intelligent proxy to the first server object has not been responded to in a predetermined time; storage means for storing a name-identifier for the first server object; locator means, coupled to receive the name-identifier from the intelligent proxy, for generating a pointer to the second server object also being identified by the name-identifier from the intelligent proxy; and new connection means, receiving the pointer from the locator means, for establishing a new connection between the intelligent proxy and a second server and for establishing a new session with the second server object on the second server; state-sending means, coupled to the new connection means, for sending a last state of the first server object to the second server object; state means, coupled to the second server object, for advancing the second server object in state to the last state received from the state-sending means, whereby the intelligent proxy establishes the new connection to the second server when the first server object does not respond, whereby the new connection is transparent to the client object and the second server object is advanced to the last state of the first server object.
Claim 2
Dependent Claim 298 words
A transparently-recoverable distributed-object application for hiding server failures from clients comprising: a client object running on a client machine on a network; a first server object on a first server machine on the network; wherein the client object is not reloaded or restarted when the first server object fails, the client object continuing its operation with a second server object when the first server object fails; an intelligent proxy running on the client machine, the client object communicating with the intelligent proxy when sending a request over the network to a remote object, the intelligent proxy further comprising: timeout means for determining when a request sent from the intelligent proxy to the first server object has not been responded to in a predetermined time; storage means for storing a name-identifier for the first server object; locator means, coupled to receive the name-identifier from the intelligent proxy, for generating a pointer to the second server object also being identified by the name-identifier from the intelligent proxy; and new connection means, receiving the pointer from the locator means, for establishing a new connection between the intelligent proxy and a second server and for establishing a new session with the second server object on the second server; state-sending means, coupled to the new connection means, for sending a last state of the first server object to the second server object; state means, coupled to the second server object, for advancing the second server object in state to the last state received from the state-sending means, whereby the intelligent proxy establishes the new connection to the second server when the first server object does not respond, whereby the new connection is transparent to the client object and the second server object is advanced to the last state of the first server object.
Claim 3
Dependent Claim 25 words
The transparently-recoverable distributed-object application of claim 1 wherein: the storage means in the intelligent proxy also stores the last state of the first server object.
Claim 4
Dependent Claim 35 words
The transparently-recoverable distributed-object application of claim 2 wherein the storage means in the intelligent proxy further stores hierarchy information to indicate a hierarchy of objects in the distributed-object application that includes the first server object.
Claim 5
Dependent Claim 40 words
The transparently-recoverable distributed-object application of claim 3 wherein the intelligent proxy is a proxy for an object and wherein the hierarchy information stored in the intelligent proxy includes a folder proxy of a higher-level folder of objects in the hierarchy.
Claim 6
Dependent Claim 76 words
The transparently-recoverable distributed-object application of claim 4 further comprising: a folder proxy on the client machine, the folder proxy for communicating with a server folder of server objects on the first server machine; wherein the folder proxy stores a folder name, the folder name sent to the locator means which returns a folder reference to a second folder on the second server, wherein the folder proxy is a proxy for a higher-level folder of server objects.
Claim 7
Dependent Claim 75 words
The transparently-recoverable distributed-object application of claim 5 further comprising: an application-component proxy on the client machine, the application-component proxy for communicating with a server application-component on the first server machine; wherein the application-component proxy stores an application-component name, the application-component name sent to the locator means which returns an application-component reference to a second application-component on the second server; wherein the application-component proxy is a proxy for a higher-level application-component having folders of server objects.
Claim 8
Dependent Claim 51 words
The transparently-recoverable distributed-object application of claim 6 wherein: the intelligent proxy for the first server object further stores a folder-proxy reference to the folder proxy; and the folder proxy further stores a component-proxy reference to the application-component proxy, whereby a hierarchy of proxies stores hierarchy information for the first server object.
Claim 9
Dependent Claim 27 words
The transparently-recoverable distributed-object application of claim 6 wherein the application-component proxy further stores authentication information including a password for establishing a secure connection with the second server.
Claim 10
Dependent Claim 14 words
The transparently-recoverable distributed-object application of claim 6 wherein the first server machine has crashed.
Claim 11
Dependent Claim 268 words
A computer-implemented method for transparently recovering from a server crash without re-initializing a client object, the computer-implemented method comprising the steps of: generating a remote request for a server object; sending the remote request from the client object to an intelligent proxy; transmitting the remote request over a network from the intelligent proxy to the server object a first server machine; detecting that no response has been received from the first server machine; sending a name-identifier for the server object from the intelligent proxy to a locator; receiving a memory-reference from the locator, the memory-reference pointing to a second server having a second server object, the second server object and the server object both having the name-identifier; replacing connection and session information for the server object stored with the intelligent proxy with connection and session information for the second server object to set a state of the second server object to a last state of the server object; establishing a connection from the intelligent proxy to the second server; creating a session from the intelligent proxy to the second server object on the second server; re-transmitting the remote request over the network from the intelligent proxy to the second server object the second server machine; and receiving a reply to the remote request from the second server object and sending the reply from the intelligent proxy to the client object, whereby the intelligent proxy replaces the server object on the first server machine with the second server object on the second server so that the client object is not aware that the first server machine has stopped responding.
Claim 12
Dependent Claim 268 words
A computer-implemented method for transparently recovering from a server crash without re-initializing a client object, the computer-implemented method comprising the steps of: generating a remote request for a server object; sending the remote request from the client object to an intelligent proxy; transmitting the remote request over a network from the intelligent proxy to the server object a first server machine; detecting that no response has been received from the first server machine; sending a name-identifier for the server object from the intelligent proxy to a locator; receiving a memory-reference from the locator, the memory-reference pointing to a second server having a second server object, the second server object and the server object both having the name-identifier; replacing connection and session information for the server object stored with the intelligent proxy with connection and session information for the second server object to set a state of the second server object to a last state of the server object; establishing a connection from the intelligent proxy to the second server; creating a session from the intelligent proxy to the second server object on the second server; re-transmitting the remote request over the network from the intelligent proxy to the second server object the second server machine; and receiving a reply to the remote request from the second server object and sending the reply from the intelligent proxy to the client object, whereby the intelligent proxy replaces the server object on the first server machine with the second server object on the second server so that the client object is not aware that the first server machine has stopped responding.
Claim 13
Dependent Claim 51 words
The computer-implemented method of claim 10 further comprising: placing the second server object in a same state as a last state of the server object before the first server machine stopped responding, whereby the second server is in the same state before the remote request is re-transmitted from the intelligent proxy.
Claim 14
Dependent Claim 60 words
The computer-implemented method of claim 10 further comprising: storing the last state of the server object for the intelligent proxy; transmitting the last state of the server object from the intelligent proxy to the second server object, whereby the last state of the server object is stored for the intelligent proxy to advance the state of the second server object.
Claim 15
Dependent Claim 20 words
The computer-implemented method of claim 10 wherein the intelligent proxy is on a same client machine as the client object.
Claim 16
Dependent Claim 166 words
The computer-implemented method of claim 10 further comprising reading a folder-proxy reference in the intelligent proxy; using the folder-proxy reference to find a folder proxy for a remote folder; reading a component-proxy reference in the folder proxy; using the component-proxy reference to find a component proxy for a remote component; reading a component name from the component proxy; sending the component name for an application component including the server object from the component proxy to the locator; receiving a remote-component reference from the locator, the remote-component reference pointing to the second server having another instance of the application component; reading a folder name from the folder proxy; sending the folder name for a folder including the server object from the folder proxy to the locator; and receiving a remote-folder reference from the locator, the remote-folder reference pointing to the second server having another instance of the folder, whereby the folder proxy and the component proxy are used to recover levels of hierarchy above the server object.
Claim 17
Dependent Claim 25 words
The computer-implemented method of claim 14 wherein the intelligent proxy, the folder proxy, and the component proxy are all proxy objects on a client machine.
Claim 18
Dependent Claim 221 words
A computer-program product comprising: a computer-usable medium having computer-readable program code means embodied therein for transparently recovering a distributed application, the computer-readable program code means in the computer-program product comprising: network connection means for transmitting and receiving packets from clients to a server; client objects for displaying information to a user; object proxies for sending requests from the client objects to remote server objects; object-proxy storage for storing: connection and session information about a connection to a server machine; a name-identifier of a crashed server object on the server machine; a last state of the crashed server object; crash-detect means for detecting when the crashed server object is no longer responding; a re-locator, responsive to the crash-detect means and receiving the name-identifier, for generating a replacement pointer to a replacement server object belonging to a same class of objects indicated by the name-identifier of the crashed server object; new-connection means for using the replacement pointer to establish a new connection and session to the replacement server object; and state-dumping means for dumping the last state of the crashed server object to the replacement server object, whereby the object proxies re-locate from the crashed server object to the replacement server object transparently to the client objects and the replacement server object is advanced to the last state of the crashed server object.
Claim 19
Dependent Claim 221 words
A computer-program product comprising: a computer-usable medium having computer-readable program code means embodied therein for transparently recovering a distributed application, the computer-readable program code means in the computer-program product comprising: network connection means for transmitting and receiving packets from clients to a server; client objects for displaying information to a user; object proxies for sending requests from the client objects to remote server objects; object-proxy storage for storing: connection and session information about a connection to a server machine; a name-identifier of a crashed server object on the server machine; a last state of the crashed server object; crash-detect means for detecting when the crashed server object is no longer responding; a re-locator, responsive to the crash-detect means and receiving the name-identifier, for generating a replacement pointer to a replacement server object belonging to a same class of objects indicated by the name-identifier of the crashed server object; new-connection means for using the replacement pointer to establish a new connection and session to the replacement server object; and state-dumping means for dumping the last state of the crashed server object to the replacement server object, whereby the object proxies re-locate from the crashed server object to the replacement server object transparently to the client objects and the replacement server object is advanced to the last state of the crashed server object.
Claim 20
Dependent Claim 43 words
The computer-program product of claim 16 wherein the computer-readable program code means further comprises: folder proxies on the clients for representing folders of server objects, the object proxies storing references to folder proxies containing the crashed server object represented by the object proxy.
Claim 21
Dependent Claim 27 words
The computer-program product of claim 17 wherein the computer-readable program code means further comprises: component proxies on the clients for representing components of folders of server objects.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-01-24 2003-07-26 2004-01-25 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-01-24 2007-07-26 2008-01-25 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-01-24 2011-07-26 2012-01-25 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag