1. A method for associating a state with a distributed system and transitioning component states with recovery ability to reverse transitioning attempts, the method comprising: defining a global state representing an overall provisioning state of a plurality of components involved in a distributed system wherein a set of global states are employed as provisioning checkpoints; defining individual software component methods for transitioning from one state to another; associating individual states of the components with a global state; and defining a rollback method by which a destination global state may be rolled back to a previous global state in an event of a failure.