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

Juan Carlos Ruiz García

Présentations similaires


Présentation au sujet: "Juan Carlos Ruiz García"— Transcription de la présentation:

1 Juan Carlos Ruiz García
Contribution à la validation des systèmes réflexifs tolérants aux fautes : stratégie de test de protocoles à métaobjets Juan Carlos Ruiz García Tolérance aux fautes et Sûreté de Fonctionnement informatique

2 Contexte Systèmes TaF à base de MOPs Technologie à objets
Technologie réflexive Sûreté de fonctionnement Solutions à protocole à métaobjets (MOP) Tolérance aux Fautes (TaF) Systèmes TaF à base de MOPs

3 Contexte Systèmes TaF à base de MOPs Technologie à objets
Technologie réflexive Sûreté de fonctionnement Solutions à protocole à métaobjets (MOP) Tolérance aux Fautes (TaF) Vérification Test Systèmes TaF à base de MOPs

4 Systèmes à base de MOPs « Un système réflexif a la capacité d’observer et contrôler son propre comportement, état et/ou structure »

5 Systèmes à base de MOPs « Un système réflexif a la capacité d’observer et contrôler son propre comportement, état et/ou structure » Métaniveau observation, interprétation, contrôle Niveau de base Comportement, structure et état du système

6 observation, interprétation, contrôle
Systèmes à base de MOPs « Un système réflexif a la capacité d’observer et contrôler son propre comportement, état et/ou structure » Métaniveau observation, interprétation, contrôle Métamodèle (modèle du niveau de base) comportement état/structure Niveau de base Comportement, structure et état du système

7 Systèmes à base de MOPs « Un système réflexif a la capacité d’observer et contrôler son propre comportement, état et/ou structure » Métaobjets (entités du métaniveau) Mécanismes non-fonctionnels (Tolérance aux Fautes) Réification (observation comportement) Introspection (observation structure/état) Protocole à métaobjets (MOP) Intercession (contrôle comportement) (contrôle structure/état) Objets (entités du niveau de base) Mécanismes fonctionnels

8 Systèmes à base de MOPs - Notre cible de test -
Métaobjets (entités du métaniveau) Mécanismes non-fonctionnels (Tolérance aux Fautes) Réification (observation comportement) Introspection (observation structure/état) Protocole à métaobjets (MOP) Intercession (contrôle comportement) (contrôle structure/état) Objets (entités du niveau de base) Mécanismes fonctionnels

9 Systèmes TaF à base de MOPs
Exemple: Augmentation de la disponibilité d’un serveur par réplication passive métaobjet métaobjet 1. Invocation méthode service réplique primaire réplique de secours client Site 1 Site 2 Site 3

10 Systèmes TaF à base de MOPs
Exemple: Augmentation de la disponibilité d’un serveur par réplication passive 2. Réification métaobjet métaobjet 1. Invocation méthode service réplique de secours client réplique primaire Site 1 Site 2 Site 3

11 Systèmes TaF à base de MOPs
Exemple: Augmentation de la disponibilité d’un serveur par réplication passive 2. Réification métaobjet métaobjet 3. Intercession comportementale 4. Introspection 1. Invocation méthode service réplique de secours client réplique primaire Site 1 Site 2 Site 3

12 Systèmes TaF à base de MOPs
Exemple: Augmentation de la disponibilité d’un serveur par réplication passive 5. État observé métacontrol 2. Réification métaobjet métaobjet 3. Intercession comportementale 6. Intercession structurelle 4. Introspection 1. Invocation méthode service réplique primaire réplique de secours client Site 1 Site 2 Site 3

13 Plan État de l’art et problématique Stratégie de test
Case study : the FRIENDS MOP Expériences et résultats Bilan, conclusions et perspectives

14 Plan État de l’art et problématique Stratégie de test
Case study : the FRIENDS MOP Expériences et résultats Bilan, conclusions et perspectives

15 Test de conformité ! MOP spécification du MOP (cible du test) OK
entrées de test MOP (cible du test) moniteur de test oracle vérifications de conformité sorties attendues sorties observées spécification du MOP ! OK

