La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Slide: 1 Représentation efficace des données dans un intergiciel schizophrène Thomas Quinot Séminaire Performance et Généricité LRDE, 5 novembre 2008 Senior.

Présentations similaires


Présentation au sujet: "Slide: 1 Représentation efficace des données dans un intergiciel schizophrène Thomas Quinot Séminaire Performance et Généricité LRDE, 5 novembre 2008 Senior."— Transcription de la présentation:

1 Slide: 1 Représentation efficace des données dans un intergiciel schizophrène Thomas Quinot Séminaire Performance et Généricité LRDE, 5 novembre 2008 Senior software engineer, AdaCore

2 Slide: 2 Plan Contexte –Larchitecture dintergiciel schizophrène –Représentation neutre des interactions Any, un conteneur universel typé –Structure dAny –Fonction de représentation Shadow Any, un accesseur structuré universel –Parcours pertinents dans la structure dAny –Définition dune structure propre à les fournir à moindre coût Mise en œuvre –Shadow Any dans PolyORB/CORBA –Performances Extensions –(Dé)Sérialisation bypass –Application à dautres modèles de répartition (DSA) Conclusion

3 Slide: 3 Intergiciel schizophrène : Exigences Intergiciel pour systèmes temps réel répartis comme COTS –Réduire le coût et le risque derreurs Exigences industrielles : –Domaines : avionique, espace, transport –Familles : sûreté, déterminisme, intégrité Lintergiciel pour STRR doit sadapter : –Choix de protocoles, politiques de qualité de service & de sécurité –Ressources disponibles vs sémantique souhaitée : concurrence, ordonnancement, empreinte mémoire… –Normes : RT-CORBA, DDS –Extensions : Résistance aux défaillances, haute intégrité, etc. Comment concentrer lexpertise sur une plate-forme dintergiciel Tout en prenant en compte de nouvelles exigences & normes ?

4 Slide: 4 Crise de lintergiciel Exigences contradictoires sur lintergiciel, élément clé de linteraction Configuration : –Adaptation à larchitecture cible Genericité : –Adaptation du modèle de répartition aux besoins de lapplication Interoperabilité entre modèles de répartition –Paradoxe de lintergiciel –Prise en compte des composants applicatifs hérités –Intégration des systèmes dinformation Élaboration de la confiance dans lintergiciel –Vérification formelle de la mise en oeuvre –Propriétés comportementales, métriques, consommation de ressources… Quality of Service : les termes à la mode –Temps réel, résistance aux défaillances, rapidité

5 Slide: 5 Intergiciel configurable Exigence : Pouvoir contrôler le comportement de certaines fonctions Aspects concernés : –Paramétrage découplé des composants de lintergiciel –Canaux de communication –Adaptation aux ressources et aux fonctionnalités de la plateforme dexécution –Choix des fonctionnalités nécessaires pour lapplication Solutions : –Composants configurables –Agencement faiblement couplé par patrons de conceptions et frameworks –Pour chaque composant… –… choix dune mise en œuvre adaptée –… agencement par Strategy, Abstract factory… Exemple existant : –TAO –Spécialisé pour un modèle de répartition (CORBA) –Efficace mais conception complexe Objectif : offrir une flexibilité comparable

6 Slide: 6 Intergiciel générique Exigence : Pouvoir décliner une boîte à outils selon les paradigmes de multiples modèles de répartition Aspects concernés : –Paramétrage de lassemblage de composants –Choix des concrétisations de composants –Définition des fonctionnalités partagées Solutions : –Intergiciels génériques = factorisation de code –Personnalités = instances dintergiciel générique Exemples existants : –Jonathan/Quarterware –Frameworks pour la construction dintergiciels –Factorisation limitée (10-25%) Objectif : augmenter la factorisation de code

7 Slide: 7 Intergiciel interopérable Exigence : interopérabilité entre modèles de répartition (DSA, CORBA) Aspects concernés : –Communication M2M (Middleware 2 Middleware) Solutions : –Passerelles / mandataires –Coûteux, difficultés de maintenance et de passage à léchelle –Usage de protocoles communs (par ex. web services) –Contrainte qui limite lintégration de lexistant Exemples existants –Peu nombreux –CorbaWeb –Interoperabilié CORBA / web services Objectif : offrir une solution efficace et unifiée

