Patent ID: 7865872

Claim:
An apparatus for executing an application written in object-oriented code, said apparatus comprising: a processor and a storage device including a runtime that interprets producer dependency declarations in the object-oriented code for methods in the object-oriented code, said producer dependency declarations identify at run time a set of zero or more producers, wherein a producer is a runtime instantiatable construct that includes a combination of a single instance of a class and a single method which is of that class, wherein each of said producers includes only one such combination, said runtime includes, an automated producer graph generation module to receive a designation of a producer of interest, to add the producer of interest as part of a producer graph, and to automatically generate a remainder of the producer graph through linking, and instantiation as necessary, of other producers based on the producer dependency declarations of the methods of the producers already in the producer graph, a producer graph execution module to execute the producers in the producer graph in the order indicated by the producer graph, wherein execution of each producer results in the method of the producer being executed on the instance of the producer, a client code tracking module to track client code commands being executed by the runtime, a runtime tracking module to track processes performed by the runtime, including processes performed by the automated producer graph generation module and the producer graph execution module, in response to the client code commands being tracked and executed by the runtime, and a module, coupled to the client code tracking module and the runtime tracking module, to cause the runtime to reverse client code commands and consequential processes performed by the runtime to return a state of the application to a prior state, wherein the prior state of the application is a state of the application prior to the runtime's execution of one or more client code commands and one or more processes performed by the runtime in response to the one or more client code commands.