16 Test de conformité ! MOP spécification du MOP métaobjet
entrées de test MOP (cible du test) moniteur de test objet oracle vérifications de conformité sorties attendues sorties observées spécification du MOP ! OK

17 État de l’art Vérification de MOPs :
Modèle WRIGTH  MOP  connecteur entre objets  Le MOP inclut le métaniveau Modèle -calcul  MOP  connecteur entre objets et métaobjets Le MOP doit respecter des propriétés qui peuvent (et doivent) être vérifiées indépendamment du niveau de base et du métaniveau considérés. Pas de travaux sur le test des MOPs ! MOP

18 État de l’art Vérification de MOPs :
Modèle WRIGTH  MOP  connecteur entre objets  Le MOP inclut le métaniveau Modèle -calcul  MOP  connecteur entre objets et métaobjets Le MOP doit respecter des propriétés qui peuvent (et doivent) être vérifiées indépendamment du niveau de base et du métaniveau considérés. Pas de travaux sur le test des MOPs ! MOP

19 Problématique Test de protocoles à métaobjets : Méthodes Outils
Test OO Test de Protocoles Test Syst. réflexifs Quelles étapes de test à envisager ? Quels objectifs à couvrir dans chaque étape ? Quels environnements de test ?

20 Plan État de l’art et problématique Stratégie de test
Case study : the FRIENDS MOP Expériences et résultats Bilan, conclusions et perspectives

21 Plan État de l’art et problématique Stratégie de test Modèle de MOP
Ordre de test Objectifs et Environnements de test

22 MOP pour la TaF MAUD [Agha 93], GARF [Garbinato 95], FRIENDS [Pérennou 97], [Killijian 00]
Observation Métaobjet Contrôle Interception (Reification) création destruction interactions entre objets (entrantes et sortantes) Obtention de l’état (Introspection) Consultation du lien objet/métaobjet Activation (Intercession comportementale) création destruction interactions entre objets Mise à jour de l’état (Intercession structurelle) Modification du lien objet/métaobjet Objet

23 MOP pour la TaF MAUD [Agha 93], GARF [Garbinato 95], FRIENDS [Pérennou 97], [Killijian 00]
Observation Métaobjet Contrôle Interception (Reification) création destruction interactions entre objets (entrantes et sortantes) Obtention de l’état (Introspection) Consultation du lien objet/métaobjet Activation (Intercession comportementale) création destruction interactions entre objets Mise à jour de l’état (Intercession structurelle) Modification du lien objet/métaobjet Objet

24 Systèmes TaF à base de MOPs
Exemple: Augmentation de la disponibilité d’un serveur par réplication passive 5. État observé métacontrol 2. Réification métaobjet métaobjet 3. Intercession comportementale 6. Intercession structurelle 4. Introspection 1. Invocation méthode service client réplique primaire réplique de secours Site 1 Site 2 Site 3

25 intercession comportementale intercession structurelle
Modèle de MOP réification métacontrol métaobjet métaobjet conteneur d’invocation conteneur d’état intercession comportementale introspection intercession structurelle service client comportement état/structure objet serveur

26 intercession comportementale intercession structurelle
Modèle de MOP réification métacontrol métaobjet métaobjet conteneur d’invocation conteneur d’état intercession comportementale introspection intercession structurelle service client comportement état/structure objet serveur

27 intercession comportementale intercession structurelle
Modèle de MOP réification métacontrol métaobjet métaobjet conteneur d’invocation Quel ordre de test ? conteneur d’état intercession comportementale introspection intercession structurelle service client comportement état/structure objet serveur

28 Ordre de Test But : « Réduction de l’effort global de test »
Ordre de test systématique et incrémental Réutilisation de mécanismes réflexifs

29 Ordre de test - Étape 1 - métaobjet client objet serveur service
réification métaobjet conteneur d’invocation service client objet serveur

30 intercession comportementale
Ordre de test - Étape 2 - réification métaobjet conteneur d’invocation intercession comportementale service client comportement objet serveur

31 intercession comportementale
Ordre de test - Étape 3 - réification métacontrol métaobjet métaobjet conteneur d’invocation conteneur d’état intercession comportementale introspection service client comportement état/structure objet serveur

