Note publique d'information : Les technologies pour l’adaptation dynamique (composants, aspects, etc.) permettent
de modifier les applications durant leur exécution. Si l’on considère que la sûreté
de fonctionnement d’une application est la propriété permettant aux utilisateurs d’un
système de placer une confiance justifiée dans le service qu’il leur délivre, alors
il faut garantir lors d’une adaptation dynamique que cette propriété est préservée.
Actuellement, il n’existe pas de solution appropriée au problème de la sûreté des
adaptations dynamiques. En effet, un certain nombre de techniques (typage, model-checking,
etc.) destinées à concevoir et implémenter les systèmes informatiques de façon sûre
ne peuvent être directement utilisées pour valider des interprétations dynamiques.
De plus, la prise en charge de ces dernières doit tenir compte du risque qu’une adaptation
se produise à un moment inadéquat dans l’exécution de l’implication et implique de
traiter les problèmes de sûreté parallèlement à l’exécution de l’application sans
perturbation. Il n’existe pas actuellement de consensus autour des vérifications à
effectuer dans un contexte dynamique : leur mise en œuvre reste souvent informelle
ou à la charge du développeur d’applications. Nous proposons de contrôler la sûreté
des adaptations indépendamment des plates-formes. Cette approche est basée sur un
modèle nommé Satin sur lequel des propriétés de sûreté sont exprimées t validées.
Le modèle satin est mis en œuvre sous la forme d’un service de sûreté que les plates-formes
peuvent interroger pour déterminer si une adaptation donnée risque de briser la sûreté
de fonctionnement de l’application.
Note publique d'information : Dynamic adaptation technologies (components, aspects, etc.) allow for applications
to be modified during their execution. If we consider safety as the property that
enables users to trust application behaviour, then we have to ensure that this property
is preserved by application adaptations during execution. There are no appropriate
solutions to handle safety for dynamic adaptation purpose. Some techniques (typing,
model-checking, etc.) that help designing and implementing computer systems safely
cannot be applied directly to dynamic adaptations. Indeed, managing dynamicity implies
taking into account the risk that an adaptation may occur in circumstances that do
not comply the application execution and implies recovering errors while the application
runs. There is not unified approach of the problem : implementations of safety control
are often informal or left to the application developer instead of being offered by
the platform. Facing application evolutions, we propose to control adaptation safeness
independently of components platform and aspect oriented frameworks. Satin is a model
describing the key elements involved in the adaptation process. Safety properties
are expressed and validated over this model to identify the criteria of safe adaptations.
Satin has been implemented as a safety service that platforms can query to determine
whether a given adaptation can be performed without breaking the safeness of the overall
application execution/ A prototype of this service has been developed in Java so as
to validate the applicability of the proposed approach.