Modeling and managing heterogeneous applications
First Claim
1. 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.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention extends to methods, systems, and computer program products for modeling and managing heterogeneous applications. Application intent can be described in a relatively straight forward manner that abstracts underlying implementation details. Thus, application developers can develop applications without necessarily having to know extensive details of an underlying implementation environment. In any event, an application can be executed in different implementation environments without requiring changes to the corresponding model.
-
Citations
19 Claims
-
1. 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer program product for use at a computer system within a computing environment, the computing environment including a plurality of different technologies for implementing distributed applications, the computer program product for implementing a method for implementing a composite distributed application, the computer program product comprising one or more physical storage media having stored thereon computer-executable instructions that, when executed at a processor, cause the computer system to perform the method including the following:
-
describe the components of a composite distributed application in a declarative model, including describing a plurality of different application parts that each describes a portion of the composite distributed application in an implementation independent manner that describes operations and intended behaviors of the application parts without describing each implementation step for deploying the application parts within different technology and computing environment contexts; insert 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 contexts, the plurality of abstractions extending the declarative model to make the declarative model executable; set 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; receive a request to deploy the composite distributed application in a particular computing environment, and in response; refine the declarative model for deployment within the particular computing environment, including tagging each of the plurality of abstractions for implementation with a label, each label including implementation specific details that indicate how different technologies available within the particular computing environment are to be used to implement the corresponding application part, including; tagging the at least one inserted abstraction for implementation based on the implementation details in the implementation attribute; and tagging at least one other inserted abstraction for implementation based on information inferred from the particular computing environment; and interpret 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 technologies available within the particular computing environment in accordance with the implementation specific details included in the labels. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A computer system, comprising:
-
one or more processors; and one or more physical computer storage media storing computer-executable instructions which, when executed, cause the one or more processors to implement a method for describing the intended executable behavior of a composite distributed application in an implementation-independent manner, and for refining the description for execution within particular computing environments, the method comprising; an act of describing a composite distributed application in a declarative model, the declarative model having a plurality of model elements, each model element representing a portion of the intended executable behavior of the composite distributed application in an implementation independent manner that describes operations and intended behaviors of the plurality of model elements without describing each implementation step for deploying the model elements within different technology and computing environment contexts, the description of the composite distributed application including at least; an act of describing a first application part of the composite distributed application, the first application part being a first specified type of application part, including; an act of declaring a first abstraction for the first application part, the first abstraction describing the intended execution behavior of the first application part in an implementation independent manner so that the first application part is deployable using different computing technologies and in different computing environments; and an act of describing a second part of the composite distributed application, the second part being a second different specified type of application part, including; an act of declaring a second abstraction for the second application part, the second abstraction describing the intended execution behavior of the second application part in an implementation independent manner so that the second application part is deployable using different computing technologies and in different computing environments; and 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 first and second abstraction with a corresponding first and second label, respectively, that includes implementation specific details that indicate how technologies specific to the particular computing environment are to be used to implement the corresponding application part, one of the first and second labels being based on an implementation attribute set on one of the abstractions, and an alternate one of the first and second labels being inferred from the particular computing environment. - View Dependent Claims (16, 17, 18, 19)
-
Specification