32 intercession comportementale intercession structurelle
Ordre de test - Étape 4 - réification métacontrol métaobjet métaobjet conteneur d’invocation conteneur d’état intercession comportementale introspection intercession structurelle service client comportement état/structure objet serveur

33 Ordre de Test 0. Création du lien d’interaction Réification
Intercession comportementale Introspection Intercession structurelle Destruction du lien d’interaction

34 Ordre de Test Création du lien d’interaction Réification
Intercession comportementale Introspection Intercession structurelle Destruction du lien d’interaction

35 Ordre de Test Création du lien d’interaction Réification
Intercession comportementale Introspection Intercession structurelle Destruction du lien d’interaction Étape Spécifique Étapes Générales Étape Spécifique

36 Ordre de Test Création du lien d’interaction Réification
Intercession comportementale Introspection Intercession structurelle Destruction du lien d’interaction Étape Spécifique Étapes Générales Étape Spécifique

37 Étape 1 Réification Objectifs de test
serveur client métaobjet Objectifs de test Complétude – Toute interaction entre objets doit être systématiquement réifiée au métaniveau. Cohérence – Les informations réifiées doivent représenter correctement l’interaction réifiée.

38 InvocationExecutéeNonRéifiée
Étape 1 Réification serveur client métaobjet Génération aléatoire des valeurs de sortie 3 4 < méthode réifiée, paramètres d’entrée réifiés, paramètres de sortie générées > métaobjet oracle exécution de méthode 1 2 méthode InvocationExecutéeNonRéifiée 5 6 7 Comparaison 8 < méthode invoquée, paramètres d’entrée, paramètres de sortie > retour réification objet serveur moniteur service réification

39 Étape 2 Intercession comp.
métaobjet serveur client Objectifs de test Complétude – Toute méthode réifiée doit être activable à l’aide des mécanismes d’intercession comportementale. Cohérence – Les mécanismes d’intercession doivent déclencher l’exécution de la méthode demandée. Encapsulation – L’activité interne de l’objet ne doit pas être réifiée.

40 Étape 2 Intercession comp.
métaobjet serveur client oracle métaobjet Comparaison < méthode invoquée, paramètres d’entrée, paramètres de sortie > retour 7 10 11 12 9 8 Les méthodes réifiées sont appliquées sur l’objet Les paramètres de sortie sont retournés au moniteur Les méthodes réifiées sont appliquées sur l’objet Les paramètres de sortie sont retournés au moniteur 1 méthode 3 2 réification 4 méthode 5 6 < Trace d’exécution > intercession moniteur service comportement serveur

41 Étape 3 Introspection Objectifs de test
métaobjet serveur client Objectifs de test Complétude – L’ensemble de l’état de l’objet doit être observé. Cohérence – Les valeurs observées doivent être les valeurs courantes des attributs de l’objet.

42 Étape 3 Introspection 2 3 1 4 5 6 7 8 9 Métaobjet moniteur réification
serveur client 2 3 1 4 5 état d’initialisation Métaobjet moniteur L’état «introspecté», est-il cohérent avec celui d’initialisation? 6 7 8 9 état d’introspection réification métacontrôle intercession comportementale introspection service comportement état/structure oracle objet serveur

43 Étape 4 Intercession struct.
métaobjet serveur client Objectifs de test Complétude – L’ensemble de l’état de l’objet doit pouvoir être mis à jour depuis le métaobjet. Cohérence – Les valeurs de mise à jour utilisées doivent être celles fournies par le métaobjet.

44 Étape 4 Intercession struct.
métaobjet serveur client 2 1 Initialisation de l’état de l’objet 3 4 état initialisation Métaobjet moniteur réification métacontrôle intercession comportementale introspection intercession structurelle service comportement état/structure oracle objet serveur

45 Étape 4 Intercession struct.
métaobjet serveur client 2,6 1,5 Modification de l’état de l’objet 3,7 Métaobjet L’état résultant de l’intercession, est-il cohérent avec celui d’initialisation? 10 état intercession 11 9 moniteur réification métacontrôle état initialisation 8 intercession comportementale introspection intercession structurelle service comportement état/structure oracle objet serveur

