Patent ID: 8181151

Claim:
At a computer system within a computing environment, the computing environment including a plurality of different technologies for implementing distributed applications, a method for implementing a composite distributed application, the method comprising: an act of describing the components of a composite distributed application in a declarative model in an implementation independent manner that describes operations and intended behaviors of the components without describing each implementation step for deploying the components within different technology and computing environment contexts, including describing a plurality of different application parts that each describes a portion of the composite distributed application; an act of inserting a plurality of abstractions into the declarative model, each abstraction describing the operation and intended behavior of a corresponding application part in an implementation independent manner so that the corresponding application part is deployable using different computing technologies and in different computing environments, the plurality of abstractions extending the declarative model to make the declarative model executable; an act of setting an implementation attribute on at least one inserted abstraction, the implementation attribute including implementation details expressly indicating how the at least one inserted abstraction is to be tagged to indicate an intended implementation of the operation and intended behavior of the at least one inserted abstraction; in response to a request to deploy the composite distributed application in a particular computing environment, an act of refining the declarative model for deployment within the particular computing environment, including an act of tagging each of the plurality of abstractions with a label, each label including implementation specific details that indicate how one or more technologies that are specific to the particular computing environment are to be used to implement the corresponding application part when deployed within the particular computing environment, at least one label based on the implementation attribute set on the at least one inserted abstraction, and at least one label inferred from the particular computing environment; and an act of interpreting the refined declarative model to implement an executable instance of the composite distributed application within the particular computing environment, the executable instance of the composite distributed application implemented using the one or more technologies that are specific to the particular computing environment in accordance with the implementation specific details included in the labels.