P
US9092247B2ActiveUtilityPatentIndex 60

Persistent and resilient worker processes

Assignee: MICROSOFT CORPPriority: Mar 29, 2012Filed: Dec 13, 2012Granted: Jul 28, 2015
Est. expiryMar 29, 2032(~5.7 yrs left)· nominal 20-yr term from priority
Inventors:Y ARCAS BLAISE AGUERAFITOUSSI HENHEBERT JOHN DANIELLSCHLESINGER BENNYYARIV ERAN
G06F 9/485G06F 9/455G06F 9/45504G06F 9/45533G06F 9/547G06F 21/53G06F 9/542
60
PatentIndex Score
3
Cited by
20
References
20
Claims

Abstract

In the field of computing, many scenarios involve the execution of an application within a virtual environment (e.g., web applications executing within a web browser). In order to perform background processing, such applications may invoke worker processes within the virtual environment; however, this configuration couples the life cycle of worker processes to the life cycle of the application and/or virtual environment. Presented herein are techniques for executing worker processes outside of the virtual environment and independently of the life cycle of the application, such that background computation may persist after the application and/or virtual environment are terminated and even after a computing environment restart, and for notifying the application upon the worker process achieving an execution event (e.g., detecting device events even while the application is not executing). Such techniques may heighten the resiliency and persistence of worker processes and expand the capabilities of applications executing within virtual environments.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method of performing processing on behalf of applications within a virtual environment of a device having a processor, the method comprising:
 executing on the processor instructions configured to:
 upon receiving a request from an application to execute a worker process involving an execution event, initiate execution of the worker process outside of the virtual environment; 
 upon detecting termination of the application, refrain from terminating the worker process; and 
 upon the worker process achieving the execution event, notify the application of the execution event of the worker process. 
 
 
     
     
       2. The method of  claim 1 , the execution event selected from an execution event set comprising:
 a completion of a computational process; 
 a timeout; 
 a detection of user input from a user of the device; and 
 a detection of a device event of the device. 
 
     
     
       3. The method of  claim 1 , the instructions further configured to, upon terminating the virtual environment, refrain from terminating the worker process. 
     
     
       4. The method of  claim 1 , the instructions further configured to, upon detecting a reinitiation of the application after detecting the termination of the application:
 identify at least one identified worker process initiated by the application before termination; and 
 reconnect the application with the at least one identified worker process. 
 
     
     
       5. The method of  claim 1 , notifying the application comprising:
 determining whether the application has been terminated; and 
 upon determining that the application has been terminated, reinitiating the application in the virtual environment. 
 
     
     
       6. The method of  claim 1 :
 the request from the application specifying a callback; and 
 notifying the application comprising: upon the worker process achieving the execution event, invoking the callback of the application. 
 
     
     
       7. The method of  claim 1 :
 the device comprising a computing environment; and 
 terminating the application comprising: terminating the application while restarting the computing environment of the device. 
 
     
     
       8. The method of  claim 7 , the instructions further configured to, after restarting the computing environment of the device, reinitiate execution of the worker process outside of the virtual environment. 
     
     
       9. The method of  claim 1 :
 the device accessible to a remote process executing on a second device; and 
 the instructions further configured to, upon receiving a request to connect the remote process executing on the second device with the worker process, connect the remote process with the worker process. 
 
     
     
       10. A system for performing processing on behalf of applications of a device, the system comprising:
 a virtual environment within which at least one application is executing on the device; and 
 a worker host component executing on the device outside of the virtual environment and configured to:
 upon receiving a request from an application to execute a worker process involving an execution event, initiate execution of the worker process outside of the virtual environment; 
 upon detecting termination of the application, refrain from terminating the worker process; and 
 upon the worker process achieving the execution event, notify the application of the execution event of the worker process. 
 
 
     
     
       11. The system of  claim 10 :
 the virtual environment comprising a web browser; 
 the application comprising a web application; and 
 the worker process comprising a web worker executing outside of the web browser. 
 
     
     
       12. The system of  claim 11 , the worker host component configured to restrict the execution of the worker process according to a cross-domain restriction policy of the web browser. 
     
     
       13. The system of  claim 11 , the worker host component comprising a local webserver configured to execute the worker process as a local webserver process. 
     
     
       14. The system of  claim 10 :
 the worker host component comprising a background service executing within a computing environment of the device; and 
 the worker host component configured to restart automatically upon the device restarting the computing environment. 
 
     
     
       15. The system of  claim 10 , further comprising: a worker host management component configured to, upon detecting a worker host component fault of the worker host component:
 terminate the worker host component; 
 reinitiate execution of the worker host component within the computing environment of the device; and 
 reinitiate worker processes executed by the worker host component during the worker host component fault. 
 
     
     
       16. The system of  claim 10 :
 the worker process received from a service; and 
 reinitiating execution of the worker process comprising:
 after restarting the computing environment, requesting a second worker process from the service; and 
 upon receiving the second worker process from the service, initiating execution of the second worker process outside of the virtual environment. 
 
 
     
     
       17. The system of  claim 10 :
 the worker process received from a first service; and 
 executing the worker process outside of the virtual environment comprising: restricting communication between the worker process and services other than the first service. 
 
     
     
       18. A computer-readable storage medium comprising instructions that, when executed on a processor of a device comprising a virtual environment, cause the device to perform processing on behalf of applications within the virtual environment by:
 upon receiving a request from an application to execute a worker process involving an execution event, initiating execution of the worker process outside of the virtual environment; 
 upon detecting termination of the application, refraining from terminating the worker process; and 
 upon the worker process achieving the execution event, notifying the application of the execution event of the worker process. 
 
     
     
       19. The computer-readable storage medium of  claim 18 , initiating execution of the worker process outside of the virtual environment comprising:
 presenting to the user an offer to initiate execution of the worker process outside of the virtual environment; and 
 upon receiving an acceptance of the offer from the user, initiating execution of the worker process outside of the virtual environment. 
 
     
     
       20. The computer-readable storage medium of  claim 18 :
 the device comprising a computing environment; and 
 notifying the application of the execution event of the worker process comprising: bringing the virtual environment and the application to a foreground presentation within the computing environment of the device.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.