US2006248386A1PendingUtilityA1

Persistent stateful component-based applications via automatic recovery

Assignee: MICROSOFT CORPPriority: Sep 4, 2001Filed: Apr 7, 2006Published: Nov 2, 2006
Est. expirySep 4, 2021(expired)· nominal 20-yr term from priority
G06F 11/1482G06F 11/1471G06F 11/1438
51
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Persistent components are provided across both process and server failures, without the application programmer needing take actions for component recoverability. Application interactions with a stateful component are transparently intercepted and stably logged to persistent storage. A “virtual” component isolates an application from component failures, permitting the mapping of a component to an arbitrary “physical” component. Component failures are detected and masked from the application. A virtual component is re-mapped to a new physical component, and the operations required to recreate a component and reinstall state up to the point of the last logged interaction is replayed from the log automatically.

Claims

exact text as granted — not AI-modified
1 . A method of providing recovery in a computer system, comprising: 
 intercepting events comprising at least one of a plurality of method calls, component activations, and component deactivations;    logging the events during execution of stateful piece-wise deterministic (PWD)-components having a component state;    detecting a failure of one of the components based on an error detected during execution; and    replaying the logged events to recover the component state.    
   
   
       2 . The method of  claim 1 , further comprising: 
 intercepting non-deterministic events;    providing a policy mechanism that, upon interception of the events, permits the logging of the intercepted events;    providing an error handler that is invoked when an error is detected, such error handler being capable of masking the error from the component.    
   
   
       3 . The method of  claim 1 , further comprising: 
 logging information about how the component is mapped to a first set of resources such that the component can be re-mapped to a different set of resources should a system failure result in a termination of the first set of resources, said re-mapping enabling scalability and load balancing.    
   
   
       4 . The method of  claim 3 , wherein the information includes a logical identifier for the component that identifies logged state information for the component.  
   
   
       5 . The method of  claim 1 , further comprising exactly-once execution comprising: 
 uniquely identifying messages at a sender;    detecting an original message and at least one duplicate message at a receiver;    eliminating the at least one duplicate message; and    providing a reply to the at least one duplicate message that is the same as a reply to the original message.    
   
   
       6 . The method of  claim 1 , further comprising: 
 notifying an error handler when the error is detected;    contacting a recovery manager to recover the component that has failed;    re-trying an interaction that failed at the time of the failure; and    returning the result of the re-tried interaction to the component.    
   
   
       7 . (canceled)  
   
   
       8 . The method of  claim 1 , further comprising: 
 retrieving information related to the failed call; and    identifying the component based on the retrieved information.    
   
   
       9 . The method of  claim 1 , further comprising: 
 updating references to the component with an interface pointer corresponding to the component; and    logging the recovery of the component.    
   
   
       10 . (canceled)  
   
   
       11 . The method of  claim 1 , further comprising intercepting the method call and response, and invoking a policy on at least one of the call and the response.  
   
   
       12 . The method of  claim 1 , wherein the computer system comprises a client and a server, and detecting the failure of the component comprises the client or server detecting the failure, and further comprising a component runtime associated with the client invoking an error handler associated with the client and providing information related to the failed call to the error handler.  
   
   
       13 . The method of  claim 12 , further comprising identifying a recovery manager responsible for the component and passing the information to the recovery manager.  
   
   
       14 . (canceled)  
   
   
       15 . A system for providing recovery in a computer system, comprising: 
 a storage device that logs events comprising at least one of a plurality of method calls, component activations, and component deactivations during execution of stateful piece-wise deterministic (PWD) components having a component state;    a component runtime that receives the events from the storage device;    a error handler that receives the events from the component runtime and identifies the component based on the events; and    a recovery manager that receives the events from the storage device and replays the events to transparently and automatically recover the component state.    
   
   
       16 . The system of  claim 15 , wherein the error handler is notified of an error and contacts the recovery manager to recover the component state.  
   
   
       17 . (canceled)  
   
   
       18 . The system of  claim 15 , wherein the component runtime intercepts the at least one method call and invokes a policy on the at least one method call.  
   
   
       19 . The system of  claim 15 , further comprising an activation hook that logs information in the storage device that is sufficient to re-create the component.  
   
   
       20 - 23 . (canceled)  
   
   
       24 . A computer readable medium having computer-executable instructions for performing the steps comprising: 
 intercepting events comprising at least one of a plurality of method calls, component activations, and component deactivations;    logging the events during execution of at least one stateful piece-wise deterministic (PWD) component having a component state in a computer system;    detecting a failure of one of the components based on an error detected during execution; and    replaying the logged events to transparently and automatically recover the component state.    
   
   
       25 . The computer readable medium of  claim 24 , having further computer-executable instructions for: 
 intercepting non-deterministic events;    providing a policy mechanism that, upon interception of the events, permits the logging of the intercepted events;    providing an error handler that is invoked when an error is detected, such error handler being capable of masking the error from the component.    
   
   
       26 . The computer readable medium of  claim 24 , having further computer-executable instructions for: 
 logging information about how the component is mapped to a first set of resources such that the component can be re-mapped to a different set of resources should a system failure result in a termination of the first set of resources, said re-mapping enabling scalability and load balancing.    
   
   
       27 . The computer readable medium of  claim 26 , wherein the information includes a logical identifier for the component that identifies logged state information for the component.  
   
   
       28 . The computer readable medium of  claim 24 , having further computer-executable instructions for providing exactly-once execution comprising: 
 uniquely identifying messages at a sender;    detecting an original message and at least one duplicate message at a receiver;    eliminating the at least one duplicate message; and    providing a reply to the at least one duplicate message that is the same as a reply to the original message.    
   
   
       29 . The computer readable medium of  claim 24 , having further computer-executable instructions for: 
 notifying an error handler when the error is detected;    contacting a recovery manager to recover the component that has failed;    re-trying an interaction that failed at the time of the failure; and    returning the result of the re-tried interaction to the component.    
   
   
       30 . (canceled)  
   
   
       31 . The computer readable medium of  claim 24 , having further computer-executable instructions for: 
 retrieving information related to the failed call; and    identifying the component based on the retrieved information.    
   
   
       32 . The computer readable medium of  claim 24 , having further computer-executable instructions for: 
 updating references to the component with an interface pointer corresponding to the component; and    logging the recovery of the component.    
   
   
       33 . (canceled)

Join the waitlist — get patent alerts

Track US2006248386A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.