Patent ID: 7735090

Claim:
A computer-implemented method for managing a set of operational states associated with a plurality of software components executed on one or more processors, comprising: identifying the software components included in a running assembly, wherein the assembly specifies connections among the software components, wherein each component includes a set of management commands used to modify an operational state of a respective component within the assembly, and wherein a first component further includes a reaction rule associated with a first management command that specifies an additional action to be performed when the first management command is invoked for the first component; determining a goal state for the assembly, wherein the goal state specifies a desired operational state for the components included in the assembly, and wherein the goal state modifies a current operational state of one or more of the components in the assembly, replaces one or more components in the assembly, adds or removes at least one component from the assembly, or combinations thereof; and determining, by operation of the one or more computer processors, an allowable sequence of management commands needed to transition the operational state of each component to the desired operational state, wherein determining an allowable sequence of management commands comprises, determining two or more allowable sequences and selecting one of the allowable sequences based an a cost determined for each of the two or more allowable sequences.