1. At a computer system, the computer system including a repository storing models that describe intended application behavior, executive services for refining models so that drivers can implement model related commands on applications, and driver services for implementing model related commands for applications, a method for managing the lifecycle of a software application, the method comprising: an act of storing application models in a repository, each application model comprising a declarative model that describes the structure and behavior of a distributed application; an act of storing command/workflow models in the repository, each command/workflow model defining lifecycle commands for performing a transition between states of the lifecycle of a corresponding distributed application; an act of storing lifecycle models in the repository, each lifecycle model defining states of a corresponding distributed application including transitions that can be made between the states, each transition including a reference to a command/workflow model that defines commands for implementing the transition; an act of receiving an application model reference along with a software lifecycle command, the application model reference referring to a first application model that is stored in the repository, the software lifecycle command indicating a software lifecycle transition that is to be applied to a first distributed application; an act of utilizing the application model reference to access the first application model, the first application model including a lifecycle model reference referring to a first lifecycle model in the repository and including a lifecycle state attribute configured to store a lifecycle state value indicating a current lifecycle state of the first distributed application; an act of utilizing the lifecycle model reference to access the first lifecycle model, the first lifecycle model defining states of the first distributed application including transitions that can be made between the states, the states including an initial state, a valid state, a ready state, a deployed state and a running state, each defined transition referencing a command/workflow model in the repository that defines commands for implementing the transition; an act of accessing the lifecycle state attribute in the first lifecycle model to determine the current lifecycle state of the first distributed application, the current lifecycle state comprising one of the initial state, the valid state, the ready state, the deployed state, or the running state; an act of referring to the first lifecycle model to determine if the first distributed application can transition from the current lifecycle state to a new lifecycle state in accordance with the lifecycle transition indicated in the received software lifecycle command, the lifecycle command comprising one of a create deployment transition command for transitioning the distributed application from the initial state to the valid state, a verify transition command for transitioning the distributed application from the valid state to the ready state, a deploy transition command for transitioning the distributed application from the ready state to the deployed state, and a start transition command for transitioning the distributed application from the deployed state to the running state; an act of determining that the first lifecycle model references a first command/workflow model for transitioning the first distributed application to the new lifecycle state in accordance with the lifecycle transition indicated in the received software lifecycle command; an act of instantiating a first command/workflow instance from the first command/workflow model; and an act of the first command/workflow instance performing commands to transition the distributed application to the new lifecycle state.