8 Slide: 8 Intergiciel sûr Exigence : lutilisation dun intergiciel ne remet pas en cause le déterminisme de lapplication Aspects concernés : –Vérification de la correction de lintergiciel Solutions: –Description formelle de lintergiciel –Tests –Preuve de propriétés comportementales Pas dexemples existants Objectif : fournir un intergiciel formellement vérifié pour les systèmes critiques

9 Slide: 9 PolyORB: un intergiciel schizophrène Logiciel libre Projet de recherche ENST / LIP6 –Premières versions beta en 2001 –Portable vers toutes les cibles où GNAT est supporté Industrialisation par AdaCore Plus de 8 ans de développement, 205 kSLOCs ( ) Membre du consortium ObjectWeb PolyORB publié par AdaCore en 2009 avec GNAT Pro –Personnalités supportées : CORBA, DSA, IIOP –Personnalités additionnelles : MIOP, SOAP, MOMA, AWS –Travaux de recherche : DDS, TDMA –Nouvelles fonctionnalités : Service de mémoire partagée répartie, améliorations de performances

10 Slide: 10 Personnalités cohabitantes et coopérantes Réunion de deux approches architecturales : 1.Généricité –Architecture unifiée –Composants génériques, interfaces abstraites 2.Personnalités –Instanciation dun intergiciel générique pour un modèle de répartition donné –Créé à partir dun ensemble restreint de composants réutilisables ou spécifiques Couche neutre Coeur dintergiciel CORBA (OOR) DSA (RPC) AWS (WEB) MOMA (MOM) Personnalités applicatives SOAP (XML)IIOP (TCP) DIOP (UDP) MIOP (multicast) Personnalités protocolaires

11 Slide: 11 Intergiciel schizophrène : une analogie Couche neutre –« Cœur » de PolyORB Similaire au langage intermédiaire dun compilateur –Personnalités = front-ends et back-ends Utilisation de patrons de conception pour la configurabilité –Configuration afin de satisfaire les exigences de lapplication –Par exemple support de modèles de parallélisme : sans tâches, parallélisme déterministe (Ravenscar), parallélisme libre La couche neutre fournit les sept fonctions fondamentages : –Adressage, liaison, représentation, protocole, transport, activation, exécution –Sujet de la vérification formelle Couche neutre = langage intermédiaire Perso. applicative = Front-end Perso. protocolaire = Back-end

12 Slide: 12 Voyage au coeur dun intergiciel schizophrène Généricité dans PolyORB => vue canonique des fonctions de lintergiciel Setp fonctions coordonnées par le « µBroker » –Composants annexes: dictionnaires, queues, filtres –Indépendant des modèles de répartition µBroker, intergiciel local –Alloue des ressources dexécution pour traiter les événements générés par lapplication ou lextérieur, ordonnance les traitements, aiguille les requêtes, contrôle létat global de lintergiciel Network

13 Slide: 13 Neutral Core Middleware Intergiciel schizophrène en action coding Representation access pt Transport surrogate Binding Hello Client Hello Server servant Activation Reference Addressing App. code Execution SOAP DSA CORBA network request receiving & analysis request Protocol

14 Slide: 14 Représentation neutre des requêtes et des données Représente complètement une interaction entre composants applicatifs Contient : –Nom de lopérations –Paramètres sous forme dune liste de NamedValues –Any (conteneur universel typé) –Nom –Direction (in/out/in out) –Au retour : –Valeur renvoyée (Any) –Exception (Any) Fonction de représentation : –Dans la personnalité protocolaire –Conversion entre la forme neutre et une forme transmissible

15 Slide: 15 Structure dAny Conteneur universel typé, avec comptage de références Inspiré de la DII CORBA Smart pointer désignant un Any_Contents Any_Contents : type abstrait –TypeCode –Pointeur vers la donnée stockée Any_Contents dérivés –Un pour chaque type élémentaire –Any_Content_Aggregate pour les types composites

16 Slide: 16 Construction naïve dAny Exemple : séquence de structures Agrégat Elém Agrégat Elém Agrégat Elém

17 Slide: 17 Sérialisation Parcours en profondeur dabord Piloté par les TypeCodes à chaque nœud de larbre Agrégat Elém Agrégat Elém Agrégat Elém Séq (3) Struct El 3BVRBVRBVR Elém El Elém El

