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

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

Embed Size (px)

Citation preview

Page 1: 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

Contribution à la validation des Contribution à la validation des

systèmes réflexifs tolérants aux fautes :systèmes réflexifs tolérants aux fautes :

stratégie de test de stratégie de test de

protocoles à métaobjetsprotocoles à métaobjets

Contribution à la validation des Contribution à la validation des

systèmes réflexifs tolérants aux fautes :systèmes réflexifs tolérants aux fautes :

stratégie de test de stratégie de test de

protocoles à métaobjetsprotocoles à métaobjets

Juan Carlos Ruiz GarcíaJuan Carlos Ruiz García

Tolérance aux fautes et Tolérance aux fautes et Sûreté de Fonctionnement informatiqueSûreté de Fonctionnement informatique

Page 2: 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

22

ContexteContexteContexteContexte

Technologie Technologie à objetsà objets

Technologie Technologie réflexiveréflexive

Solutions àSolutions à

protocole à métaobjets (MOP)protocole à métaobjets (MOP)

Sûreté de Sûreté de fonctionnementfonctionnement

Tolérance Tolérance

aux Fautes (TaF)aux Fautes (TaF)

Systèmes TaF à base de MOPsSystèmes TaF à base de MOPs

Page 3: 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

33

ContexteContexteContexteContexte

Technologie Technologie à objetsà objets

Technologie Technologie réflexiveréflexive

Solutions àSolutions à

protocole à métaobjets (MOP)protocole à métaobjets (MOP)

Sûreté de Sûreté de fonctionnementfonctionnement

Tolérance Tolérance

aux Fautes (TaF)aux Fautes (TaF)

VérificationVérification

TestTest

Systèmes TaF à base de MOPsSystèmes TaF à base de MOPs

Page 4: 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

44

Systèmes à base de MOPs Systèmes à base de MOPs Systèmes à base de MOPs Systèmes à base de MOPs

« Un système réflexif a la capacité d’observer et contrôler« Un système réflexif a la capacité d’observer et contrôler son propre comportement, état et/ou structure » son propre comportement, état et/ou structure »

Page 5: 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

55

Systèmes à base de MOPs Systèmes à base de MOPs Systèmes à base de MOPs Systèmes à base de MOPs

MétaniveauMétaniveau

observation, interprétation, contrôleobservation, interprétation, contrôle

Niveau de baseNiveau de base

Comportement, structure et état du systèmeComportement, structure et état du système

« Un système réflexif a la capacité d’observer et contrôler« Un système réflexif a la capacité d’observer et contrôler son propre comportement, état et/ou structure » son propre comportement, état et/ou structure »

Page 6: 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

66

Systèmes à base de MOPs Systèmes à base de MOPs Systèmes à base de MOPs Systèmes à base de MOPs

MétaniveauMétaniveau

observation, interprétation, contrôleobservation, interprétation, contrôle

Niveau de baseNiveau de base

Comportement, structure et état du systèmeComportement, structure et état du système

MétamodèleMétamodèle(modèle du niveau de base)(modèle du niveau de base)

comportementcomportement état/structureétat/structure

« Un système réflexif a la capacité d’observer et contrôler« Un système réflexif a la capacité d’observer et contrôler son propre comportement, état et/ou structure » son propre comportement, état et/ou structure »

Page 7: 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

77

Systèmes à base de MOPsSystèmes à base de MOPsSystèmes à base de MOPsSystèmes à base de MOPs

Objets (entités du niveau de base)Objets (entités du niveau de base)

Mécanismes fonctionnelsMécanismes fonctionnels

Métaobjets (entités du métaniveau)Métaobjets (entités du métaniveau)Mécanismes non-fonctionnelsMécanismes non-fonctionnels

(Tolérance aux Fautes)(Tolérance aux Fautes)

Protocole Protocole à métaobjetsà métaobjets

(MOP)(MOP)

RéificationRéification(observation comportement)(observation comportement)IntrospectionIntrospection(observation structure/état)(observation structure/état)

IntercessionIntercession(contrôle comportement)(contrôle comportement)

(contrôle structure/état)(contrôle structure/état)

« Un système réflexif a la capacité d’observer et contrôler« Un système réflexif a la capacité d’observer et contrôler son propre comportement, état et/ou structure » son propre comportement, état et/ou structure »

Page 8: 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

88

Systèmes à base de MOPsSystèmes à base de MOPsSystèmes à base de MOPsSystèmes à base de MOPs

Objets (entités du niveau de base)Objets (entités du niveau de base)

Mécanismes fonctionnelsMécanismes fonctionnels

Métaobjets (entités du métaniveau)Métaobjets (entités du métaniveau)Mécanismes non-fonctionnelsMécanismes non-fonctionnels

(Tolérance aux Fautes)(Tolérance aux Fautes)

Protocole Protocole à métaobjetsà métaobjets

(MOP)(MOP)

RéificationRéification(observation comportement)(observation comportement)IntrospectionIntrospection(observation structure/état)(observation structure/état)

IntercessionIntercession(contrôle comportement)(contrôle comportement)

(contrôle structure/état)(contrôle structure/état)

- - Notre cible de test Notre cible de test --

Page 9: 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

99

Systèmes TaF à base de MOPsSystèmes TaF à base de MOPsSystèmes TaF à base de MOPsSystèmes TaF à base de MOPs

métaobjetmétaobjet

Exemple: Augmentation de la disponibilité d’un serveur par Exemple: Augmentation de la disponibilité d’un serveur par réplication passive réplication passive

SiteSite 1 1

métaobjetmétaobjet

répliquerépliquede secoursde secours

répliquerépliqueprimaireprimaire

servic

es

ervice

11. . InvocationInvocation méthodeméthode

clientclient

SiteSite 22 SiteSite 33

Page 10: 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

1010

Systèmes TaF à base de MOPsSystèmes TaF à base de MOPsSystèmes TaF à base de MOPsSystèmes TaF à base de MOPs

métaobjetmétaobjet

Exemple: Augmentation de la disponibilité d’un serveur par Exemple: Augmentation de la disponibilité d’un serveur par réplication passive réplication passive

métaobjetmétaobjet

répliquerépliquede secoursde secours

répliquerépliqueprimaireprimaire

servic

es

ervice

22.. RRééificationification

11. . InvocationInvocation méthodeméthode

clientclient

SiteSite 1 1 SiteSite 22 SiteSite 33

Page 11: 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

1111

Systèmes TaF à base de MOPsSystèmes TaF à base de MOPsSystèmes TaF à base de MOPsSystèmes TaF à base de MOPs

44.. IntrospectionIntrospection

métaobjetmétaobjet

Exemple: Augmentation de la disponibilité d’un serveur par Exemple: Augmentation de la disponibilité d’un serveur par réplication passive réplication passive

métaobjetmétaobjet

répliquerépliquede secoursde secours

