Internet des objets vers les composants logiciels Tatiana
Internet des objets : vers les composants logiciels Tatiana Aubonnet 1
Plan Objectifs & problématique Evolution des approches logiciels Perspectives et futurs axes • • • – Composant autocontrôlé SCC (Self-Controlled service Component) Un atelier de création de services Io. T systèmes distribuées intelligents 2
Objectifs & problématique Systèmes distribués intelligents sont au cœur de l’Io. T et du Cloud Computing Les objectifs: – Contrôle et gestion d’applications – Déploiement à la demande et à la volée La problématique: - Quel Composant Logiciel? - Composition de services personnalisée dans un environnement de confiance 3 DUT– le 31/01/2017
Composants logiciels : évolution des approches 4
Le composant Fractal (1) Une Fractale désigne des objets dont la structure est invariante en changeant d'échelle Point fort : les interfaces – exécution (fonctionnel) – control (non-fonctionnel) – gestion dynamique de composant 5
Le composant Fractal (2) AC (Attribute. Controller) : permet de modifier les attributs d'un composant ; BC (Binding. Controller): permet de créer/rompre une liaison primitive entre deux interfaces de composants ; LC (Life. Cycle. Controller) : permet de gérer le cycle de vie (minimaliste), représenté par deux états started/stopped, ajout/retrait de composants d’une architecture en cours d’exécution; NC (Naming. Controller) : permet de faire le get et le set du nom de l’élément. CC (Content. Controller): permet de lister, d’ajouter et de retirer des sous-composants qui le composent (introspection).
Le GCM (Grid Component Model) Point fort : «Separation of concern» – Un contenu métier – Une membrane pour les aspects non fonctionnels 7
Le GCM (Grid Component Model) Boucle MAPE = Atonomic computing 8 DUT – le 31/01/2017
Vers un composant autocontrôlé SCC (Self-Controlled service Component) Monitoring Autocontrôle DUT – le 31/01/2017 9
Application Cloud DUT – le 31/01/2017 10
Contrôle dynamique Execute Composition JONAS 1 HTTP Load Balancer Frontal JONAS 2 DUT – le 31/01/2017 11
Un atelier de création de services DUT – le 31/01/2017 12
Un atelier de composition de services DUT – le 31/01/2017 13
Vers Io. T systèmes distribuées intelligents SCC 3 Contrôle/Gestion SCC 6 Cloud service or application Reporting Autorisation Confidentialité Cloud BD Authentification SCC 8 SCC 11 SCC 14 SCC 13 Entrepôt Niveau réseau Iot Gateway Service ou Application Authentification Confidentialité Periodic reporting Remote control Autorisation On demand reporting SCCa SCCb SCCc SCCd SCCe SCCg DUT – le 31/01/2017 14
Vers Io. T fondé sur les composants autocontrôlés Hétérogénéité Mutualisation Periodique reporting /“Remote control” Ajout de composants /Configuration dynamique Sécurité: – Authentification – Autorisation/Confidentialité – Environnement de confiance DUT – le 31/01/2017 15
Perspectives - réseaux de capteurs Collecte de données Plusieurs défis – Réduire l’énergie consommée – Tolérer les pannes/fautes, détection d’intrusions – Avoir des garantis sur les communications B Modéliser les problèmes de de transmission d’information D C – Ex : Maximiser les transmissions simultanées sans conflits Améliorer et/ou proposer de nouveaux protocoles de routage plus performants et avec garantis Puits A E L F H N Lien collecte données Interférence de transmission
Composition de services Session d’utilisateur : SCC 2 + SCC 3 + SCC 8 Session d’utilisateur à la gare : SCC 2 + SCC 3 + SCC 7 + SCC 8 SCC 3 SCC 6 SCC 3 Service delivery (4) Pilotage SCC 3 SCC 8 SCC 10 SCC 12 SCC 5 SCC 2 Niveau services SCC 11 (3) Composition de service : VPSN Niveau réseau (Iaa. S, MPLS) Media delivery Accès Réseau Mobilité de l’utilisateur SCC 8 SCC 7 Access Réseau (2) Sélectionner les liens (1) Sélectionner les composants SCC
Atelier de composition de services
VCE (Ver. Cors Component Editor) a model-driven specification environment for GCM components
GCM high level specifications: The VCE tool
Model-checking applications: The Vercors platform (partial) Code generation Specification: Graphical editors Generation Of the Semantic model Model Checking
An Eclipse / Sirius environment MVDE@SEI School -- ECNU, Shanghai, July 2014
The graphical formalisms: (1) Architecture GCM full ADL, with full componentized membrane, and multicast/gathercast MVDE@SEI School -- ECNU, Shanghai, July 2014
The graphical formalisms: (2) Interfaces UML class diagram, for interface signatures, and primitive component implementation class
The graphical formalisms: (3) data-types First order types: ü ü ü Boolean Integer and interval Enumeration Record Array (not in this version) Rational: – Can be easily abstracted into finite domains for model-checking purposes
The graphical formalisms: (4) behaviors UML state machines
The graphical formalisms: (5) action language The labels of transitions in State-machines express the interaction behavior between components. Goals: – model generation: easily mapped to Labelled Transition Systems with data (p. LTS), – code generation: • Mapped to Java code executable within the GCM/Pro. Active middleware • Generated code is guaranteed to respect the proved (modelchecked) properties
The graphical formalisms: (5) action language Call method Task 1 on client interface C 1 Assign result to local variable x Pass x as a parameter
Validity check, code & model generation Semantic validity rules: – Structural (components, bindings, interface roles) – Typing (interface compatibility) – Behavioral (variables/methods well-definedness) Guarantees generation of correct code: – ADL file (for GCM/Pro. Active component factory) – Behavior model (for model-checking)
Static validation in VCE Check all architecture validity the constraints Use Acceleo, OCL and Java Services Inform user about the violation of constraints 31
Static validation in VCE MVDE@SEI School -- ECNU, Shanghai, July 2014
Static validation rules (1) Component encapsulation Bindings do not cross the boundaries of the components Deterministic communications Each client interface is connected to at most one server interface 33
Static validation rules (2) Separation of concerns The interfaces connected by a binding should have compatible control levels CL of a functional interface = 1 CL of a non-functional interface = 2 CL is increased by 1 for interfaces of controllers Compatible CLs: either both = 1, or both >1 34
Static validation rules (3) • CL of a functional interface = 1 12 • CL of a nonfunctional interface = 2 2 2 • CL is increased by 1 for interfaces of controllers • Compatible CL: either = 1, or >1 1 1 2 2 1 35
How far have we gone yet ? Static Specification: Validation (partial) Code generation Graphical editors Generation Of the Semantic model Model Checking
Logiciel à utiliser VCE (Ver. Cors Component Editor) de l’INRIA http: //team. inria. fr/scale/Vercors/software/VCEv 4 (download, examples) VCE-v 4 installé sur windows plateformes. Pré-requis: Java 7 (jre or jdk) installés Case-studies: R. Ameur-Boulifa, R. Halalai, L. Henrio, E. Madelaine, Verifying Safety of Fault-Tolerant Distributed Components - Extended Version, RR INRIA #7717, sept 2011, URL: http: //hal. inria. fr/inria-00621264
Logiciel à utiliser Overview: E. Madelaine, Specification, Model Generation, and Verification of Distributed Applications, sept. 2011, URL: http: //hal. inria. fr/index. php? halsid=o 3253 cd 31 tsjbo 0 bo 40 ogqas 53&view_t his_doc=tel-00625248
Exercice Générez le code ADL de ce composant
Exercice - réponse le code ADL
Exercice Analyze this diagram (semantics, errors, …)
Composite Create a new “Composite”project. Build a composite component, with : Outside: – 1 serveur interface SI – 2 client interface CI 1, CI 2 – A number of control (NF) interfaces Inside: – – 2 subcomponents One connected to SI Each connected to one client interface One binding between them Check its validity and produce the ADL
Exercice: Architecture 1. Build a VCE architecture diagram, for the Car 0 component, with its 3 subcomponents: a. b. Only the architecture (components, interfaces, bindings) in this first step. Respect the interface names. 2. Add a service interface accepting messages from the car driver. Name it “Driver”. 3. Check the diagram validity. DUT – le 31/01/2017
BFT 1. 2. 3. 4. 5. 6. 7. 8. 9. Go to the BFT project, create the VCE architecture diagram Validate the diagram… what is wrong? Complete the necessary elements until the diagram is valid. Add a new Server Interface named “Set F” to the BTF composite component. Go to the UML Class diagram, add an UML Interface , containing an operation named Set. F, with an input argument of type Nat. Type Attach this Interface to the “Set F” server interface. Do the same (add a server interface, attach UML interface) for the Master Primitive component Build the requested bindings… What is missing ? Check the Diagram Validity.
- Slides: 43