Skip to content

Capucine

Fábio Nogueira edited this page Nov 24, 2016 · 7 revisions

Capucine

Capucine is a Dynamic Software Product Line (DSPL) for building adaptive context-aware service-oriented applications. It combines Aspect Oriented System Development (AOSD) and Model Development Engineering (MDE) ideas in the proposition of an Aspect Oriented Modeling (AOM) solution that enables the composition of assets from feature diagrams. In Capucine features are mapped to partial models which can be weaved at design or runtime. To enable the conception of those models, Capucine proposes a set of meta-models.

The first meta-model is the application meta-model, which has elements representing the structure and behavior of an SCA application from a high level of abstraction. The core of every application is represented by an instance model in conformance with this meta-model, which is referred to as the core model. Following the engineering process, this core model is weaved with aspect models representing the chosen features in order to derive a product model. Finally, the product model is refined to include platform specifc details and eventually is used to generate the application. It is important to reinforce that the weaving process can be performed at design or runtime.

The mentioned aspect models are instance models in conformance with the aspect meta-model. This meta-model contains information required for the weaving process, including the locations in the core model that are modified by the feature modeled by the aspect model, the elements to be added, and the set of modifications to be performed in order to add those elements. In summary, the idea of the aspect meta-model is to represent a feature by indicating what should be added an application, where should the models element that model the feature be included, when should the feature be weaved, and how this feature modifies the application.

This proposal has some similarities with DSOA platform. Firstly, Secondly, both proposals are based on Service-Oriented Component Models, which means that applications are modeled using the same high-level concepts. Consequently, the Capucine's application meta-model is similar to the one that is proposed in DSOA. Secondly, both platforms offer support to the design time activities as they define modeling languages. Thirdly, both proposals support separation of concerns by enabling different roles to use different model elements. Finally, each platform is supported by a proposed infrastructure.

Despite those similarities, there are important differences. Firstly, DSOA models are transported to runtime (aka models@runtime) and used to drive the adaptation process, while the Capucine are used to generate reconfiguration scripts. Secondly, while Capucine address context-aware applications, DSOA intends to support QoS-aware Service-Based Applications (QSBAs).

References:

  1. [Parra 2009] (http://www.labri.fr/perso/xblanc/data/papers/SPLC09.pdf "Context Awareness for Dynamic Service-Oriented Product Lines")

  2. [Parra 2011] (https://hal.inria.fr/inria-00564592/document "Unifying design and runtime software adaptation using aspect models")

Clone this wiki locally