répliquerépliqueprimaireprimaire

servic

es

ervice

22.. RRééificationification

11. . InvocationInvocation méthodeméthode

33.. IntercessionIntercessioncomportementalecomportementale

clientclient

SiteSite 1 1 SiteSite 22 SiteSite 33

Page 12: 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

1212

Systèmes TaF à base de MOPsSystèmes TaF à base de MOPsSystèmes TaF à base de MOPsSystèmes TaF à base de MOPs

44.. IntrospectionIntrospection

mémétaobjettaobjet

Exemple: Augmentation de la disponibilité d’un serveur par Exemple: Augmentation de la disponibilité d’un serveur par réplication passive réplication passive

55.. État observéÉtat observé

métaobjetmétaobjet

répliquerépliquede secoursde secours

répliquerépliqueprimaireprimaire

servic

es

ervice

22.. RRééificationification

11. . InvocationInvocation méthodeméthode

33.. IntercessionIntercessioncomportementalecomportementale

clientclient

méta

co

ntro

lm

étac

on

trol 6.6. IntercessionIntercession

structurellestructurelle

SiteSite 1 1 SiteSite 22 SiteSite 33

Page 13: 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

1313

PlanPlanPlanPlan

• État de l’art et problématiqueÉtat de l’art et problématique

• Stratégie de test Stratégie de test

• Case study : the FCase study : the FRIENDS MOPRIENDS MOP

• Expériences et résultatsExpériences et résultats

• Bilan, conclusions et perspectivesBilan, conclusions et perspectives

Page 14: 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

1414

PlanPlanPlanPlan

• État de l’art et problématiqueÉtat de l’art et problématique

• Stratégie de test Stratégie de test

• Case study : the FCase study : the FRIENDS MOPRIENDS MOP

• Expériences et résultatsExpériences et résultats

• Bilan, conclusions et perspectivesBilan, conclusions et perspectives

Page 15: 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

1515

Test de conformitéTest de conformitéTest de conformitéTest de conformité

moniteur de test

entréesde test

MOPMOP(cible du test)(cible du test)

spécificationdu MOPMOP

oraclevérifications

de conformité

sortiesattendues

sortiessortiesobservéesobservées

OKOK!

Page 16: 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

1616

Test de conformitéTest de conformitéTest de conformitéTest de conformité

moniteur de test

entréesde test

MOPMOP(cible du test)(cible du test)

objetobjet

métaobjetmétaobjet

spécificationdu MOPMOP

oraclevérifications

de conformité

sortiesattendues

sortiessortiesobservéesobservées

OKOK!

Page 17: 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

1717

État de l’artÉtat de l’artÉtat de l’artÉtat de l’art

• Vérification de MOPs :Vérification de MOPs :– Modèle WRIGTH Modèle WRIGTH

MOP MOP connecteur entre objets connecteur entre objets

Le MOP inclut le métaniveauLe MOP inclut le métaniveau

– Modèle Modèle -calcul-calcul MOP MOP connecteur entre objets et métaobjets connecteur entre objets et métaobjets Le MOP doit respecter des propriétés qui peuvent (et Le MOP doit respecter des propriétés qui peuvent (et

doivent) être vérifiées indépendamment du niveau de doivent) être vérifiées indépendamment du niveau de base et du métaniveau considérés.base et du métaniveau considérés.

• Pas de travaux sur le test des MOPs !Pas de travaux sur le test des MOPs !

MOPMOP

Page 18: 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

1818

État de l’artÉtat de l’artÉtat de l’artÉtat de l’art

• Vérification de MOPs :Vérification de MOPs :– Modèle WRIGTH Modèle WRIGTH

MOP MOP connecteur entre objets connecteur entre objets

Le MOP inclut le métaniveauLe MOP inclut le métaniveau

– Modèle Modèle -calcul-calcul MOP MOP connecteur entre objets et métaobjets connecteur entre objets et métaobjets Le MOP doit respecter des propriétés qui peuvent (et Le MOP doit respecter des propriétés qui peuvent (et

doivent) être vérifiées indépendamment du niveau de doivent) être vérifiées indépendamment du niveau de base et du métaniveau considérés.base et du métaniveau considérés.

• Pas de travaux sur le test des MOPs !Pas de travaux sur le test des MOPs !

MOPMOP

Page 19: 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

1919

ProblématiqueProblématiqueProblématiqueProblématique

Test de protocoles à métaobjets :Test de protocoles à métaobjets :

- MéthodesMéthodes

- OutilsOutils

1.1. Quelles étapes de test à envisager ?Quelles étapes de test à envisager ?

2.2. Quels objectifs à couvrir dans chaque étape ?Quels objectifs à couvrir dans chaque étape ?

3.3. Quels environnements de test ?Quels environnements de test ?

Test OOTest OO

Test de ProtocolesTest de Protocoles

Test Syst. réflexifsTest Syst. réflexifs

Page 20: 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

2020

PlanPlanPlanPlan

• État de l’art et problématiqueÉtat de l’art et problématique

• Stratégie de test Stratégie de test

• Case study : the FCase study : the FRIENDS MOPRIENDS MOP

• Expériences et résultatsExpériences et résultats

• Bilan, conclusions et perspectivesBilan, conclusions et perspectives

Page 21: 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

2121

PlanPlanPlanPlan

• État de l’art et problématique

• Stratégie de test Stratégie de test

– Modèle de MOPModèle de MOP

– Ordre de testOrdre de test

– Objectifs et Environnements de testObjectifs et Environnements de test

Page 22: 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

2222

MOP pour la TaFMOP pour la TaFMMAUDAUD [Agha 93][Agha 93], , GGARFARF [Garbinato 95][Garbinato 95],, FFRIENDSRIENDS [Pérennou 97][Pérennou 97],, [Killijian 00][Killijian 00]

MOP pour la TaFMOP pour la TaFMMAUDAUD [Agha 93][Agha 93], , GGARFARF [Garbinato 95][Garbinato 95],, FFRIENDSRIENDS [Pérennou 97][Pérennou 97],, [Killijian 00][Killijian 00]

MétaMétaoobjetbjet

ObjetObjet

ObservationObservation ContContrôlerô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 dulien objet/métaobjet

Page 23: 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

2323

MOP pour la TaFMOP pour la TaFMMAUDAUD [Agha 93][Agha 93], , GGARFARF [Garbinato 95][Garbinato 95],, FFRIENDSRIENDS [Pérennou 97][Pérennou 97],, [Killijian 00][Killijian 00]

MOP pour la TaFMOP pour la TaFMMAUDAUD [Agha 93][Agha 93], , GGARFARF [Garbinato 95][Garbinato 95],, FFRIENDSRIENDS [Pérennou 97][Pérennou 97],, [Killijian 00][Killijian 00]

MétaMétaoobjetbjet

ObjetObjet

