Title: Institut National de Recherche en Informatique et en Automatique
1 Noel De Palma Sardes INRIA Rhône-Alpes Noel.depa
lma_at_inria.fr
2Contributions à Arcad
- Intégration d'aspects non-fonctionnels
- Optimisation
- Contribution à D1.4
- Adaptation d'une application multimédia répartie
- Prise en compte du contexte dexécution
- Démonstration D4.3, D2.3
- Déploiement des applications à base de composants
- Infrastructure de déploiement
- Contribution à D4.2
3Intégration d'aspects non-fonctionnels
- Modèles à composants
- Séparation des aspects
- Implantation des intergiciels
- Objets dindirection (OI)
- Composition hiérarchique multiplication des OI
- En local surcoût significatif
- Approche
- Supprimer les OI par injection de code
- Expérimentation dans lenvironnement Java
4Approche générale
O2
O1
stub
skeleton
m()
injection
injection
5Expérimentation
- Deux aspects traités
- Javanaise réplication dobjets
- Contrôle daccès par capacités logicielles
cachées - Pour chaque aspect
- Implantation avec des OI
- Implantation avec de linjection de code
- Comparaison des performances des 2 approches
6Javanaise liaison dynamique
Void m() If (ref_o2 null)
ref_o2server.fetch(o2_id) Ref_o2.m()
ref_o2 id_o2
Object o1
m()
ref_o2 id_o2
Stub_o2
m()
Void m() lock_read() ref_o2.m() unlock()
Skel_o2
m()
Object o2
7Javanaise Injection de code (stub)
Public class O1 transient Itfo2 o2null Id
id_o2 // the id of the o2 object public
void x() // managing dynamic binding if (o2
null) o2 Server.fetch(id_o2)
o2.m()
Public class O1 Itfo2 o2null public void
x() o2.m()
8Javanaise Injection de code (skel)
Public class O2 public int id_o2 private
short lock public void m() // code of the
lock_read method // code of the method m()
// code of the unlock method
9Capacités cachées exemple du serveur
dimpression
Client
Print server
Text object
(1)
Printer object
text_capa
(2)
text_capa
(1) invoke printing (passing text_capa) (2) read
the file (using text_capa)
10HSC implantation
Print server
Client
printer_skel
caller
print(t)
print(t)
print(t)
printer_stub
printer
text_stub
text
text_skel
inutile
11HSC code
void init() println("Access Violation !")
void print(Text_itf text) obj.print(text)
obj.print()
obj.print()
obj.print()
Client
Printer_stub
Server
Printer_skel
String read() return obj.read() void
write(String s) println("Access Violation
!")
text.read
create
Text
Text_skel
obj.read
12Mesures
m(O3)
O1
O2
O3
13Conclusion sur linjection
- Langage de description dinjection
- Pattern poids mouche
- Implantation du pattern par injection de code
- Explorer dautres aspects
- Application à des structures de composants
hiérarchiques
14Adaptation d'une application multimédia répartie
- Variations des capacities réseau
- Variations des capacités matérielles des
terminaux - Variations des capacités logiciels
Diffusion TV
Comment gérer cette hétérogénéité, pour offrir un
accès efficace à tous les clients ? gt Adaptation
dynamique sur un proxy
15Approche
- Adaptation sur des nuds intermédiaires
- Pourquoi ladaptation sur des proxy
- Adaptations transparentes aux applications
installées sur le client et le serveur - Configuration dynamique du proxy en fonction des
conditions dexécution
16Adaptation par transcodage
- Transcodage transformation des données
multimédia, à partir dun format original vars un
autre format en sortie
17Configuration dynamique du proxy
- Configuration dune chaîne de transcodage à
partir de composants multimédia
18Expérimentation
- Environnement dexpérimentation
19Conclusion sur Adaptation d'une application
multimédia répartie
- Transcodage des flux multimédia pour mieux gérer
lhétérogénéité - Expérimentations dans plusieurs scénarios
dapplications - Gains de performances significatifs
20Infrastructure dadministration dapplications
réparties
- Administration
- Déploiement
- Installation du Code
- Instanciation
- Démarrage
- Surveillance
- Reconfiguration
- Les applications réparties sont difficiles à
déployer, à administrer
21Problématique
- Cest une application répartie complexe
- Difficultés liées à la répartition
- Difficultés liées à la programmation de la
fonction dadministration
22Contexte
- Projet OLAN
- Objectif
- Programmation des applications
- Administration des applications
23Vue densemble
24Architecture
- Composants administrables
- Logique dadministration du composant
- Modèle abstrait du composant
- Opérations de configuration/reconfiguration/survei
llance sur le - composant
25Architecture
- Niveau de Contrôleur
- Logique dadministration de lapplication
- Hiérarchie de composants contrôleurs
- Passage à léchelle de la fonction
dadministration
26Architecture
- Contrôleur
- Modèle abstrait de lapplication
- Opérations de configuration/reconfiguration,
surveillance de lapplication - Fiabilité des communications
27Architecture
- Service de contrôle
- Intermédiaire outils/contrôleurs
- Création de la hiérarchie de contrôle
- Communication avec les contrôleurs
28Mise en oeuvre
- Modèle dagent AAA
- Objets réactifs se comportant suivant un
modèle événement réaction . - Propriétés des agents
- État persistant
- Réactions atomiques
- Propriétés des communications
- Asynchrones (mode déconnecté)
- Fiables (garantie de délivrance)
29Exemple
- Pare-feux
- Protection dun réseau par rapport à des attaques
- Fichiers de trace ( log )
- Application de gestion de log
- Analyse a posteriori
- Détection dintrusion, statistiques, compression
30Exemple
- Application de gestion de log distribuée
- Fédération de pare-feux
- 100 pare-feux, 50000 machines
- Coopération des applications de log
- Vision globale pour le diagnostic des pannes et
des attaques
31Exemple
32Conclusion
- Problématique
- Applications réparties difficiles à administrer
- Détecter les problèmes
- Effectuer des opérations de maintenance
- Besoin dune infrastructure dadministration
- Application répartie complexe à construire
- Difficultés liées à la répartition
- Difficultés liées à la programmation de la
fonction dadministration
33Conclusion
- Contributions
- Infrastructure dadministration
- Vision cohérente de lapplication
- Opérations de surveillance et de maintenance
- Validée par lapplication de gestion de log
- Algorithmes de reconfiguration
- Cohérence globale des applications
- Modèle de transaction étendue