Patent ID: 8886995

Claim:
A method of configuring software in a digital computer, said method comprising a data processor of the digital computer executing computer instructions stored on a non-transitory computer readable storage medium to perform the steps of: (a) accessing opcodes in a software configuration program, each opcode enabling transition of a software configuration in the digital computer from a present state of the software configuration to another state of the software configuration having a new version of a feature, and each opcode having one or more commands; (b) executing the opcodes to add multiple features to the software configuration, and when executing each opcode, keeping a persistent record of execution of each command of said each opcode; and (c) in response to a failure of execution of a command of one of the opcodes, recovering from the failure by accessing the persistent record of execution to identify executed commands of said one of the opcodes, and by undoing changes made to the software configuration by the execution of the executed commands of said one of the opcodes; and which further includes the data processor of the digital computer executing the computer instructions stored in the non-transitory computer readable storage medium to perform the steps of: collecting and storing a persistent copy of configuration information of the digital computer existing at the start of execution of said one of the opcodes, and after undoing changes made to the software configuration by the execution of the executed commands of said one of the opcodes, comparing present configuration information of the digital computer to configuration information in the persistent copy of the configuration information of the digital computer to determine whether the present configuration information of the digital computer is the same as the configuration information in the persistent copy of the configuration information of the digital computer, and upon finding that the present configuration information of the digital computer is not the same as the configuration information in the persistent copy of the configuration information of the digital computer, restoring the digital computer to a configuration specified by the configuration information in the persistent copy of the configuration information of the digital computer.