46 Ordre de Test Création du lien d’interaction Réification
Intercession comportementale Introspection Intercession structurelle Destruction du lien d’interaction Étape Spécifique Étapes Générales Étape Spécifique

47 Ordre de Test Création du lien d’interaction Réification
Intercession comportementale Introspection Intercession structurelle Destruction du lien d’interaction Étape Spécifique Étapes Générales Étape Spécifique

48 Plan État de l’art et problématique Stratégie de test
Case study : the FRIENDS MOP Expériences et résultats Bilan, conclusions et perspectives

49 Plan État de l’art et problématique Stratégie de test
Case study : the FRIENDS MOP Expériences et résultats Bilan, conclusions et prospectives MOP implementation and architecture Testing the MOP generation / instantiation / destruction

50 The FRIENDS MOP Testing the metaprogram
A MOP for the development of fault-tolerant CORBA applications source code analysis and transformation Metaprogram (MOP implementation) MOP instance CORBA service implementation MOP programmer Open Compiler (compile-time reflection) Application programmer Testing the metaprogram CORBA service implementation CORBA metaobject CORBA object MOP instance instantiation CORBA-oriented FT-mechanism Fault tolerance programmer

51 CORBA service implementation
A CORBA application CORBA service implementation server stub client Service interobject communications site 1 site 2

52 A FRIENDS CORBA application
server stub client Service MetaStub MetaServer ReifiedStub metastub metaserver MOFactory ReifiedServer intermetaobject communications ORB OFactory site 1 site 2 MOP instance CORBA service implementation CORBA-oriented FT-mechanism Testing the creation and destruction of the O-MO interaction link

53 Test Order MOP generation (testing the metaprogram)
MOP instantiation (O-MO link creation) Reification Behavioral intercession Introspection Structural intercession MOP destruction (O-MO link destruction) Specific Step Specific Step

54 Test Order MOP generation (testing the metaprogram)
MOP instantiation (O-MO link creation) Reification Behavioral intercession Introspection Structural intercession MOP destruction (O-MO link destruction) MOP generation (testing the metaprogram) Specific Step Specific Step

55 Testing the metaprogram
Metaprogram : set of code analysis and transformation rules Code filtering rules Error messages server code Open Compiler (OpenC++) non-reflective code stub code

56 Testing the metaprogram
Metaprogram : set of code analysis and transformation rules Code filtering rules Data container generation rules Error messages server code CORBA Interface Repository Open Compiler (OpenC++) non-reflective code stub code

57 Testing the metaprogram
Metaprogram : set of code analysis and transformation rules Code filtering rules Data container generation rules Reflective code generation rules Error messages server code CORBA Interface Repository Open Compiler (OpenC++) non-reflective code server code MOP stub code stub code MOP reflective code

58 Reflective code generation rules
metaprogram behavioral reflection Code for reification & behavioral intercession structural reflection Code for saving & restoring object states objet-metaobjet link Code for handling the objet-metaobjet link classes with different method signatures classes with different types of attributes 2 3 1 classes with methods & attributes Open compiler code MOP 4 Oracle 5 Does the generated code conform to the code specified for the MOP?

