-
Notifications
You must be signed in to change notification settings - Fork 0
MADAM
[Related Work](https://github.com/dsoa-team/dsoa-platform/wiki/Related Work)
As its name implies, MADAM is a middleware platform that supports application adaptation through the use of architectural models describing variability to guide the adaptation proccess. Besides the variation encoded in the application model, the middleware needs a selection criteria to automate the derivation of a variant at runtime. In this context, MADAM uses utility functions to choose the variants that shall be used.
In more details, the MADAM architectural model includes the specification of the application structure, the application's variability, the properties of each variant, and the utility function for comparing variants. As the authors metion, in MADAM, a component framework describes a composition of component types. The variability is achieved by plugging in different component implementations whose externally observable behavior conforms to the type. The components that are to be plugged in are selected in accordance with their properties, which qualify the services that are provided or required. The interaction between components occur through their ports.
At runtime, MADAM works with two kinds of architectural models, the framework architectural model and the instance architectural model. The framework architectural model is build around component types, which represent the variation points. This architectural model and the represented variants (component implementations) are analyzed in order to build the actual running architecture, which is represented by the instance architectural model. This is analysis is referred to as planning and should be performed when the application is deployed and when its context changes. During planning the middleware evaluates the variants by calculating the utility of each variant in the current context. It also evaluates the current application instance, as represented by the instance architectural model. If the middleware identifies that a variant has a better utility than the running instance, it triggers the reconfiguration process. This process usually requires bringing components into a safe state, replacing selected components and transfering state.
MADAM and DSOA share important concepts and mechanisms, as they use two distinct levels of architectural models at runtime: types and instances, are able to adapt the application and the platform itself, and let the users specify their preferences.
Despite these similarities, there are also important differences. In DSOA quality of services is the driving factor of the adaptation process. Consequently, DSOA defines a language to define quality characteristics and to conect quality metrics to high level events. Even more, in DSOA quality and event models are represented at runtime enabling managers to redefine the metrics and corresponding computation algorithms.
- [Floch et. al 2006] (http://dl.acm.org/citation.cfm?id=1128711 "Using Architecture Models for Runtime Adaptability")