ObservationObservation ContContrôlerôle

– Interception Interception ((ReificationReification))• création création • destruction destruction • interactions entre objetsinteractions entre objets

(entrantes et sortantes)(entrantes et sortantes)– Obtention de l’étatObtention de l’état

(Introspection)(Introspection)

– Consultation du Consultation du lien objet/métaobjetlien objet/métaobjet

– Activation Activation (Intercession comportementale)(Intercession comportementale) • créationcréation• destructiondestruction• interactions entre objetsinteractions entre objets

– Mise à jour de l’étatMise à jour de l’état(Intercession structurelle)(Intercession structurelle)

– Modification duModification dulien objet/métaobjetlien objet/métaobjet

Page 24: 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

2424

Systèmes TaF à base de MOPsSystèmes TaF à base de MOPsSystèmes TaF à base de MOPsSystèmes TaF à base de MOPs

44.. IntrospectionIntrospection

mémétaobjettaobjet

Exemple: Augmentation de la disponibilité d’un serveur par Exemple: Augmentation de la disponibilité d’un serveur par réplication passive réplication passive

SiteSite 1 1

55.. État observéÉtat observé

métaobjetmétaobjet

répliquerépliquede secoursde secours

répliquerépliqueprimaireprimaire

servic

es

ervice

22.. RRééificationification

11. . InvocationInvocation méthodeméthode

33.. IntercessionIntercessioncomportementalecomportementale

clientclient

méta

co

ntro

lm

étac

on

trol 6.6. IntercessionIntercession

structurellestructurelle

SiteSite 22 SiteSite 33

Page 25: 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

2525

mémétaobjettaobjet

clientclient

mémétaobjettaobjet

Modèle de MOPModèle de MOPModèle de MOPModèle de MOP

servic

es

ervice

objet serveurobjet serveur

comportementcomportement état/structureétat/structure

mét

aco

ntr

ol

mét

aco

ntr

ol

intercessionintercessionstructurellestructurelleintrospectionintrospection

conteneurconteneurd’étatd’état

réification

réification

intercessionintercessioncomportementalecomportementale

conteneurconteneurd’invocationd’invocation

Page 26: 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

2626

mémétaobjettaobjet

servic

es

ervice

Modèle de MOPModèle de MOPModèle de MOPModèle de MOP

réification

réification

intercessionintercessioncomportementalecomportementale

intercessionintercessionstructurellestructurelleintrospectionintrospection

comportementcomportement état/structureétat/structure

objet serveurobjet serveurm

étac

on

tro

lm

étac

on

tro

l

clientclient

mémétaobjettaobjet

conteneurconteneurd’étatd’état

conteneurconteneurd’invocationd’invocation

Page 27: 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

2727

mémétaobjettaobjet

servic

es

ervice

Modèle de MOPModèle de MOPModèle de MOPModèle de MOP

réification

réification

intercessionintercessioncomportementalecomportementale

intercessionintercessionstructurellestructurelleintrospectionintrospection

comportementcomportement état/structureétat/structure

objet serveurobjet serveurm

étac

on

tro

lm

étac

on

tro

l

clientclient

mémétaobjettaobjet

Quel ordre de te

st ?

Quel ordre de te

st ?

conteneurconteneurd’étatd’état

conteneurconteneurd’invocationd’invocation

Page 28: 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

2828

Ordre de TestOrdre de TestOrdre de TestOrdre de Test

But : «But : «  Réduction de l’effort global de test   Réduction de l’effort global de test »»

– Ordre de test systématique et incrémentalOrdre de test systématique et incrémental

– Réutilisation de mécanismes réflexifsRéutilisation de mécanismes réflexifs

Page 29: 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

2929

mémétaobjettaobjet

servic

es

ervice

Ordre de testOrdre de test- - Étape 1 Étape 1 --

Ordre de testOrdre de test- - Étape 1 Étape 1 --

réification

réification

conteneurconteneurd’invocationd’invocation

objet serveurobjet serveur

clientclient

Page 30: 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

3030

mémétaobjettaobjet

servic

es

ervice

Ordre de testOrdre de test- - Étape 2 Étape 2 --

Ordre de testOrdre de test- - Étape 2 Étape 2 --

réification

réification

intercessionintercessioncomportementalecomportementale

comportementcomportement

conteneurconteneur

d’invocationd’invocation

objet serveurobjet serveur

clientclient

Page 31: 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

3131

Ordre de testOrdre de test- - Étape 3 Étape 3 --

Ordre de testOrdre de test- - Étape 3 Étape 3 --

mémétaobjettaobjet

servic

es

ervice

réification

réification

intercessionintercessioncomportementalecomportementale introspectionintrospection

comportementcomportement état/structureétat/structure

conteneurconteneur

d’invocationd’invocation

conteneurconteneurd’étatd’état

objet serveurobjet serveurm

étac

on

tro

lm

étac

on

tro

l

clientclient

mémétaobjettaobjet

Page 32: 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

3232

mémétaobjettaobjet

servic

es

ervice

Ordre de testOrdre de test- - Étape 4 Étape 4 --

Ordre de testOrdre de test- - Étape 4 Étape 4 --

réification

réification

intercessionintercessioncomportementalecomportementale

intercessionintercessionstructurellestructurelleintrospectionintrospection

comportementcomportement état/structureétat/structure

conteneurconteneur

d’invocationd’invocation

conteneurconteneurd’étatd’état

objet serveurobjet serveurm

étac

on

tro

lm

étac

on

tro

l

clientclient

mémétaobjettaobjet

Page 33: 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

3333

Ordre de TestOrdre de TestOrdre de TestOrdre de Test

0. Création du lien d’interaction

1.1. RéificationRéification

2.2. Intercession comportementaleIntercession comportementale

3.3. IntrospectionIntrospection

4.4. Intercession structurelleIntercession structurelle

5. Destruction du lien d’interaction

Page 34: 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

3434

Ordre de TestOrdre de TestOrdre de TestOrdre de Test

Création du lien d’interaction Création du lien d’interaction

1.1. RéificationRéification

2.2. Intercession comportementaleIntercession comportementale

3.3. IntrospectionIntrospection

4.4. Intercession structurelleIntercession structurelle

Destruction du lien d’interactionDestruction du lien d’interaction

Page 35: 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

3535

Ordre de TestOrdre de TestOrdre de TestOrdre de Test

Création du lien d’interaction Création du lien d’interaction

1.1. RéificationRéification

2.2. Intercession comportementaleIntercession comportementale

3.3. IntrospectionIntrospection

4.4. Intercession structurelle Intercession structurelle

Destruction du lien d’interactionDestruction du lien d’interaction

Étapes Étapes GénéralesGénérales

Étape Étape SpécifiqueSpécifique

Étape Étape SpécifiqueSpécifique

Page 36: 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

3636

