Plan Introduction La Programmation Orientée Aspect Utilisation de la POA dans le framework LargOnline Conclusion 1 er octobre 20086 èmes Journées Informatique.

Slides:



Advertisements
Présentations similaires
L’architecture .net et ASP.net
Advertisements

14 novembre 2002Julien CARSIQUE17 diapositives JAC Java Aspect Components Serveur dapplications Java Open-Source (LGPL) basé sur la Programmation Orientée.
Cours 5.3 : XML et les architectures N-tiers – Tier Présentation
Systèmes d’information
Page de garde C++ Le RTTI et les opérateurs de cast Maîtrise dinformatique Février 2002.
PHP 2° PARTIE : FONCTIONS ET FORMULAIRE
Programmation Orientée Aspect sur le Framework .net
Module : Pages Web Dynamiques (Production Électronique Avancée)
22 Romain VERDIER Architecte FastConnect Yann SCHWARTZ Architecte/plombier Polom.
Systèmes d ’ information Méthodologie et modélisation Marius Fieschi Faculté de Médecine de Marseille Octobre 2010.
JI Les systèmes d’autorisation et d’authentification dans AMI Fabian Lambert.
Plateforme de robotique
Question de gestion 13 : Le document peut-il être vecteur de coopération ? Le document : - Dématérialisation des documents - Partage, mutualisation, sécurisation.
Séminaire SoSySec 25 mars 2016page 1 Processus de développement de système contraint par des préconisations de sécurité d'un SI urbanisé Jacques Simonin.
Motiver les élèves avec des échéanciers automatisés et personnalisés AQIFGA 2015 Cette présentation de David Larochelle est mise à disposition sous licence.
Mediator 9 - Un outil de développement multimédia 3AC Techno/Informatique.
Design Patterns.  SIDAOUI Abdelfahem  
1 Conception et réalisation d’un banc d’expérimentation de positionnement à l’échelle micrométrique Soutenance de stage 30/06/2009 Le Breton Ronan Master.
Développement d’application avec base de données Semaine 3 : Modifications avec Entité Framework Automne 2015.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 10 Support de cours rédigé par Bernard COFFIN Université.
23-24 mai Sécurité Informatique et Collectivités Territoriales COTER CLUB BULL n Le groupe de travail n Objectifs –Mener une réflexion continue.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 5 Support de cours rédigé par Bernard COFFIN Université.
Les outils de tests 1 1 CHAKI Abderrazak - ETIENNE Jonathan - TOUMI Nacereddine - VACHER Nicolas.
UNIX AVANCE Yves PAGNOTTE – Janvier – QUELQUES RAPPELS SUR LES SYSTEMES D’EXPLOITATION 1.
1 Les bases de données Séance 7 Les fonctions avancées : Opérateurs ensemblistes, Sous-requêtes et transactions.
U6 : Parcours de professionnalisation Dimitri SANDRON Portfolio : dimitrisandron.fr Lundi 23 Mai 2016 – Lycée « La Martinière Duchère » - Lyon.
Opérations courantes Guillaume PHILIPPON. Sommaire Mise à jour des QWG Gestion des utilisateurs Ajout/Suppression d’un programme Préparation des « OS.
Applications distribuées Introduction Jean-Jacques LE COZ.
Chapitre 6 Gestion et analyse du système DNS Module S43 1.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 1 Support de cours rédigé par Bernard COFFIN Université.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 6 Support de cours rédigé par Bernard COFFIN Université.
FACTORY systemes Module 5 Page 5-1 Les outils clients Wonderware FORMATION InSQL 7.0.
1 Les logiciels en général sont classés en deux familles:  Logiciels de base  Logiciels d’applications (applications) 2.
Spécialisation covariante cours et TP. Plan  Introduction  Rappels théoriques  Définition de la covariance  Présentation du modèle servant d'exemple.
Les méthodes de tests Les grands principes pour réaliser des tests efficaces.
Formation « Administrateur ATRIUM ». 1.Un accompagnement technique par la Région Formation des « administrateurs » Support technique Evolution des fonctions.
Analyse des tâches en ergonomie
1 Adaptation Structurelle de Composants Logiciels Stage de DEA informatique effectué à L’ENSM-Douai Encadré par Mr. Abdelhak SERIAI & Mr. Mourad OUSSALAH.
UML : méthode Processus. Introduction(1) ● Cycles ● Spécification par cas d'utilisation ● Identifier les besoins ● Analyse par cas d'utilisation ● Affiner.
Introduction à la Programmation Orientée Objet H.GATI.
Préparation des études sur les premières données de l’expérience Atlas : reconstruction des leptons du boson Z° Anne Cournol Stage de Master 1, sciences.
Outil d’élaboration de progressions pédagogiques pour le cycle 4 Séminaire du 24 mars Nouveaux programmes de technologie au collège.
Pr é sentation du stage effectu é au LPNHE du 28 Mai au 29 Juin 2007 Participation à l'étude du quark top dans l'expérience ATLAS située sur le collisionneur.
Les sources du droit.
Supervision EC-Net AX Serveurs Web EC-BOS AX. ARCHITECTURE Les solutions EC-Net AX EC-Net AX Supervisor EC-Net AX EnerVue EC-Net AX Security  EC-Net.
1 Projet d'établissement Action 10.2 Créer un portail intranet dédié aux agents de l’Inrap Présentation des choix technologiques de l’Inrap.
Principes de l'orienté objet Jean-Jacques LE COZ.
Chapitre IV Architecture de VonNeumann. I/ Introduction John VonNeumann est un mathématicien d’origine Hongroise qui a participé au projet Manhattan.
1 A. Cornuéjols Introduction à l’intelligence artificielle Introduction à l’Intelligence Artificielle (Cours n°2) Recherche non informée dans les graphes.
Modes de Marches et d’Arrêts
Human Task Service (2008) Oscar Barrios et François Charoy Human Task Service Service de tâches dans un système de gestion de workflow Oscar Barrios
On the analysis of CMMN expressiveness: revisiting workflow patterns Renata Carvalho Hafedh Mili.
Les limites de l’UML Présenté par : Samah Dekhil 1.
Informatique 1A Langage C 6 ème séance 1. Objectifs de la séance 6  Allocation dynamique de mémoire  Application à la création de tableaux 2.
IFT359 – Programmation fonctionnelle Thème #8 Création de nouvelles formes syntaxiques 1.
Cours de Langage C Les structures
Introduction Depuis le début des sites web les urls sont utilisé pour la navigation. Avec l’arrivée des bases de données, les urls ont prit de l’importance.
Présenté par  Samira BELHORMA  Imane ZEHHAF. Introduction I. Définitions II. Quand et comment évaluer une compétence? III. Le contexte d’évaluation.
A9 – Utilisation de composants avec des vulnérabilités connues Présenté par Mikael Andries-Gounant.
Chapitre 9 Gestion des maîtres d'opérations
Universit é Mohamed Kheider de Biskra Facult é de science et technologie D é partement de g é nie é lectrique Sp é cialit é : t é l é communication Le.
INSCRIPTIONS SPORTIVES
Evolution du système Laser ATLAS Réunion CESPI 22 février 2007 François Vazeille Objet  Remplacement de deux éléments: (Information donnée au CESPI d’octobre.
Persistance en bases de données O.Legrand G. Seront.
© 2002 ISA–The Instrumentation, Systems, and Automation Society Apports de la norme ISA88 dans le cadre de la validation des systèmes de contrôle Jean.
Ingénieurs 2000, Université de Marne la vallée Programmation Orientée Aspect introduction Gérald Masquelier IR3 Groupe 2 Exposé de Système.
Développement d’applications interactives
7 Contraintes d’intégrité en SQL
Retour sur les interfaces
Transcription de la présentation:

Plan Introduction La Programmation Orientée Aspect Utilisation de la POA dans le framework LargOnline Conclusion 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAY

La Programmation Orientée Aspect Utilisation de la POA dans le framework LargOnline Conclusion Plan 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAY

Système Read Out Driver Electronique Frontale Archivage des données Filtrage des événements Construction des événements Système Read Out Buffer Détecteurs LEVEL 1 LEVEL 2 Pipeline Derandomizer 100 GOctets/s ~ GOctets/s ~ 100 MOctets/s 40 MHz 100 kHz ~ kHz 100 Hz Détecteur interne Calorimètres Détecteur à muon ~ 150 PCs ~ 100 PCs ~ 1600 PCs ~ 30 PCs Système en ligne ATLAS Architecture 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAY

Système Read Out Driver Electronique Frontale Archivage des données Filtrage des événements Construction des événements Système Read Out Buffer Détecteurs LEVEL 1 LEVEL 2 Pipeline Derandomizer 100 GOctets/s ~ GOctets/s ~ 100 MOctets/s 40 MHz 100 kHz ~ kHz 100 Hz Détecteur interne Calorimètres Détecteur à muon ~ 150 PCs ~ 100 PCs ~ 1600 PCs ~ 30 PCs Système en ligne ATLAS Architecture 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAY

Contrôleur de châssis ROD Synoptique Contrôleur de châssis ROD Configuration Plugins Module Composants de base Synchronisation Thread Aspect Traçage Monitoring VME Message IGUI Base de donnees Contrôle d’ exécution IPC/CORBA Traçage 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAY

Framework LargOnline 1 ere version en 2002 Language C++ Redesign en 2004 Thread (groupe/hiérarchie) Backtrace (gdb) Plugin (Chargement dynamique de classes) Design Pattern Observer Command State Singleton Parseur d’expression (Arbre binaire d’expression type évaluateur posfix) Réflexion (RTTI + macros) Auto-instrumentation avec pré/post insertion dynamique dans certaines méthodes (DAQ interface) 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAY

Introduction Utilisation de la POA dans le framework LargOnline Conclusion Plan 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAY

Dispersion de code (scattering code) Entrelacement de code (tangling code) Dégradation Lisibilité Compréhension Évolution Les limites de la POO Symptomes 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAY

Dispersion de code Exemple du serveur WEB Tomcat Appels centralisés: bonne modularité Appels non centralisés: mauvaise modularité XML parsing Loggin 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAY

1996 Projet du Xerox Alto Research Center Gregor Kiczales et son équipe La POA Origine 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAY

La POA Principe 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAY

Éviter la dispersion Le module n’invoque plus les services Les services se greffent sur le module Sans IoC X Y Avec IoC X Y > I La POA Inversion des dépendances (IoC) 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAY

Traçage Persistance (SGBD, File system) Intégrité de la transaction Identification/Authentification Cohérence des données Sécurité Intégrité Load-balancing etc. La POA Aspects techniques 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAY

Un tisseur d'aspects (aspect weaver) permet d'injecter le code nécessaire à l’insertion des aspects, à l'intérieur du code formant la base de l'application. Par intercepteurs (.NET, JBoss) Tissage statique (static weaving) : à la compilation de l’application Tissage dynamique (dynamic weaving) : à l’exécution du programme La POA Tisseur d’aspects 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAY

La POA Tisseur d’aspects Java : AspectJ AspectJ (statique) JAC JAC (dynamique) AspectWerkz AspectWerkz (statique/dynamique) C++ : AspectC++AspectC++ (statique).NET (C#, VB.NET...) : AspectDNGAspectDNG (statique) PostSharp PostSharp (statique) PHP : phpAspect phpAspect (statique) C : AspectC AspectC (statique) Caml : Aspectual Caml Aspectual Caml (statique) Python : Aspects Aspects (statique) Common Lisp : AspectL AspectL (statique) 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAY

La POA Terminologie Point de jonction, d’exécution (join point) «Est un endroit spécifique, dans le flot d'exécution du système.» Coupe ou point de coupure (pointcut) «Désigne un ensemble de points de jonction sur lequel le tisseur d'aspect insérera les greffons.» Expression de coupe «Est utilisée dans le but de définir une coupe. Elles définissent l'emplacement où le greffon est censé affecter le programme.» Greffon (code advice) «Est un bout de programme qui sera activé (avant et/ou après) lors de l'exécution d'un point de jonction défini par une coupe.» Aspect «Est un module définissant des coupes et des greffons.» 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAY V Y WX Z

Introduction La Programmation Orientée Aspect Conclusion Plan 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAY

Tisseur d’aspects dynamique Tissage et dé-tissage à exécution Ordonnancement d’aspects Introspection de points de jonction LArg Online Aspect Caractéristiques 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAY

LArg Online Aspect Caractéristiques 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAY Points de jonctions connus Insertion du tisseur lors de la phase de développement

> LArg Online Aspect Diagramme de classes 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAY

LArg Online Aspect Diagramme de séquence 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAY

LArg Online Aspect Synoptique du tisseur dynamique 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAY

// DAQ include #include // LargOnline include #include #ifndef __PROF_H__ #define __PROF_H__ //////////////////////////////////////////////////////////////////////// // Calculates the amount of time spent in routine //////////////////////////////////////////////////////////////////////// class Prof: public Larg::aop::Aspect, public OnlineObject { public: // Ctor explicit Prof (const std::string& name); // Dtor virtual ~Prof (); virtual bool AdviceBefore (const Larg::aop::OnlineJoinPoint* tjp); virtual bool AdviceAfter (const Larg::aop::OnlineJoinPoint* tjp); private: OWLTimer myTimer; }; #endif // __PROF_H__ // DAQ include #include // LargOnline include #include #ifndef __PROF_H__ #define __PROF_H__ //////////////////////////////////////////////////////////////////////// // Calculates the amount of time spent in routine //////////////////////////////////////////////////////////////////////// class Prof: public Larg::aop::Aspect, public OnlineObject { public: // Ctor explicit Prof (const std::string& name); // Dtor virtual ~Prof (); virtual bool AdviceBefore (const Larg::aop::OnlineJoinPoint* tjp); virtual bool AdviceAfter (const Larg::aop::OnlineJoinPoint* tjp); private: OWLTimer myTimer; }; #endif // __PROF_H__ 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAY LArg Online Aspect Exemple

LArg Online Aspect Plugin 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAY

before after around order ( ) Modificateurs % …::% (…) % …:: (…) % ::% (…) % :: (…) % ::% …::% (…) % :: ::% (…) % :: :: (…) Patterns class ( ) derived ( ) object ( ) Types || && ! Opérateurs logiques LArg Online Aspect Syntaxe des expressions de coupe 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAY after class (% …::% (…)) before class (%…::Init (…)) around derived (% Larg::%…::% (…)) before object (ROD_01) && object (ROD_14) order (1) after class (% …::% (…)) before class (%…::Init (…)) around derived (% Larg::%…::% (…)) before object (ROD_01) && object (ROD_14) order (1)

Introduction La Programmation Orientée Aspect Utilisation de la POA dans le framework LargOnline Plan 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAY

Conclusion La Programmation Orientée Aspect est complémentaire à la Programmation Orientée Objet Plusieurs types d’aspects écrits et utilisés (debugging, profiling, point de rendez-vous et adaptateur) Dans l’ avenir peut-être mixer tissage statique (AspectC++) et dynamique. On commence à voir (sphère académique) appliquer la POA à des niveaux supérieurs (composants, ADL) 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAYFatih Bellachia

01/06/201629

Un objet client ne peut être supprimé s’il n’a pas honoré toutes ses commandes. Cas Ni l'objet commande, ni l'objet client ne peuvent effectuer cette opération car ce n'est pas de leur responsabilité. Il ne serait pas logique de demander à une commande de supprimer un client, ni à un client de vérifier qu'une commande est en cours (un objet client ne doit pas contenir de commandes si nous voulons garder la logique objet du programme). Problème Fonctionnalités transverses Exemple de contrainte d’intégrité référentielle 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAYFatih Bellachia

Identifier les préoccupations métier (classes) et techniques (aspects) Implémenter chaque préoccupation séparément Tisser les différentes préoccupations La POA Étapes d’un développement POA 1 er octobre èmes Journées Informatique IN2P3-IRFU - OBERNAYFatih Bellachia