Sûreté des adaptations de services composites

Motivation

Un grand nombre de nouvelles applications informatiques, dans le cadre de l'Informatique Ambiante, ne mettent plus seulement en oeuvre des ordinateurs de bureau en réseau mais utilisent des dispositifs communicants dans l'environnement quotidien des utilisateurs mobiles (ex. badge RFID, système de localisation, etc.). Une application logicielle doit donc non seulement évoluer dynamiquement mais ne peut plus être conçue comme s'appuyant sur un environnement matériel/logiciel connu a priori.

Dans l'équipe Rainbow, nous avons décidé de traiter cette forte dynamicité au travers de la variation spontanée de l'ensemble des services disponibles pour l'application (Service Oriented Archietcture: SOA). Ces services, qui peuvent être composés à partir d'autres services, sont alors découvrables et composables dynamiquement. Malheureusement, l'adaptation dynamique des applications et des assemblages correspondants peuvent déboucher sur des solutions mettant à mal la sûreté de fonctionnement de l'application (ex. accès multiples voire conflictuels à des services partagés).

Sujet

SCA (Service Componant Architecture) est un ensemble de spécifications visant à simplifier la création et la composition de services (indépendamment de leur implémentation) dans le cadre d'Architectures Orientées Service (SOA).

SCA propose donc un modèle de programmation pour la construction d'applications à base de composants suivant le paradigme SOA. Ce modèle se base notamment sur l'idée qu'un service de niveau N se construit par assemblage / agrégation / orchestration de services de niveau N-1 ou N. Il s'agit alors d'un service dit "composite".

Cette architecture de composants de services scinde le travail de construction des applications en deux étapes. La première est une phase d'implémentation des composants qui fournissent et consomment des services. La seconde étape consiste à assembler les ensembles de composants de façon à bâtir les applications. Contrairement à la phase d'implémentation, l'assemblage des composants s'avère indépendant du langage sous-jacent.

Ainsi, SCA insiste sur une séparation forte entre l'implémentation des services et leur assemblage. Le modèle SCA se veut agnostique vis-à-vis:

  • Des technologies d'implémentation des composants de service,
  • Des technologies d'exposition et d'invocation des composants de services.

L'équipe Rainbow a développé une approche (WComp) à composants légers pour la composition de services (SLCA) qui permet de concevoir des applications d'Informatique Ambiante par assemblage de composants logiciels orchestrant des accès aux services interactifs de l'infrastructure ambiante.

Mais des difficultés apparaissent lors de ce type de composition, dès lors que des accès concurrents non anticipés aux services peuvent provoquer un comportement inattendu de l'application. L'équipe Rainbow et tout particulièrement Audrey Occello ont travaillé sur ce sujet ce qui a abouti à SATIN un outils de sûreté permettant de vérifier un certain nombre de propriétés telles que l'absence de cycles, d'accès concurrent non prévus, ..., dans des applications développées à base de composants.

Travail attendu

Dans le cadre de ce projet, l'étudiant devra faire un état de l'art sur les solutions qui ont été étudiées dans la domaine des SCA et dans le domaine de la sûreté de composition de services.

Il devra:

  • étudier les apports d'un outils de sûreté tel que SATIN à une approche telle que WComp (lister les propriétés pertinentes et vérifiables).
  • étudier à la fois l'intégration de nouvelles propriétés à SATIN si nécessaire et l'intégration de la sûreté à WComp.
  • mettre en oeuvre une preuve de concept illustrant les résultats de l'étude.

Réferences Web

Références

  • [2007] Daniel Cheung-Foo-Wo, Jean-Yves Tigli, Stéphane Lavirotte et Michel Riveill. « Self-adaptation of event-driven component-oriented Middleware using Aspects of Assembly ». Dans 5th International Workshop on Middleware for Pervasive and Ad-Hoc Computing (MPAC), California, USA, novembre 2007.
  • [2006] Audrey Occello "Capitalisation de la sûreté de fonctionnement des applications soumises aux adaptations dynamiques : le modèle exécutable Satin" Phd Thesis Universite de Nice - Sophia Antipolis, Sophia Antipolis, France, jun 2006
  • 2006] Daniel Cheung-Foo-Wo, Jean-Yves Tigli, Stéphane Lavirotte, Michel Riveill. /"Wcomp: a Multi-Design Approach for Prototyping Applications using Heterogeneous Resources"/ in Proceedings of the 17th IEEE International Workshop on Rapid System Prototyping (RSP), Chania, Crete, jun 2006
  • [2005] Daniel Cheung-Foo-Wo, Mireille Blay-Fornarino, Jean-Yves Tigli, Anne-Marie Pinna-Déry, David Emsellem, Michel Riveill. /"Langage d'aspects pour la composition dynamique de composants embarqués"/ dans les actes de la 2ème Journée Francophone sur le Développement de Logiciels par Aspects (JFDLPA) , 2005
  • [2004] Audrey Occello, Anne-Marie Pinna-Déry. "An Adaptation-safe Model for Component Platforms" in Proceedings of the 13th International Conference on Intelligent and Adaptive Systems and Software Engineering (IASSE), Nice, France, 1-3 jul 2004
  • [2006 - 2007] Projet de recherche Région PACA/Polytech'Nice Ubiquarium Informatique: Une plate-forme pour l'étude des équipements informatiques mobiles en environnement simulé, confinancée Polytech Nice Sophia Antipolis - Région PACA.
  • [2006] Vincent Hourdin, Daniel Cheung-Foo-Wo, Stéphane Lavirotte, Jean-Yves Tigli. /"Ubiquarium/ In/formatique: Une plate-forme pour l'étude des équipements informatiques mobiles en environnement simulé"/ dans les actes des Troisièmes Journées Francophones Mobilité et Ubiquité (UbiMob), Paris, France, 5-8 sep 2006
  • WComp: http://rainbow.essi.fr/wikiwcomp/doku.php
  • Ubiquarium: http://rainbow.essi.fr/ubiquarium/doku.php