Ordre de TestOrdre de TestOrdre de TestOrdre de Test

Création du lien d’interaction Création du lien d’interaction

1.1. RéificationRéification

2.2. Intercession comportementaleIntercession comportementale

3.3. IntrospectionIntrospection

4.4. Intercession structurelle Intercession structurelle

Destruction du lien d’interactionDestruction du lien d’interaction

Étapes Étapes GénéralesGénérales

Étape Étape SpécifiqueSpécifique

Étape Étape SpécifiqueSpécifique

Page 37: 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

3737

Étape 1Étape 1

RéificationRéificationÉtape 1Étape 1

RéificationRéification

Objectifs de testObjectifs de test

• Complétude Complétude – – Toute interaction entre objets Toute interaction entre objets doit être systématiquement réifiée au métaniveau.doit être systématiquement réifiée au métaniveau.

• Cohérence Cohérence – – Les informations réifiées doivent Les informations réifiées doivent représenter correctement l’interaction réifiée.représenter correctement l’interaction réifiée.

serveurserveurclientclient

métaobjetmétaobjet

Page 38: 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

3838

Étape 1Étape 1

RéificationRéificationÉtape 1Étape 1

RéificationRéification

objet objet serveurserveur

réific

atio

nré

ifica

tion

métaobjetmétaobjet

réificationréification

oracleoracle

moniteurmoniteur

Génération Génération aléatoire des valeurs aléatoire des valeurs de sortiede sortie

33

44< méthode réifiée, paramètres d’entrée réifiés, paramètres de sortie générées >< méthode réifiée, paramètres d’entrée réifiés, paramètres de sortie générées >

55

66

77

ComparaisonComparaison 88

< méthode invoquée, < méthode invoquée, paramètres d’entrée, paramètres d’entrée, paramètres de sortie >paramètres de sortie >

retourretour

retourretour

serveurserveurclientclient

métaobjetmétaobjet

exécutionexécutionde méthodede méthode

1122

méthodeméthode

InvocationExecutéeNonRéifiéeInvocationExecutéeNonRéifiée

méthodeméthode

servic

es

ervice

Page 39: 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

3939

Étape 2Étape 2Intercession comp.Intercession comp.

Étape 2Étape 2Intercession comp.Intercession comp.

mémétaobjettaobjet

serveurserveurclientclient

Objectifs de testObjectifs de test

• Complétude Complétude – – Toute méthode réifiée doit être Toute méthode réifiée doit être activable à l’aide des mécanismes d’intercession activable à l’aide des mécanismes d’intercession comportementale.comportementale.

• Cohérence Cohérence – – Les mécanismes d’intercession Les mécanismes d’intercession doivent déclencher l’exécution de la méthode doivent déclencher l’exécution de la méthode demandée.demandée.

• EncapsulationEncapsulation – – L’activité interne de l’objet ne L’activité interne de l’objet ne doit pas être réifiée. doit pas être réifiée.

Page 40: 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

4040

Étape 2Étape 2

Intercession comp.Intercession comp.Étape 2Étape 2

Intercession comp.Intercession comp.

métaobjetmétaobjet

oracleoracle

moniteurmoniteur

servic

es

ervice

intercessionintercession

comportementcomportement

44méthodeméthode

55

66 < Trace d’exécution >< Trace d’exécution >

a.a. Les méthodes réifiées sontLes méthodes réifiées sont appliquées sur l’objet appliquées sur l’objet

b. Les paramètres de sortie sont retournés au moniteur

11 méthodeméthode

33méthodeméthode

22

serveurserveur

mémétaobjettaobjet

serveurserveurclientclient

ComparaisonComparaison

< méthode invoquée, < méthode invoquée, paramètres d’entrée, paramètres d’entrée, paramètres de sortie >paramètres de sortie >

retourretour

77retourretour

1010

1111

1212

99retourretour

88

a.a. Les méthodes réifiées sontLes méthodes réifiées sont appliquées sur l’objet appliquées sur l’objet

b.b. Les paramètres de sortie sont Les paramètres de sortie sont retournés au moniteur retournés au moniteur

réific

atio

nré

ifica

tion

Page 41: 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

4141

Étape 3Étape 3

IntrospectionIntrospectionÉtape 3Étape 3

IntrospectionIntrospection

mémétaobjettaobjet

serveurserveurclientclient

Objectifs de testObjectifs de test

• ComplétudeComplétude – – L’ensemble de l’état de l’objet L’ensemble de l’état de l’objet doit être observé.doit être observé.

• CohérenceCohérence – – Les valeurs observées doivent être Les valeurs observées doivent être les valeurs courantes des attributs de l’objet.les valeurs courantes des attributs de l’objet.

Page 42: 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

4242

Étape 3Étape 3

IntrospectionIntrospectionÉtape 3Étape 3

IntrospectionIntrospection

MétaobjetMétaobjet

réific

atio

nré

ifica

tion

servic

es

ervice

intercessionintercessioncomportementalecomportementale introspectionintrospection

mét

aco

ntr

ôle

mét

aco

ntr

ôle

objet serveurobjet serveur

moniteurmoniteur

comportementcomportement état/structureétat/structure

oracleoracle

L’état «introspecté», L’état «introspecté», est-il cohérent avec est-il cohérent avec celui d’initialisation?celui d’initialisation?

66 7788

9

état d’introspectionétat d’introspection

22 33

11

4455

état d’initialisationétat d’initialisation

mémétaobjettaobjet

serveurserveurclientclient

Page 43: 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

4343

Étape 4Étape 4

Intercession struct.Intercession struct.Étape 4Étape 4

Intercession struct.Intercession struct.

mémétaobjettaobjet

serveurserveurclientclient

Objectifs de testObjectifs de test

• Complétude Complétude – – L’ensemble de l’état de l’objet L’ensemble de l’état de l’objet doit pouvoir être mis à jour depuis le métaobjet.doit pouvoir être mis à jour depuis le métaobjet.

• Cohérence Cohérence – – Les valeurs de mise à jour Les valeurs de mise à jour utilisées doivent être celles fournies par le utilisées doivent être celles fournies par le métaobjet.métaobjet.

Page 44: 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

4444

Étape 4Étape 4

Intercession struct.Intercession struct.Étape 4Étape 4

Intercession struct.Intercession struct.

moniteurmoniteur

intercessionintercessioncomportementalecomportementale introspectionintrospection

comportementcomportement état/structureétat/structure

intercessionintercessionstructurellestructurelle

MétaobjetMétaobjet

réific

atio

nré

ifica

tion

servic

es

ervice

objet serveurobjet serveur

oracleoracle

22

11 Initialisation de l’état de l’objetInitialisation de l’état de l’objet

33

44état initialisationétat initialisation

mét

aco

ntr

ôle

mét

aco

ntr

ôle

mémétaobjettaobjet

serveurserveurclientclient