18 Slide: 18 Désérialisation A partir du TypeCode (connu à lavance) Et des données sérialisées Reconstruction de larbre Puis de la structure de données originale 3BVRBVRBVR Agrégat Elém Agrégat Elém Agrégat Elém Séq Struct El Elém El Elém El

19 Slide: 19 Inconvénients Structures allouées dynamiquement Comptage de références –Donc verrouillage Copie complète des données Nombreuses petites allocations Construction complexe Coûteuse en temps Coûteuse en espace

20 Slide: 20 Parcours dans les structures dAny Pour les opérations de –Sérialisation –Désérialisation … larbre est toujours parcouru en profondeur dabord Pas de traitements globaux de larbre : une vue locale est suffisante

21 Slide: 21 Shadow Any Remplace lagrégat générique par un type spécifique Façade adossé à la donnée stockée réelle MaSéqStruct

22 Slide: 22 Parcours dans un Shadow Any (sérialisation) Façades des composants créées au vol, sur la pile MaStruct Elém MaSéqStruct MaStruct Elém MaStruct Elém

23 Slide: 23 Parcours dun Shadow Any (désérialisation) Structure, tableau : comme pour la sérialisation Séquences, unions : types à discriminants / bornes –Désérialisation des discriminants ou bornes, stockage intermédaire dans la façade Shadow Any –Allocation de lobjet contraint –Puis parcours usuel

24 Slide: 24 Shadow Any dans PolyORB/CORBA Type abstrait Aggregate_Content Type concret générique Types concrets spécifiques générés par IAC –Wrap function Wrap (X : access T) return Any_ContentClass Création dun contenu étranger (allocation gérée par le client) –{Get,Set}_Aggregate_Count –{Get,Set}_Aggregate_Element –By_Reference : Demande dune façade pour mise à jour –By_Value : Demande dune façade pour lecture –Au retour, si By_Value, lappelant doit utiliser Set_Aggregate_Element pour mettre à jour (cas dun discriminant ou dune borne) La durée de vie de lAny doit être >= celle de la donnée –Nécessité de cloner dans le cas dun appel asynchrone –Mais le clonage reste plus efficace que dans le cas dun arbre dAny ordinaires

25 Slide: 25 Tests de performances : jeu de test Tests basés sur une séquence de structures complexes … issue de code industriel réel (gestion des flots de trafic aérien) RFPD Summary RFPD ID FPD ID Creation time Period of operation ADEXP title StatusRFPD Key Days of week LunMarMerJeuVenSamDim ADEPValid fromADESValid untilEOBTAircraft ID AOAAORO Archive time 21 champs élémentaires 25 nœuds … x structures

26 Slide: 26 Tests de performances : résultats Aller-retour de structures Communication locale sur x86-linux (monoprocesseur) –Sans Shadow Any : 9,80 s –Avec Shadow Any : 4,53 s –Gain de temps : 53 % Contrepartie : taille du code généré

27 Slide: 27 Améliorations futures Sérialisation / désérialisation bypass –Lorsque la représentation native est connue pour être conforme à la représentation réseau : –Possibilité de sérialiser / désérialiser par copie directe (car le shadow any connaît lemplacement mémoire de la structure de données) –Suppose un moyen de faire passer linformation de représentation à travers la couche neutre –Peut bénéficier de lassistance du générateur de code (production de clauses de représentation) Application à dautres personnalités de répartition –Support à lexécution implémenté dans la couche neutre de PolyORB –Génération de code spécifique des personnalités applicatives –Réalisée pour CORBA (IDLAC, IAC) –A implémenter pour DSA (GNAT)

28 Slide: 28 Conclusion Pour les besoins de la fonction de représentation dun intergiciel schizophrène : Le remplacement dun conteneur universel de données par un accesseur univesel Permet un gain significatif de performance. Implémenté dans un produit industriel, PolyORB Justiciable daméliorations futures : –Extension à dautres personnalités applicatives –Sérialisation bypass (actuellement pour les séquences de types élémentaires)


Télécharger ppt "Slide: 1 Représentation efficace des données dans un intergiciel schizophrène Thomas Quinot Séminaire Performance et Généricité LRDE, 5 novembre 2008 Senior."

Présentations similaires


Annonces Google