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
83
Embed
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.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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
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
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
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 »
55
Systèmes à base de MOPs Systèmes à base de MOPs Systèmes à base de MOPs Systèmes à base de MOPs
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 »
66
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 »
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
« 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 »
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
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
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
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
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
• É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
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
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!
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!
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
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 !
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
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
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
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
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)
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
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
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
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
• 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.
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
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.
• 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.
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
4646
Ordre de TestOrdre de TestOrdre de TestOrdre de Test
Création du lien d’interaction Création du lien d’interaction
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
• 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.
• É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
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
• 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
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
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
• 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
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
- 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))
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