Page 45: 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

4545

Étape 4Étape 4

Intercession struct.Intercession struct.Étape 4Étape 4

Intercession struct.Intercession struct.

moniteurmoniteur

intercessionintercessioncomportementalecomportementale introspectionintrospection

comportementcomportement état/structureétat/structure

intercessionintercessionstructurellestructurelle

MétaobjetMétaobjet

réific

atio

nré

ifica

tion

servic

es

ervice

objet serveurobjet serveur

oracleoracle

2,62,6

1,51,5 Modification de l’état de l’objetModification de l’état de l’objet

3,73,7

88état initialisationétat initialisation

L’état résultant de L’état résultant de l’intercession, est-il l’intercession, est-il cohérent avec celui cohérent avec celui d’initialisation?d’initialisation?

1010

état intercessionétat intercession

1111

99

mét

aco

ntr

ôle

mét

aco

ntr

ôle

mémétaobjettaobjet

serveurserveurclientclient

Page 46: 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

4646

Ordre de TestOrdre de TestOrdre de TestOrdre de Test

Création du lien d’interaction Création du lien d’interaction

1.1. RéificationRéification

2.2. Intercession comportementaleIntercession comportementale

3.3. IntrospectionIntrospection

4.4. Intercession structurelle Intercession structurelle

Destruction du lien d’interactionDestruction du lien d’interaction

Étapes Étapes GénéralesGénérales

Étape Étape SpécifiqueSpécifique

Étape Étape SpécifiqueSpécifique

Page 47: 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

4747

Ordre de TestOrdre de TestOrdre de TestOrdre de Test

Création du lien d’interactionCréation du lien d’interaction

1.1. RéificationRéification

2.2. Intercession comportementaleIntercession comportementale

3.3. IntrospectionIntrospection

4.4. Intercession structurelleIntercession structurelle

Destruction du lien d’interactionDestruction du lien d’interaction

Étapes Étapes GénéralesGénérales

Étape Étape SpécifiqueSpécifique

Étape Étape SpécifiqueSpécifique

Page 48: 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

4848

PlanPlanPlanPlan

• État de l’art et problématiqueÉtat de l’art et problématique

• Stratégie de test Stratégie de test

• Case study : the FCase study : the FRIENDS MOPRIENDS MOP

• Expériences et résultatsExpériences et résultats

• Bilan, conclusions et perspectivesBilan, conclusions et perspectives

Page 49: 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

4949

• État de l’art et problématiqueÉtat de l’art et problématique

• Stratégie de test Stratégie de test

• Case study : the FCase study : the FRIENDS MOPRIENDS MOP

• Expériences et résultats

• Bilan, conclusions et prospectives

PlanPlanPlanPlan

– MOP implementation and architectureMOP implementation and architecture

– Testing the MOP generation / instantiation /Testing the MOP generation / instantiation /

destruction destruction

Page 50: 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

5050

The The FFRIENDSRIENDS MOPMOPThe The FFRIENDSRIENDS MOPMOP

• A MOP for the development of fault-tolerant CORBA A MOP for the development of fault-tolerant CORBA applicationsapplications

CORBA serviceCORBA serviceimplementationimplementation

ApplicationApplicationprogrammerprogrammer

CORBA-orientedCORBA-orientedFT-mechanismFT-mechanism

Fault toleranceFault toleranceprogrammerprogrammer

source code analysis and transformationsource code analysis and transformation

Metaprogram (Metaprogram (MOP implementationMOP implementation))

MOPMOP instanceinstance

CORBACORBAserviceservice

implementationimplementation

MOPMOPprogrammerprogrammer

Open CompilerOpen Compiler(compile-time reflection)(compile-time reflection)

CORBA metaobjectCORBA metaobject

CORBA objectCORBA object

MOPMOP instance instance

instantiationinstantiationTesting th

e metaprogram

Testing th

e metaprogram

Page 51: 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

5151

A CORBA applicationA CORBA applicationA CORBA applicationA CORBA application

CORBA serviceCORBA serviceimplementationimplementation

serverserverstubstubclientclient

Service

Service

Service

Service

interobjectinterobjectcommunicationscommunications

site 1 site 1 site 2 site 2

Page 52: 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

5252

A FA FRIENDSRIENDS CORBA application CORBA applicationA FA FRIENDSRIENDS CORBA application CORBA application

MOPMOP instanceinstance

CORBACORBAserviceservice

implementationimplementation

CORBA-orientedCORBA-orientedFT-mechanismFT-mechanism

serverserverstubstubclientclient

Service

Service

MetaStubMetaStub MetaServerMetaServer

ReifiedStubReifiedStub

Service

Service

metastubmetastub metaservermetaserver

MOFactoryMOFactory

ReifiedServerReifiedServer

intermetaobjectintermetaobjectcommunicationscommunications

ORBORB

OFactoryOFactory

site 1 site 1 site 2 site 2

Testing the creation and destruction

Testing the creation and destruction

of the O-MO interaction lin

k

of the O-MO interaction lin

k

Page 53: 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

5353

Test OrderTest OrderTest OrderTest Order

Specific Specific StepStep

Specific Specific StepStep

MOP generation MOP generation (testing the metaprogram)(testing the metaprogram)

MOP instantiationMOP instantiation (O-MO link creation)(O-MO link creation)

1.1. ReificationReification

2.2. Behavioral intercessionBehavioral intercession

3.3. IntrospectionIntrospection

4.4. Structural intercessionStructural intercession

MOP destruction MOP destruction (O-MO link destruction)(O-MO link destruction)

Page 54: 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

5454

Test OrderTest OrderTest OrderTest Order

Specific Specific StepStep

Specific Specific StepStep

MOP generation MOP generation (testing the metaprogram)(testing the metaprogram)

MOP instantiation MOP instantiation (O-MO link creation)(O-MO link creation)

1.1. ReificationReification

2.2. Behavioral intercessionBehavioral intercession

3.3. IntrospectionIntrospection

4.4. Structural intercessionStructural intercession

MOP destruction MOP destruction (O-MO link destruction)(O-MO link destruction)

MOP generation MOP generation (testing the metaprogram)(testing the metaprogram)

Page 55: 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

5555

Testing the metaprogramTesting the metaprogramTesting the metaprogramTesting the metaprogram

serverservercodecode

Open CompilerOpen Compiler(OpenC++)(OpenC++)non-reflectivenon-reflective

codecode

1.1. Code filtering rulesCode filtering rules

Metaprogram : set of code analysis and transformation Metaprogram : set of code analysis and transformation rules rules

ErrorError messagesmessages

stubstubcodecode

Page 56: 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

5656

Testing the metaprogramTesting the metaprogramTesting the metaprogramTesting the metaprogram

serverservercodecode

Open CompilerOpen Compiler(OpenC++)(OpenC++)non-reflectivenon-reflective

