Model-based system and method for undoing actions in an application

US11210180B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11210180-B2
Application numberUS-201816156703-A
CountryUS
Kind codeB2
Filing dateOct 10, 2018
Priority dateOct 16, 2015
Publication dateDec 28, 2021
Grant dateDec 28, 2021

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.

An improved model-based approach for undoing actions in an application that was not previously configured with an undo feature is disclosed. Object models are constructed for each object invoked by the application. Snapshots of the object model are captured after every action to preserve the object model state at different points in time. The object model includes an object tree data structure having multiple nodes comprising data and metadata for the object. The object model is frozen and editing of the object is only permitted via an undo management engine. In response to edits from the application, the undo management engine responds by unfreezing the path of object nodes from leaf node to root node in the object tree data structure. Edits are applied to the object model at the leaf node. The object model can then be re-frozen to maintain the state of the object after each action.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for undoing actions in an application comprising: launching an undo management process configured to operate with the application; building an object model for objects invoked by the application, wherein the object model comprises an object tree data structure having nodes containing metadata of an object; taking a first snapshot of the object tree data structure; freezing the object tree data structure; receiving a first action from the application comprising an edit to be applied to the object at a leaf node of the object tree data structure; unfreezing a first portion of the object tree data structure along a path of object nodes from the leaf node being modified by the edit up to its root node without unfreezing other portions of the object tree data structure not along the path; applying the edit to the object at the leaf node of the object tree data structure; and re-freezing the first portion of the object tree data structure to obtain a re-frozen object model. 2. The method of claim 1 further comprising leaving untouched object nodes in the object tree data structure that are not in the path from the leaf node to the root node. 3. The method of claim 1 wherein the undo management process is invoked at the time when the application is first loaded to manage access to application objects. 4. The method of claim 1 wherein access for editing can only be made through the undo management process. 5. The method of claim 1 further comprising taking snapshots of the object model after each action of the application to preserve the state of the object model at different points in time. 6. The method of claim 1 further comprising: taking a second snapshot of the re-frozen object model; determining a difference between the first snapshot and the second snapshot by comparing only nodes in the object tree data structure along the path from the leaf node to the root node; and storing the difference between the first snapshot and the second snapshot into a first memory buffer as difference data representing the first action. 7. The method of claim 6 further comprising: receiving a second action from the application comprising an undo command configured to undo the first action comprising the edit to the object; retrieving the difference data representing the first action from the first memory buffer; storing the difference data into a second memory buffer; and undoing the first action comprising the edit to the object by restoring the object model back to its state when the first snapshot was taken. 8. The method of claim 6 further comprising: receiving a third action from the application comprising a redo command configured to redo the first action comprising the edit to the object; retrieving the difference data representing the first action from the second memory buffer; storing the difference data representing the first action back into the first memory buffer; and redoing the first action comprising the edit to the object by restoring the object model back to its state when the second snapshot was taken. 9. The method of claim 7 wherein the first memory buffer is an undo stack buffer and the second memory buffer is a redo stack buffer. 10. The method of claim 1 wherein undo and redo operations are performed without requiring implementation of a converse action for every action received from the application. 11. A system for undoing actions in an application comprising: a processor; a system memory in communication with the processor via a communication link, the system memory configured to store computer code, which when executed by the processor, causes the processor to perform operations comprising: launching an undo management process configured to operate with the application; building an object model for objects invoked by the application, wherein the object model comprises an object tree data structure having nodes containing metadata of an object; taking a first snapshot of the object tree data structure; freezing the object tree data structure; receiving a first action from the application comprising an edit to be applied to the object at a leaf node of the object tree data structure; unfreezing a first portion of the object tree data structure along a path of object nodes from the leaf node being modified by the edit up to its root node without unfreezing other portions of the object tree data structure not along the path; applying the edit to the object at the leaf node of the object tree data structure; and re-freezing the first portion of the object tree data structure to obtain a re-frozen object model. 12. The system of claim 11 wherein the operations further comprise leaving untouched object nodes in the object tree data structure that are not in the path from the leaf node to the root node. 13. The system of claim 11 wherein access for editing can only be made through the undo management process. 14. The system of claim 11 wherein the operations further comprise: taking a second snapshot of the re-frozen object model; determining a difference between the first snapshot and the second snapshot by comparing only nodes in the object tree data structure along the path from the leaf node to the root node; and storing the difference between the first snapshot and the second snapshot into a first memory buffer as difference data representing the first action. 15. The system of claim 14 wherein the operations further comprise: receiving a second action from the application comprising an undo command configured to undo the first action comprising the edit to the object; retrieving the difference data representing the first action from the first memory buffer; storing the difference data into a second memory buffer; and undoing the first action comprising the edit to the object by restoring the object model back to its state when the first snapshot was taken. 16. The system of claim 14 wherein the operations further comprise: receiving a third action from the application comprising a redo command configured to redo the first action comprising the edit to the object; retrieving the difference data representing the first action from the second memory buffer; storing the difference data representing the first action back into the first memory buffer; and redoing the first action comprising the edit to the object by restoring the object model back to its state when the second snapshot was taken. 17. A non-transitory computer readable storage medium tangibly embodying computer code, which when executed by a computer system, causes the computer system to perform operations for undoing actions in an application, the operations comprising: building an object model for objects invoked by the application, wherein the object model comprises an object tree data structure having nodes containing metadata of an object; taking a first snapshot of the object tree data structure; freezing the object tree data structure; receiving a first action from the application comprising an edit to be applied to the object at a leaf node of the object tree data structure; unfreezing a first portion of the object tree data structure along a path of object nodes from the leaf node being modified by the edit up to its root node without unfreezing other portions of the object tree data structure not along the path; applying the edit to the object at the leaf node of the object tree data structure; and re-freezing the first portion of the object tree data structure to obtain a re-frozen objec

Assignees

Inventors

Classifications

  • Embedded in an application, e.g. JavaScript in a Web browser · CPC title

  • involving logging of persistent data for recovery · CPC title

  • Error detection or correction of the data by redundancy in operations (error detection or correction of the data by redundancy in hardware G06F11/16) · CPC title

  • Using snapshots, i.e. a logical point-in-time copy of the data · CPC title

  • Round-trip engineering · 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 US11210180B2 cover?
An improved model-based approach for undoing actions in an application that was not previously configured with an undo feature is disclosed. Object models are constructed for each object invoked by the application. Snapshots of the object model are captured after every action to preserve the object model state at different points in time. The object model includes an object tree data structure …
Who is the assignee on this patent?
Business Objects Software Ltd, Sap Se
What technology area does this patent fall under?
Primary CPC classification G06F9/45529. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 28 2021 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).