59 Reflective code generation rules - Oracle verifications -
metaprogram class a{ public: int foo(){ // foo’s body } private: int foo2() { //foo2’s body }; behavioral reflection Implemented using method wrapping class a{ public: int foo(){ //reification code } int Wrapped_foo(){ // foo’s body int Execute_fooBody(){ return Wrapped_foo() private: int foo2() { //foo2’s body }; Oracle Does the generated code conform to the code specified for the MOP?

60 Reflective code generation rules - Oracle verifications -
metaprogram class a{ public: int foo(){ // foo’s body } private: int foo2() { //foo2’s body }; behavioral reflection Implemented using method wrapping class a{ public: int foo(){ //reification code } int Wrapped_foo(){ // foo’s body int Execute_fooBody(){ return Wrapped_foo() private: int foo2() { //foo2’s body }; Oracle Does the generated code conform to the code specified for the MOP?

61 Reflective code generation rules - Oracle verifications -
metaprogram class a{ public: int foo(){ // foo’s body } private: int foo2() { //foo2’s body }; behavioral reflection Implemented using method wrapping class a{ public: int foo(){ //reification code } int Wrapped_foo(){ // foo’s body int Execute_fooBody(){ return Wrapped_foo() private: int foo2() { //foo2’s body }; Oracle Does the generated code conform to the code specified for the MOP?

62 Test Order MOP generation (testing the metaprogram)
MOP instantiation (O-MO link creation) Reification Behavioral intercession Introspection Structural intercession MOP destruction (O-MO link destruction) Specific Step Specific Step

63 Test Order MOP generation (testing the metaprogram)
MOP instantiation (O-MO link creation) Reification Behavioral intercession Introspection Structural intercession MOP destruction (O-MO link destruction) Specific Step MOP instantiation (O-MO link creation) Specific Step

64 MOP instantiation Test goals
Unicity – Each object must be linked to one and only one metaobject. Interaction – Objects and metaobjects can only interact if their respective identifiers are correctly exchanged during the instantiation process.

65 MOP instantiation 6 7 8 3 4 5 1 2 oracle test driver MOFactory
<object, metaobject> <object’, metaobject’> 3 4 5 metaobject oracle MOFactory 1 Service 2 object OFactory test driver

66 Plan État de l’art et problématique Stratégie de test
Case study : the FRIENDS MOP Expériences et résultats Bilan, conclusions et perspectives

67 Vue fonctionnelle du banc de test
outillage de génération de code classes d’entrée Test du métaprogramme Règles de filtrage de code Règles de génération des conteneurs Règles de génération des mécanismes réflexifs outillage d’analyse de code Création du lien d’interaction du MOP Test des mécanismes du MOP mise en œuvre des environnements de test Destruction du lien d’interaction Réification Intercession comportementale Introspection Intercession structurelle

68 référentiel d’interfaces
Banc de Test stub squelette interface IDL implémentation du serveur compilateur IDL testeur référentiel d’interfaces CORBA implémentation réflexive d’un objet CORBA conteneurs d’invocation et d’état compilateur standard (C++) serveur réflexif mandataire réflexif Métaprogramme FRIENDS

69 Banc de Test Paramètres pour la génération d’implémentations d’objets CORBA générateur d’objets CORBA interface IDL testeur compilateur IDL implémentation du serveur outillage pour le test du métaprogramme stub squelette référentiel d’interfaces CORBA conteneurs d’invocation et d’état Métaprogramme FRIENDS oracle métaobjet implémentation réflexive d’un objet CORBA serveur réflexif moniteur de test objet compilateur standard (C++) mandataire réflexif environnements de test

70 Moniteur de test générique
référentiel d’interfaces CORBA description de l’interface du serveur description de l’opération à invoquer Interface IDL du Moniteur interface Universal_Driver{ RetValue Invoke( in string serviceName, in string operationName, inout ListOfArguments arguments) raises (DriverException); }; générateur de valeurs aléatoires valeur type argument 1 argument 2 argument n référence de l’objet description de l’opération valeur de retour Universal_Driver Création dynamique de requêtes CORBA (interface DII) Interopérabilité langage-plate-forme Composant réutilisable dans d’autres contextes service de noms nom du service référence CORBA

71 Cas de test (1) Réification et Intercession comportementale
Types Simples: long, short, … chaînes de caractères, références CORBA classes Type complexes: structures, tableaux séquences Interface vide Méthode sans arguments Pour chaque type considéré ( T ) : Variation du mode de passage Variation du nombre d’arguments Variation du niveau d’encapsulation Héritage de méthodes Cas précédant avec plusieurs types en même temps Cas de Test

72 Cas de test (1) Réification et Intercession comportementale
Types Simples: long, short, … chaînes de caractères, références CORBA classes Type complexes: structures, tableaux séquences Interface vide Méthode sans arguments Pour chaque type considéré ( T ) : Variation du mode de passage Variation du nombre d’arguments Variation du niveau d’encapsulation Héritage de méthodes Cas précédant avec plusieurs types en même temps Cas de Test Variation du mode de passage interface shortParameters{ short shortReturn(); void shortIn(in short arg); void shortOut(out short arg); void shortInOut(inout short arg); };

73 Cas de test (2) Introspection et Intercession structurelle Cas de Test
Types Simples: long, short, … chaînes de caractères, références CORBA classes Type complexes: structures, tableaux séquences Interface vide Pour chaque type considéré ( T ) : Un attribut dans une classe Plusieurs attributs par classe Héritage Association / Agrégation Cas précédant avec plusieurs types en même temps Cas de Test

74 Cas de test (2) Introspection et Intercession structurelle Cas de Test
Types Simples: long, short, … chaînes de caractères, références CORBA classes Type complexes: structures, tableaux séquences Interface vide Pour chaque type considéré ( T ) : Un attribut dans une classe Plusieurs attributs par classe Héritage Association / Agrégation Cas précédant avec plusieurs types en même temps Cas de Test Héritage interface shortAtt{ attribute short shortAtt1; }; interface longAtt : shortAtt{ attribute long longAtt1;

75 Génération des cas de test
Méthode de génération aléatoire probabiliste : test statistique 532 serveurs différents 189 interfaces pour le test des mécanismes de réification et d’intercession comportementale 197 interfaces pour le test des mécanismes d’introspection et d’intercession structurelle 156 interfaces contenant à la fois des méthodes et des attributs 24 méthodes en moyenne par interface Plus d’un million d’invocations de méthode effectuées par le moniteur de test lors des expériences

76 Exemples de fautes identifiées
Étape Problème test incrémental Confusion entre méthode publique C++ et méthode IDL Métaprogramme Plusieurs métaobjets par objet Création du lien Réification identique de méthodes différentes Réification Violation du besoin d’encapsulation Intercession comp. Absence d’initialisation des attributs Introspection Un système à objets est un système Formatage incorrect du conteneur d’état Intercession struct. Le métaobjet survit à l’objet Destruction du lien spécification conception implémentation

77 Exemples de fautes identifiées
Étape Problème test incrémental Confusion entre méthode publique C++ et méthode IDL Métaprogramme Plusieurs métaobjets par objet Création du lien Réification identique de méthodes différentes Réification Violation du besoin d’encapsulation Intercession comp. Absence d’initialisation des attributs Introspection Un système à objets est un système Formatage incorrect du conteneur d’état Intercession struct. Le métaobjet survit à l’objet Destruction du lien Problèmes facilement résolus car identifiés pendant le développement du MOP

78 Plan Stratégie de test Case study : the FRIENDS MOP
Expériences et résultats Bilan, conclusions et perspectives

79 Bilan Analyse des mécanismes réflexifs des MOPs en vue du test
Stratégie de test générale et incrémentale (Ordre, objectifs et environnements de test) Faisabilité et efficacité de l’approche (Le MOP de FRIENDS comme cas d’étude) Développement d’un banc de test réutilisable

80 Conclusions Intégration du test dans le développement des MOPs
Complémentarité de points de vue durant la phase d’analyse (travail préparatoire au test) Conception en vue de la testabilité Intérêt de la séparation de mécanismes vis-à-vis du test : Les MOPs peuvent (et doivent) être testés en isolation Test d’intégration de mécanismes plus simple

81 Autres cibles potentielles
Réification Intercession comportementale Introspection Intercession structurelle Intercepteurs de CORBA Supervision et gestion de systèmes à objet : (Systèmes multimédia, QoS) Sérialisation d’objets (Java, FT-CORBA) Perception des environnements d’exécution (Systèmes conscients de leur contexte)

82 Perspectives Définition de critères de test fonctionnels et structurels pour le choix des entrées de test Application de la stratégie de test à d’autres systèmes proposant des mécanismes réflexifs similaires Mécanismes d’interception de CORBA et de sérialisation des applications suivant la norme FT-CORBA Prise en compte d’autres types de mécanismes réflexifs ( propres aux systèmes mobiles, multimédia … ) Test de métaprogramme  Vers le test de systèmes programmés par aspects ?

83 Juan Carlos Ruiz García
Contribution à la validation des systèmes réflexifs tolérants aux fautes : stratégie de test de protocoles à métaobjets Juan Carlos Ruiz García Tolérance aux fautes et Sûreté de Fonctionnement informatique


Télécharger ppt "Juan Carlos Ruiz García"

Présentations similaires


Annonces Google