codecode

1.1. Code filtering rulesCode filtering rules

2.2. Data container generation rulesData container generation rules

Metaprogram : set of code analysis and transformation Metaprogram : set of code analysis and transformation rules rules

ErrorError messagesmessages

stubstubcodecode

CORBACORBAInterfaceInterface

RepositoryRepository

Page 57: 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

5757

Testing the metaprogramTesting the metaprogramTesting the metaprogramTesting the metaprogram

serverservercodecode

Open CompilerOpen Compiler(OpenC++)(OpenC++)non-reflectivenon-reflective

codecode

reflective codereflective code

MOPMOP

1.1. Code filtering rulesCode filtering rules

2.2. Data container generation rulesData container generation rules

3.3. Reflective code generation rulesReflective code generation rules

serverserverccodeode

Metaprogram : set of code analysis and transformation Metaprogram : set of code analysis and transformation rules rules

ErrorError messagesmessages

stubstubcodecode

CORBACORBAInterfaceInterface

RepositoryRepository

MOPMOPstubstubccodeode

Page 58: 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

5858

Reflective code generation rulesReflective code generation rulesReflective code generation rulesReflective code generation rules

55OracleOracle

DoesDoes the generated code conform to the the generated code conform to the codecode

specified for the MOP?specified for the MOP?

Open compilerOpen compiler

22 3311

MOPMOPccodeode

44

metaprogrammetaprogram behavioral reflectionbehavioral reflection Code for reification & behavioral intercessionCode for reification & behavioral intercession structural reflection structural reflection Code for saving & restoring object states Code for saving & restoring object states objet-metaobjet link objet-metaobjet link Code for handling the objet-metaobjet linkCode for handling the objet-metaobjet link

classesclasses with withdifferent different method signaturesmethod signatures

classesclasses with withdifferent types ofdifferent types ofattributesattributes

classesclasses with withmethods & attributes methods & attributes

Page 59: 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

5959

Reflective code generation rulesReflective code generation rules- Oracle verifications -- Oracle verifications -

Reflective code generation rulesReflective code generation rules- Oracle verifications -- Oracle verifications -

