Efficient migration of client-side web state

US9292367B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9292367-B2
Application numberUS-201414247395-A
CountryUS
Kind codeB2
Filing dateApr 8, 2014
Priority dateApr 8, 2014
Publication dateMar 22, 2016
Grant dateMar 22, 2016

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.

A state migration module (SMM) is described herein which seamlessly, efficiently, and correctly transfers application state between user computing devices, or between different interactions with the application on the same device that occur at different respective times. The SMM operates by capturing the current state of an application relative to the operation of a high-level execution platform (such as a browser) on which the application runs, rather than capturing the overall low-level state of the computing that runs the application. The SMM can include additional provisions designed to improve the efficiency of state migration, such as asynchronous migration, incremental delta-based migration, etc.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer readable storage medium for storing computer readable instructions, the computer readable instructions, when executed by one or more processing devices, perform a method for capturing a state of an application using a state capture module, the method comprising: identifying a current state of an application that runs in an execution environment on a computing device; expressing the current state as a current state image; and storing the current state image in at least one destination data store, the current state being assessed relative to operation of the execution environment, which corresponds to a higher level of abstraction compared to hardware or an operating system interface provided by the computing device; and restoring a previous state based on a corresponding previous state image, wherein the state capture module includes monitoring functionality for monitoring creation and removal of timers and event handlers, to enable capture of state information regarding the timers and event handlers. 2. The computer readable storage medium of claim 1 , wherein the execution environment is provided by a browser module. 3. The computer readable storage medium of claim 1 , wherein the SMM is implemented as a library module which is received from a remote entity. 4. The computer readable storage medium of claim 1 , wherein the at least one destination data store corresponds to a local data store provided by the computing device. 5. The computer readable storage medium of claim 1 , wherein the at least one destination data store corresponds to a remote data store, with respect to the computing device. 6. The computer readable storage medium of claim 1 , wherein the state capture module is configured to discover application-defined objects using an introspective or reflective capability of a language that is used to express the application. 7. The computer readable storage medium of claim 1 , wherein the current state also describes environment-defined objects and environment-defined functions, as present in the memory of the computing device, corresponding to features defined by the execution environment. 8. The computer readable storage medium of claim 1 , wherein the application includes at least one nested function that is nested in at least one outer function, to produce a closure, and wherein the state capture module is further configured to statically rewrite the closure to make any closure variables, associated with the nested function, explicit. 9. The computer readable storage medium of claim 1 , wherein the current state also describes features associated with a document object model (DOM) tree, produced by the application. 10. The computer readable storage medium of claim 9 , wherein the current state also describes any application-defined properties associated with nodes of the DOM tree. 11. The computer readable storage medium of claim 1 , wherein the current state also describes features associated with one or more timers registered by the application. 12. The computer readable storage medium of claim 11 , wherein the current state, for an interval-based timer, is described by: an interval after which the interval-based timer will first fire, following restoration of the application; and an interval period at which the interval-based timer will repeatedly fire, following the first fire. 13. The computer readable storage medium of claim 1 , wherein the current state also represents features associated with one or more in-progress network connections. 14. The computer readable storage medium of claim 1 , wherein the current state also represents features associated with information stored in a local data store of the computing device. 15. The computer readable storage medium of claim 1 , wherein the state capture module is configured to capture the state of the application in a manner that depends on tags associated with features of the application, and wherein the state restoration module is configured to restore the application in a manner that depends on the tags associated with the features, as conveyed by the previous state image. 16. The computer readable storage medium of claim 1 , wherein the state restoration module is configured to restore at least one feature in an asynchronous manner based on an instruction in the previous state image to treat said at least one feature in an asynchronous manner. 17. The SMM of claim 1 , wherein the state capture module is configured to: create one or more current hashes of information, as the information exists at a current time; compare said one or more current hashes with previous hashes, the previous hashes representing hashes of the information as the information existed at a previous time, to identify a set of current hashes which differ from the previous hashes; and selectively update the current state image with respect to features associated with the set of current hashes. 18. A method, implemented by a computing device, for capturing a state of an application, comprising: identifying a current state of the application that runs in an execution environment on the computing device; expressing the current state as a current state image; and storing the current state image in least one destination data store, the current state being assessed relative to operation of the execution environment, corresponding to a higher level of abstraction compared to hardware or an operating system interface provided by the computing device, and the application including at least one nested function that establishes a closure, and the current state correctly representing the nested function, wherein the closure is statically rewritten to make any closure variables, associated with the nested function, explicit. 19. A computer readable storage medium for storing computer readable instructions, the computer readable instructions performing a method, when executed by one or more processing devices, the method comprising: accessing a previous state image associated with a previous state of an application, in response to a request to invoke the application, and a determination that the previous state image exists; and restoring the application based on the previous state image, said restoring comprising restoring at least one feature of the application in an asynchronous manner based on an instruction in the previous state image to treat said at least one feature in an asynchronous manner. 20. The computer readable storage medium of claim 19 , wherein restoring the application based on the previous state image comprises receiving an application stub to instantiate a state restoration module to retrieve the previous state image.

Assignees

Inventors

Classifications

  • G06F9/4856Primary

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

  • G06F9/544Primary

    Buffers; Shared memory; Pipes · 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 US9292367B2 cover?
A state migration module (SMM) is described herein which seamlessly, efficiently, and correctly transfers application state between user computing devices, or between different interactions with the application on the same device that occur at different respective times. The SMM operates by capturing the current state of an application relative to the operation of a high-level execution platfor…
Who is the assignee on this patent?
Microsoft Corp
What technology area does this patent fall under?
Primary CPC classification G06F9/4856. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 22 2016 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).