Translating declarative models
First Claim
1. At a computer system within a computing environment, the computing environment including a plurality of different technologies, the computer system including one or more drivers, each driver configured to process models for a specified combination of different technologies, the computer system including one or more translators, each translator configured to process model elements representing objects within a specified technology from among the plurality of different technologies, a method for translating a model to implement a received command within the computing environment, the method comprising:
- an act of receiving a declarative model along with a command, the declarative model and the command collectively indicating an intent to implement the command for an application based on the received declarative model;
an act of identifying a driver that is configured to process declarative models corresponding to the combination of technologies indicated in the received declarative model;
an act of forwarding the received declarative model and the command to the identified driver;
an act of the identified driver parsing the received declarative model to identify model elements and their relationship to one another;
for each identified model element;
an act of identifying a translator configured to translate model elements for the specified technology corresponding to the identified model element;
an act of sending the model element to the identified translator;
an act of receiving a sequence of actions that are to be performed within the specified technology to partially implement the command for the application, the sequence of actions being a subset of the total actions that are to be performed to fully implement the command; and
an act of assembling the received sequence of actions for the model element into an execution plan, the received sequence of actions assembled into the execution plan in a designated order with respect to sequences of actions received for other model elements based on the model element'"'"'s relationship to other model elements in the received declarative model; and
an act of executing the execution plan to implement the command for the application, execution of the execution plan including executing the sequences of actions received for each model element in the designated order.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention extends to methods, systems, and computer program products for translating declarative models. Embodiments of the present invention facilitate processing declarative models to perform various operations on applications, such as, for example, application deployment, application updates, application control such as start and stop, application monitoring by instrumenting the applications to emit events, and so on. Declarative models of applications are processed and realized onto a target environment, after which they can be executed, controlled, and monitored.
-
Citations
20 Claims
-
1. At a computer system within a computing environment, the computing environment including a plurality of different technologies, the computer system including one or more drivers, each driver configured to process models for a specified combination of different technologies, the computer system including one or more translators, each translator configured to process model elements representing objects within a specified technology from among the plurality of different technologies, a method for translating a model to implement a received command within the computing environment, the method comprising:
-
an act of receiving a declarative model along with a command, the declarative model and the command collectively indicating an intent to implement the command for an application based on the received declarative model; an act of identifying a driver that is configured to process declarative models corresponding to the combination of technologies indicated in the received declarative model; an act of forwarding the received declarative model and the command to the identified driver; an act of the identified driver parsing the received declarative model to identify model elements and their relationship to one another; for each identified model element; an act of identifying a translator configured to translate model elements for the specified technology corresponding to the identified model element; an act of sending the model element to the identified translator; an act of receiving a sequence of actions that are to be performed within the specified technology to partially implement the command for the application, the sequence of actions being a subset of the total actions that are to be performed to fully implement the command; and an act of assembling the received sequence of actions for the model element into an execution plan, the received sequence of actions assembled into the execution plan in a designated order with respect to sequences of actions received for other model elements based on the model element'"'"'s relationship to other model elements in the received declarative model; and an act of executing the execution plan to implement the command for the application, execution of the execution plan including executing the sequences of actions received for each model element in the designated order. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer program product for use at a computer system within a computing environment, the computing environment including a plurality of different technologies, the computer system including one or more drivers, each driver configured to process models for a specified combination of different technologies, the computer system including one or more translators, each translator configured to process model elements representing objects within a specified technology from among the plurality of different technologies, the computer program product for implementing a method for translating a model to implement a received command within the computing environment, 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:
-
receive a declarative model along with a command, the declarative model and the command collectively indicating an intent to implement the command for an application based on the received declarative model; identify a driver that is configured to process declarative models corresponding to the combination of technologies indicated in the received declarative model; forward the received declarative model and the command to the identified driver; parse the received declarative model to identify model elements and their relationship to one another; for each identified model element; identify a translator configured to translate model elements for the specified technology corresponding to the identified model element; send the model element to the translator; receive a sequence of actions that are to be performed within the specified technology to partially implement the command for the application, the sequence of actions being a subset of the total actions that are to be performed to fully implement the command; and assemble the received sequence of actions for the model element into an execution plan, the received sequence of actions assembled into the execution plan in a designated order with respect to sequences of actions received for other model elements based on the model element'"'"'s relationship to other model elements in the received declarative model; and execute the execution plan to implement the command for the application, execution of the execution plan including executing the sequences of actions received for each model element in the designated order. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. At a computer system within a computing environment, the computing environment including a plurality of different technologies, the computer system including one or more drivers, each driver configured to process models for a specified combination of different technologies, the computer system including one or more translators, each translator configured to process model elements representing objects within a specified technology from among the plurality of different technologies, a method for updating a model based application within the computing environment, the method comprising:
-
an act of receiving an declarative model along with an update command, the declarative model and the update command collectively indicating an intent to update an application based on a prior version of the received declarative model; an act of assembling a current execution plan for the received declarative model, the current execution plan including a sequence of actions assembled in a designated order based on the relationships between model elements in the received declarative model; an act of accessing the prior version of the received declarative model; an act of assembling a prior execution plan for the prior version of the received decorative model, the prior execution plan including a prior sequence of actions assembled in a designated order based on the relationships between model elements in the prior version of the received declarative model; an act of comparing the current execution plan to the prior execution plan; an act of deriving a new execution plan for updating the application based on the comparison; and an act of executing the new execution plan to update the application within the computing environment. - View Dependent Claims (18, 19, 20)
-
Specification