D1 - 01/03/2014 Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son destinataire implique, de la part de ce dernier, la reconnaissance du caractère confidentiel de son contenu et l'engagement de n'en faire aucune reproduction, aucune transmission à des tiers, aucune divulgation et aucune utilisation commerciale sans l'accord préalable écrit de Recherche & Développement de France Télécom. France Télécom Recherche & Développement Un système de contractualisation pour Fractal : intégration et retour sur expérience Philippe Collet I3S UNSA / CNRS, Sophia Antipolis (F) Alain Ozanne France Telecom R&D Journées Composants '05 – 6 avril 2005
La communication de ce document est soumise à autorisation de la R&D de France Télécom D2 - 01/03/2014 France Télécom Recherche & Développement Introduction : La garantie des assemblages de composants Approche par composants : Aspect architectural : – Séparation des interfaces et de l'implémentation – Architecture explicite Aspect fonctionnel : – Répartition des tâches – Collaborations Contrats : – syntaxiques insuffisants – adaptés à l'approche composant Objectif : Modèle de contractualisation pour la plateforme Fractal Prototypage avec une approche assertionnelle
La communication de ce document est soumise à autorisation de la R&D de France Télécom D3 - 01/03/2014 France Télécom Recherche & Développement Motivations Prendre en compte des propriétés : Spécifications Ponctuelles : Liaison entre interface (contrat objet) Spécifications Compositionnelles : Totalité du composant fonction (interfaces) fonction (composants) Préserver les caractéristiques de Fractal Hiérarchie, reconfigurations dynamiques,… Prendre en compte des spécifications fonctionnelles Anticiper l'intégration de formalismes divers (non fonctionnels …)
La communication de ce document est soumise à autorisation de la R&D de France Télécom D4 - 01/03/2014 France Télécom Recherche & Développement Fractal / Julia hiérarchique : composite et partage, connexions d'utilisation (client/serveur), et de délégation d'interfaces, opacité, réflexif, des services techniques orthogonaux, reconfiguration à chaud
La communication de ce document est soumise à autorisation de la R&D de France Télécom D5 - 01/03/2014 France Télécom Recherche & Développement Plan Présentation de ConFract Présentation du prototype Intégration dans Fractal Retour sur expérience
La communication de ce document est soumise à autorisation de la R&D de France Télécom D6 - 01/03/2014 France Télécom Recherche & Développement Système de contractualisation des assemblages de composants Préserve les caractéristiques de Fractal Contrat générique : Défini par sa portée, un assemblage (simple ou multiple), et un ensemble de dispositions, Disposition = terme de contrat qui contraint tout ou partie de l'assemblage : –Chaque disposition est issue d'une spécification –chaque disposition a un garant unique (précondition, client) –chaque disposition profite à un ensemble de bénéficiaires (précondition, fournisseur) –chaque disposition utilise des contributeurs (évaluation) ConFract Les contextes des dispositions appartiennent à la portée du contrat disposition contrat A B disposition rôle contexte Portée du contrat
La communication de ce document est soumise à autorisation de la R&D de France Télécom D7 - 01/03/2014 France Télécom Recherche & Développement Portée = les 2 interfaces Contrats concrets : Contrat composition interne Contrat composition externe Contrat interface Dispositions = locales à l'interface, indépendantes du composant Dispositions = Fonction (interfaces externes) Portée = interfaces externes du composant Dispositions = Fonction (interfaces internes et composants internes) Portée = interfaces intérieures au composite
La communication de ce document est soumise à autorisation de la R&D de France Télécom D8 - 01/03/2014 France Télécom Recherche & Développement Context Interface_java : –Pre/post method : predicat –Inv : predicat On : –Pre/post interface_fractal.method : predicat –Inv interface_fractal : predicat Predicat = f(données de contexte d'interception) Formalisme CCL-J on context void.mpl.play () pre :.canPlay(.getWidth(),…); Context *.Configurator : inv : getProfil() != null
La communication de ce document est soumise à autorisation de la R&D de France Télécom D9 - 01/03/2014 France Télécom Recherche & Développement API de modélisation de contrat Indépendant de la plateforme Briques fournies : api de contrat à base de rôles et dispositions : générique, interface et composition, api de rôles = modélisation des rôles api de dispositions = modélisation des dispositions api de vérification = interface abstraite de la vérification contratdisposition * rôle contexte * 1 prédicatvérification 1
La communication de ce document est soumise à autorisation de la R&D de France Télécom D /03/2014 France Télécom Recherche & Développement Intégration : Configuration du système de contrats Gestion des contrats : le Contrôleur de Contrats Création : introspection référentiel de spécification Suppression Mise à jour / re-configuration on : context void m.launch(): pre :.cfg.ok();
La communication de ce document est soumise à autorisation de la R&D de France Télécom D /03/2014 France Télécom Recherche & Développement Intégration : Configuration du système de contrat ContentControllerBindingController ContractController contrats Spécifications
La communication de ce document est soumise à autorisation de la R&D de France Télécom D /03/2014 France Télécom Recherche & Développement Approche assertionnelle Julia : intercepteurs de bas niveau, statiques Ajout d'un contrôleur : ServiceController Requêtes d'interception : ajout/retrait dynamique Point de coupe : dans les termes du modèle de composant Entités à notifier : sujet /observateur Politique de notification Eventuelles données supplémentaires Intégration : Vérification des contrats SC
La communication de ce document est soumise à autorisation de la R&D de France Télécom D /03/2014 France Télécom Recherche & Développement Intégration : Vérification des contrats Collaboration entre ContractController et ServiceController Requête d'interception (contexte, variables, écouteurs) spécification contextevariables Création contrat dispositions ajoute contrat dispositions contexte Modif/suppr contrat supprime Contract Controller Service Controller
La communication de ce document est soumise à autorisation de la R&D de France Télécom D /03/2014 France Télécom Recherche & Développement Intégration : Vérification des contrats ContractController ServiceController contrats
La communication de ce document est soumise à autorisation de la R&D de France Télécom D /03/2014 France Télécom Recherche & Développement Retour Fractal : Avantages -Contrôleur : séparation des préoccupations techniques -Réflexivité structurelle Inconvénients -Pas de réflexivité comportementale Julia : Avantages -Réflexivité comportementale Inconvénients -mise en œuvre statique : intercepteurs, contrôleurs
La communication de ce document est soumise à autorisation de la R&D de France Télécom D /03/2014 France Télécom Recherche & Développement Conclusion - Contrats : - Garantie des connexions et des compositions - Etablis et maintenus dynamiquement - Intégration : - Respect des caractéristiques de Fractal - Evaluation de l'extensibilité et réflexivité de Fractal : - Bonne réflexivité structurelle - Manque de réflexivité comportementale, contrôleurs statiques
La communication de ce document est soumise à autorisation de la R&D de France Télécom D /03/2014 France Télécom Recherche & Développement Perspectives - Prise en compte de nouveaux : - Formalismes (non fonctionnels, formels, …) - Techniques de vérification (ECA, model checking,…), - Greffer dynamiquement le système de contrats - Permettre l'intégration de mécanismes de négociation
La communication de ce document est soumise à autorisation de la R&D de France Télécom D /03/2014 France Télécom Recherche & Développement Questions ?