Riyadh Baghdadi
Université Pierre et Marie CURIE (UPMC)
riyadh.baghdadi@etu.upmc.fr
5 novembre 2010
Motivation
La réflexion
Outil puissant qui permet
l'adaptabilité des applications
Manipulation du comportement
des objets
Motivation
• Exemple 1 : CodA
– Modèle objet (send, accept … )
– Modèle de communication (appel de méthodes...)
– Exemple d'application de réflexion : proxy
• Exemple 2 : ABCL/R3
– Architecture
– Exemple d'application : réplication
• Avantages et limites des langages concurrents réflexifs
Plan
• Exemple 1 : CodA
– Modèle objet (send, accept … )
– Modèle de communication (appel de méthodes...)
– Exemple d'application de réflexion : proxy
• Exemple 2 : ABCL/R3
– Architecture
– Exemple d'application : réplication
• Avantages et limites des langages concurrents réflexifs
CodA
Langage concurrent réflexif, 1995
Chaque comportement = objet
Modèle objet
• Exemple 1 : CodA
– Model objet (send, accept … )
– Modèle de communication (appel de méthodes...)
– Exemple d'application de réflexion : proxy
• Exemple 2 : ABCL/R3
– Architecture
– Exemple d'application : réplication
• Avantages et limites des langages concurrents réflexifs
ABCL/R3
• Architecture :
– Méta-interpréteurs : interprétation des annotations réflexives
– Méta-objets : déscription du comportement des objets
Exemple d'application
V11
V12
V13
X V21 V22 V23 V24 V25
R = V14
V15
Exemple d'application
V11
V12
V13
X V21 V22 V23 V24 V25
R = V14
V15
Exemple d'application
V11
V12
V13
X V21 V22 V23 V24 V25
R = V14
V15
Exemple d'application
V11
V12
V13
X V21 V22 V23 V24 V25
R = V14
V15
Exemple d'application
V11
V12
V13
X V21 V22 V23 V24 V25
R = V14
V15
Cas distribué
Machine 1 Machine 2
V11 V21
V12 V22
V13 V23
V14 V24
V15 V25
V1 V2
Cas distribué
Machine 1 Machine 2
V1 Copie de V2 V2
Cas distribué
Machine 1 Machine 2
V1 Copie de V2 V2
Comment implémenter ça ?
• Comment implémenter ça ?
– Lock : modifier “Accept” de V2 (bloquer les messages reçus)
– Réplication :
• Implémenter une méthode replicate-objet
• Modifier le méta-interpréteur
Modification du méta-interpréteur
• Exemple 1 : CodA
– Model objet (send, accept … )
– Modèle de communication (appel de méthodes...)
– Exemple d'application de réflexion : proxy
• Exemple 2 : ABCL/R3
– Architecture
– Exemple d'application : réplication
• Avantages et limites des langages concurrents réflexifs
Avantages/limites des langages concurrents réflexifs