class a{class a{ public:public:

int int foofoo()(){{

// foo’s body// foo’s body

}}

privateprivate::

int foo2() {int foo2() {

//foo2’s body//foo2’s body }}

};};

clclass a{ass a{ public:public: int int foofoo()(){{ //reification code//reification code }}

int Wrapped_foo(){int Wrapped_foo(){ // foo’s body// foo’s body }}

int Execute_fooBody(){int Execute_fooBody(){ return Wrapped_foo()return Wrapped_foo() }}

private:private: int foo2() {int foo2() { //foo2’s body//foo2’s body }}};};

behavioral reflectionbehavioral reflection

Implemented using method wrappingImplemented using method wrapping

metaprogrammetaprogram

OracleOracle

DoesDoes the generated code conform to the generated code conform to

the the codecode specified for the MOP? specified for the MOP?

Page 60: 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

6060

Reflective code generation rulesReflective code generation rules- Oracle verifications -- Oracle verifications -

Reflective code generation rulesReflective code generation rules- Oracle verifications -- Oracle verifications -

class a{class a{ public:public:

int int foofoo()(){{

// foo’s body// foo’s body

}}

privateprivate::

int foo2() {int foo2() {

//foo2’s body//foo2’s body }}

};};

clclass a{ass a{ public:public: int int foofoo()(){{ //reification code//reification code }}

int Wrapped_foo(){int Wrapped_foo(){ // foo’s body// foo’s body }}

int Execute_fooBody(){int Execute_fooBody(){ return Wrapped_foo()return Wrapped_foo() }}

private:private: int foo2() {int foo2() { //foo2’s body//foo2’s body }}};};

behavioral reflectionbehavioral reflection

Implemented using method wrappingImplemented using method wrapping

metaprogrammetaprogram

OracleOracle

DoesDoes the generated code conform to the generated code conform to

the the codecode specified for the MOP? specified for the MOP?

Page 61: 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

6161

Reflective code generation rulesReflective code generation rules- Oracle verifications -- Oracle verifications -

Reflective code generation rulesReflective code generation rules- Oracle verifications -- Oracle verifications -

OracleOracle

DoesDoes the generated code conform to the generated code conform to

the the codecode specified for the MOP? specified for the MOP?

class a{class a{ public:public:

int int foofoo()(){{

// foo’s body// foo’s body

}}

privateprivate::

int foo2() {int foo2() {

//foo2’s body//foo2’s body }}

};};

clclass a{ass a{ public:public: int int foofoo()(){{ //reification code//reification code }}

int Wrapped_foo(){int Wrapped_foo(){ // foo’s body// foo’s body }}

int Execute_fooBody(){int Execute_fooBody(){ return Wrapped_foo()return Wrapped_foo() }}

private:private: int foo2() {int foo2() { //foo2’s body//foo2’s body }}};};

behavioral reflectionbehavioral reflection

Implemented using method wrappingImplemented using method wrapping

metaprogrammetaprogram

Page 62: 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

6262

Test OrderTest OrderTest OrderTest Order

Specific Specific StepStep

Specific Specific StepStep

MOP generation MOP generation (testing the metaprogram)(testing the metaprogram)

MOP instantiationMOP instantiation (O-MO link creation)(O-MO link creation)

1.1. ReificationReification

2.2. Behavioral intercessionBehavioral intercession

3.3. IntrospectionIntrospection

4.4. Structural intercessionStructural intercession

MOP destruction MOP destruction (O-MO link destruction)(O-MO link destruction)

Page 63: 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

6363

Test OrderTest OrderTest OrderTest Order

Specific Specific StepStep

Specific Specific StepStep

MOP generation MOP generation (testing the metaprogram)(testing the metaprogram)

MOP instantiationMOP instantiation (O-MO link creation)(O-MO link creation)

1.1. ReificationReification

2.2. Behavioral intercessionBehavioral intercession

3.3. IntrospectionIntrospection

4.4. Structural intercessionStructural intercession

MOP destruction MOP destruction (O-MO link destruction)(O-MO link destruction)

MOP instantiation MOP instantiation (O-MO link creation)(O-MO link creation)

Page 64: 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

6464

MOP instantiationMOP instantiationMOP instantiationMOP instantiation

Test goalsTest goals

• Unicity Unicity – – Each object must be linked to one and Each object must be linked to one and only one metaobject.only one metaobject.

• Interaction Interaction – – Objects and metaobjects can only Objects and metaobjects can only interact if their respective identifiers are correctly interact if their respective identifiers are correctly exchanged during the instantiation process.exchanged during the instantiation process.

Page 65: 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

6565

MOP instantiationMOP instantiationMOP instantiationMOP instantiation

OF

acto

ryO

Fa

ctory

MOFactoryMOFactory

testtestdriverdriver

ooracle racle

66

77

88

<object, metaobject><object, metaobject>

<object’, metaobject’><object’, metaobject’>

33

44

55

metaobjectmetaobject

11

Se

rviceS

ervice

2 2

objectobject

Page 66: 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

6666

PlanPlanPlanPlan

• État de l’art et problématiqueÉtat de l’art et problématique

• Stratégie de test Stratégie de test

• Case study : the FCase study : the FRIENDS MOPRIENDS MOP

• Expériences et résultatsExpériences et résultats

• Bilan, conclusions et perspectivesBilan, conclusions et perspectives

Page 67: 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

6767

Vue fonctionnelle du banc de testVue fonctionnelle du banc de testVue fonctionnelle du banc de testVue fonctionnelle du banc de test

classes d’entréeclasses d’entrée

Test du métaprogrammeTest du métaprogramme

• Règles de filtrage de codeRègles de filtrage de code• Règles de génération des conteneursRègles de génération des conteneurs• Règles de génération des mécanismes réflexifsRègles de génération des mécanismes réflexifs

outillageoutillaged’analysed’analyse

de codede code

outillage de outillage de génération de codegénération de code

Création du lienCréation du liend’interaction d’interaction

du MOPdu MOP

Test des mécanismes du MOPTest des mécanismes du MOPmise en œuvre des environnements de testmise en œuvre des environnements de test

Destruction du lienDestruction du liend’interaction d’interaction

du MOPdu MOP

• RéificationRéification• Intercession comportementaleIntercession comportementale• Introspection Introspection • Intercession structurelleIntercession structurelle

Page 68: 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

6868

Banc de TestBanc de TestBanc de TestBanc de Test

testeurtesteur

MétaprogrammeMétaprogramme FRIENDS FRIENDS

référentielréférentield’interfacesd’interfaces

CORBACORBA

implémentation réflexiveimplémentation réflexived’un objet CORBAd’un objet CORBA

conteneursconteneursd’invocation d’invocation

et d’étatet d’état

compilateur standardcompilateur standard (C++)

serveurserveurréflexifréflexif

mandatairemandataireréflexifréflexif

stubstub squelettesquelette

interfaceinterfaceIDLIDL

implémentationimplémentationdu serveurdu serveur

compilateur IDLcompilateur IDL

Page 69: 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

6969

Banc de TestBanc de TestBanc de TestBanc de Test

testeurtesteur

Paramètres pour Paramètres pour la génération la génération

d’implémentations d’implémentations d’objets CORBAd’objets CORBA

stubstub squelettesquelette

interfaceinterfaceIDLIDL

implémentationimplémentationdu serveurdu serveur

compilateur IDLcompilateur IDL

MétaprogrammeMétaprogramme FRIENDS FRIENDS

référentielréférentield’interfacesd’interfaces

CORBACORBA

implémentation réflexiveimplémentation réflexived’un objet CORBAd’un objet CORBA

conteneursconteneursd’invocation d’invocation

et d’étatet d’état

compilateur standardcompilateur standard (C++)

serveurserveurréflexifréflexif

mandatairemandataireréflexifréflexif

générateurgénérateurd’objets CORBAd’objets CORBA

outillage pour le test du

métaprogramme

métaobjetmétaobjet

moniteurmoniteurde testde test

oracleoracle

objetobjet

environnements de test

Page 70: 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

7070

interface Universal_Driver{interface Universal_Driver{ RetValue Invoke(RetValue Invoke( in string serviceName,in string serviceName,

in string operationName,in string operationName,inout ListOfArguments arguments)inout ListOfArguments arguments)

raises (DriverException);raises (DriverException);};};

Moniteur de test génériqueMoniteur de test génériqueMoniteur de test génériqueMoniteur de test générique

Interface IDL du MoniteurInterface IDL du Moniteur référentiel référentiel d’interfacesd’interfaces

CORBACORBA

description de l’interface du serveurdescription de l’interface du serveurdescription de l’opération à invoquerdescription de l’opération à invoquer

serviceservicede nomsde noms

nom du nom du serviceservice

référence référence CORBACORBA

argument 1argument 2

argument n

référence de l’objet

description de l’opération

valeur de retour

générateur générateur de valeurs de valeurs aléatoiresaléatoires

valeurvaleur

typetype

• Création dynamique de requêtes Création dynamique de requêtes

CORBA (interface DII) CORBA (interface DII)• Interopérabilité langage-plate-formeInteropérabilité langage-plate-forme• Composant réutilisable dans d’autresComposant réutilisable dans d’autres

contextes contextes

Un

iversal_Driver

Un

iversal_Driver

Page 71: 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

7171

Cas de test (1)Cas de test (1)Cas de test (1)Cas de test (1)

Réification etRéification etIntercession comportementaleIntercession comportementale

• 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

Types Simples: long, short, …

chaînes de caractères, références CORBAclasses

Type complexes:structures, tableaux séquences

Cas de Cas de TestTest

Page 72: 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

7272

Types Simples: long, short, …

chaînes de caractères, références CORBAclasses

Type complexes:structures, tableaux séquences

Cas de test (1)Cas de test (1)Cas de test (1)Cas de test (1)

Réification etRéification etIntercession comportementaleIntercession comportementale

• 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

interface shortParameters{interface shortParameters{ short shortReturn();short shortReturn();

void shortIn(in short arg);void shortIn(in short arg);void shortOut(out short arg);void shortOut(out short arg);void shortInOut(inout short arg);void shortInOut(inout short arg);

};};

Cas de Cas de TestTest

– Variation du mode de passage Variation du mode de passage

Page 73: 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

7373

Cas de test (2)Cas de test (2)Cas de test (2)Cas de test (2)

Cas de Cas de TestTest

• 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

Introspection etIntrospection etIntercession structurelleIntercession structurelle

Types Simples: long, short, …

chaînes de caractères, références CORBAclasses

Type complexes:structures, tableaux séquences

Page 74: 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

7474

Cas de test (2)Cas de test (2)Cas de test (2)Cas de test (2)

interface shortAtt{interface shortAtt{attribute short shortAtt1;attribute short shortAtt1;

};};interface longAtt : shortAtt{interface longAtt : shortAtt{

attribute long longAtt1;attribute long longAtt1;};};

• 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

Introspection etIntrospection etIntercession structurelleIntercession structurelle

– HéritageHéritage

Cas de Cas de TestTest

Types Simples: long, short, …

chaînes de caractères, références CORBAclasses

Type complexes:structures, tableaux séquences

Page 75: 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

7575

Génération des cas de testGénération des cas de testGénération des cas de testGénération des cas de test

• Méthode de génération aléatoire probabiliste : test Méthode de génération aléatoire probabiliste : test statistiquestatistique

• 532 serveurs différents532 serveurs différents• 189 interfaces pour le test des mécanismes de réification et 189 interfaces pour le test des mécanismes de réification et

d’intercession comportementaled’intercession comportementale

• 197 interfaces pour le test des mécanismes d’introspection et 197 interfaces pour le test des mécanismes d’introspection et d’intercession structurelled’intercession structurelle

• 156 interfaces contenant à la fois des méthodes et des attributs156 interfaces contenant à la fois des méthodes et des attributs

• 24 méthodes en moyenne par interface24 méthodes en moyenne par interface

• Plus d’un million d’invocations de méthode Plus d’un million d’invocations de méthode effectuées par le moniteur de test lors des effectuées par le moniteur de test lors des expériencesexpériences

Page 76: 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

7676

Exemples de fautes identifiéesExemples de fautes identifiéesExemples de fautes identifiéesExemples de fautes identifiées

Absence d’initialisation des attributsAbsence d’initialisation des attributsIntrospectionIntrospection

Confusion entre méthode publique C++ et méthode IDLConfusion entre méthode publique C++ et méthode IDLMétaprogrammeMétaprogramme

Plusieurs métaobjets par objetPlusieurs métaobjets par objetCréation du lienCréation du lien

Réification identique de méthodes différentesRéification identique de méthodes différentesRéificationRéification

Violation du besoin d’encapsulationViolation du besoin d’encapsulationIntercession comp.Intercession comp.

Formatage incorrect du conteneur d’étatFormatage incorrect du conteneur d’étatIntercession struct.Intercession struct.

Le métaobjet survit à l’objetLe métaobjet survit à l’objetDestruction du lienDestruction du lien

ProblèmeProblèmeÉtapeÉtape

test

inc

rém

en

tal

test

inc

rém

en

tal

spécificationspécification conceptionconception implémentationimplémentation

Page 77: 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

7777

Exemples de fautes identifiéesExemples de fautes identifiéesExemples de fautes identifiéesExemples de fautes identifiées

Absence d’initialisation des attributsAbsence d’initialisation des attributsIntrospectionIntrospection

Confusion entre méthode publique C++ et méthode IDLConfusion entre méthode publique C++ et méthode IDLMétaprogrammeMétaprogramme

Plusieurs métaobjets par objetPlusieurs métaobjets par objetCréation du lienCréation du lien

Réification identique de méthodes différentesRéification identique de méthodes différentesRéificationRéification

Violation du besoin d’encapsulationViolation du besoin d’encapsulationIntercession comp.Intercession comp.

Formatage incorrect du conteneur d’étatFormatage incorrect du conteneur d’étatIntercession struct.Intercession struct.

Le métaobjet survit à l’objetLe métaobjet survit à l’objetDestruction du lienDestruction du lien

ProblèmeProblèmeÉtapeÉtape

test

inc

rém

en

tal

test

inc

rém

en

tal

Problèmes facilement résolus car identifiés pendant le Problèmes facilement résolus car identifiés pendant le développement du MOPdéveloppement du MOP

Page 78: 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

7878

PlanPlanPlanPlan

• Stratégie de test Stratégie de test

• Case study : the FCase study : the FRIENDS MOPRIENDS MOP

• Expériences et résultatsExpériences et résultats

• Bilan, conclusions et perspectivesBilan, conclusions et perspectives

Page 79: 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

7979

BilanBilanBilanBilan

• Analyse des mécanismes réflexifs des MOPs en Analyse des mécanismes réflexifs des MOPs en

vue du testvue du test

• Stratégie de test générale et incrémentaleStratégie de test générale et incrémentale

(Ordre, objectifs et environnements de test)(Ordre, objectifs et environnements de test)

• Faisabilité et efficacité de l’approcheFaisabilité et efficacité de l’approche

(Le MOP de F(Le MOP de FRIENDSRIENDS comme cas d’étude) comme cas d’étude)

• Développement d’un banc de test réutilisable Développement d’un banc de test réutilisable

Page 80: 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

8080

ConclusionsConclusionsConclusionsConclusions

• Intégration du test dans le développement des MOPsIntégration du test dans le développement des MOPs

– Complémentarité de points de vue durant la phase Complémentarité de points de vue durant la phase

d’analyse (travail préparatoire au test)d’analyse (travail préparatoire au test)

– Conception en vue de la testabilitéConception en vue de la testabilité

• Intérêt de la séparation de mécanismes vis-à-vis du Intérêt de la séparation de mécanismes vis-à-vis du

test : test :

– Les MOPs peuvent (et doivent) être testés en Les MOPs peuvent (et doivent) être testés en isolation isolation

– Test d’intégration de mécanismes plus simpleTest d’intégration de mécanismes plus simple

Page 81: 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

8181

Autres cibles potentiellesAutres cibles potentiellesAutres cibles potentiellesAutres cibles potentielles

• RéificationRéification

• Intercession comportementaleIntercession comportementale

• IntrospectionIntrospection

• Intercession structurelleIntercession structurelle

- Intercepteurs de CORBAIntercepteurs de CORBA- Supervision et gestion de Supervision et gestion de systèmes à objet : systèmes à objet : ( (Systèmes multimédia, QoS))

- Sérialisation d’objetsSérialisation d’objets ( (Java, FT-CORBA))- Perception des Perception des environnements d’exécution environnements d’exécution ( (Systèmes conscients de leur

contexte))

Page 82: 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

8282

PerspectivesPerspectivesPerspectivesPerspectives

• Définition de critères de test fonctionnels et structurels Définition de critères de test fonctionnels et structurels pour le choix des entrées de testpour le choix des entrées de test

• Application de la stratégie de test à d’autres systèmes Application de la stratégie de test à d’autres systèmes

proposant des mécanismes réflexifs similairesproposant des mécanismes réflexifs similairesMécanismes d’interception de CORBA et de sérialisationdes applications suivant la norme FT-CORBA

• Prise en compte d’autres types de mécanismes Prise en compte d’autres types de mécanismes

réflexifsréflexifs ( ( propres aux systèmes mobiles, multimédia … ) )

• Test de métaprogramme Test de métaprogramme Vers le test de systèmes Vers le test de systèmes

programmés par aspects ?programmés par aspects ?

Page 83: 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

Contribution à la validation des Contribution à la validation des

systèmes réflexifs tolérants aux fautes :systèmes réflexifs tolérants aux fautes :

stratégie de test de stratégie de test de

protocoles à métaobjetsprotocoles à métaobjets

Contribution à la validation des Contribution à la validation des

systèmes réflexifs tolérants aux fautes :systèmes réflexifs tolérants aux fautes :

stratégie de test de stratégie de test de

protocoles à métaobjetsprotocoles à métaobjets

Juan Carlos Ruiz GarcíaJuan Carlos Ruiz García

Tolérance aux fautes et Tolérance aux fautes et Sûreté de Fonctionnement informatiqueSûreté de Fonctionnement informatique