Storing and resuming application runtime state

US9600323B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9600323-B2
Application numberUS-201514972806-A
CountryUS
Kind codeB2
Filing dateDec 17, 2015
Priority dateDec 28, 2010
Publication dateMar 21, 2017
Grant dateMar 21, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Execution of an application is suspended and the runtime state of the application is collected and persisted. Maintenance operations may then be performed on the computer that the application was executing upon. The runtime state might also be moved to another computer. In order to resume execution of the application, the runtime state of the application is restored. Once the runtime state of the application has been restored, execution of the application may be restarted from the point at which execution was suspended. A proxy layer might also be utilized to translate requests received from the application for resources that are modified after the runtime state of the application is persisted.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method comprising performing computer-implemented operations for: receiving a request to store a runtime state of an application executing on a computer; collecting the runtime state of the application independently of a state of an operating system and persisting the runtime state, wherein the runtime state comprises a user interface state of user interface resources when the runtime state is collected, the user interface state including a first handle identifying a first user interface resource at a time the application is suspended; receiving a request to restore the runtime state of the application; in response to receiving the request to restore the runtime state of the application, restoring the runtime state of the application and executing the restored application; and utilizing the runtime state to translate requests from the restored application for resources so that the requests from the restored application are compatible with the resources following the runtime state of the restored application being resumed, wherein translating the requests from the restored application for the resources comprises translating a request from the restored application for the first handle identifying the first user interface resource at the time the application was suspended, to a second handle identifying a second user interface resource at a time the application is restored and executed. 2. The computer-implemented method of claim 1 , further comprising moving the runtime state of the application from the computer to a second computer after persisting the runtime state and prior to restoring the runtime state. 3. The computer-implemented method of claim 2 , wherein the runtime state is moved from the computer to the second computer to load balance a processing load of the computer. 4. The computer-implemented method of claim 1 , further comprising performing a maintenance operation on the computer after persisting the runtime state and prior to restoring the runtime state. 5. The computer-implemented method of claim 1 , wherein the application comprises a virtualized application. 6. The computer-implemented method of claim 5 , wherein the runtime state further comprises one or more of memory contents, register context, or instruction pointers. 7. The computer-implemented method of claim 6 , wherein the runtime state further comprises one of a system resource state, or a network connection state. 8. The computer-implemented method of claim 7 , wherein the runtime state further comprises one or more file resources in use by the application when the runtime state is collected. 9. A computer-readable storage medium having computer-executable instructions stored thereupon which, when executed by a computer, cause the computer to: receive a request to store a runtime state of an application executing on a computer; in response to receiving the request, collect the runtime state of the application independently of the state of an operating system and to persist the runtime state, the runtime state of the application comprising a user interface state of user interface resources when the runtime state is collected, the user interface state including a first handle identifying a first user interface resource at a time the application is suspended; receive a request to restore the runtime state of the application; restore the runtime state of the application and to execute the restored application; and utilize the runtime state to translate requests for resources from the executing restored application so that the requests for resources are compatible with the resources that changed after persisting the runtime state of the application, wherein translating the requests for resources comprises translating a request from the executing restored application for the first handle identifying the first user interface resource at the time the application was suspended, to a second handle identifying a second user interface resource at a time the application is restored and executed. 10. The computer-readable storage medium of claim 9 , having further computer-executable instructions stored thereupon which, when executed by the computer, cause the computer to provide a proxy layer for translating requests from the application for one or more resources that changed after the runtime state of the application was persisted. 11. The computer-readable storage medium of claim 10 , having further computer-executable instructions stored thereupon which, when executed by the computer, cause the computer to move the runtime state from the computer to a second computer. 12. The computer-readable storage medium of claim 11 , wherein the runtime state is moved from the computer to the second computer to load balance a processing load of the computer. 13. The computer-readable storage medium of claim 11 , wherein the runtime state is moved from the computer to the second computer to perform a maintenance operation on the computer. 14. The computer-readable storage medium of claim 13 , wherein the application comprises a virtualized application. 15. The computer-readable storage medium of claim 14 , wherein the runtime state further comprises one of memory contents, register context, or instruction pointers when the runtime state is collected. 16. The computer-readable storage medium of claim 15 , wherein the runtime state further comprises one of a system resource state, or a network connection state when the runtime state is collected. 17. The computer-readable storage medium of claim 16 , wherein the runtime state further comprises one or more file resources in use by the application when the runtime state is collected. 18. A system comprising: a first computer having one or more first processors in communication with first memory that executes first programmable code on the one or more first processors to enable receiving a request at the first computer to store a runtime state of an application executing on the first computer, and collecting the runtime state of the application independently of a state of an operating system and persisting the runtime state of the application, wherein the runtime state comprises a user interface state of user interface resources when the runtime state is collected, the user interface state including a first handle identifying a first user interface resource at a time the application is suspended; and a second computer having one or more second processors in communication with second memory that executes second programmable code on the one or more second processors to enable receiving a request at the second computer to restore, at the second computer, the runtime state of the application, in response to receiving the request to restore the runtime state of the application, restoring the runtime state of the application on the second computer and executing the restored application thereon, and utilizing the runtime state to translate a request from the executing restored application for the first handle identifying the first user interface resource at the time the application was suspended, to a second handle identifying a second user interface resource at a time the application is restored and executed. 19. The system of claim 18 , wherein the runtime state of the application is moved from the first computer to the second computer after persisting the runtime state and prior to restoring the runtime state on the second computer. 20. The system of claim 19 ,

Assignees

Inventors

Classifications

  • G06F9/485Primary

    Task life-cycle, e.g. stopping, restarting, resuming execution (G06F9/4881 takes precedence) · CPC title

  • Allocation of resources, e.g. of the central processing unit [CPU] · CPC title

  • involving task migration · CPC title

  • resumption being on a different machine, e.g. task migration, virtual machine migration (G06F9/5088 takes precedence) · CPC title

  • Program initiating; Program switching, e.g. by interrupt · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9600323B2 cover?
Execution of an application is suspended and the runtime state of the application is collected and persisted. Maintenance operations may then be performed on the computer that the application was executing upon. The runtime state might also be moved to another computer. In order to resume execution of the application, the runtime state of the application is restored. Once the runtime state of t…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F9/485. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 21 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).