02-agent mobile

Transcription

02-agent mobile
Plan
 Agents mobiles
Programmation par agents
 Exemples de code mobile
 Modèles à agents mobiles
 Principes et mise en œuvre
[email protected]
http://rangiroa.polytech.unice.fr
 Evaluation quantitative
 Agents intelligents – en dehors des objectifs de ce cours
mise à jour septembre 2010
2
Un agent… mobile
C’est quoi ?
 Il n’y a pas de définition unique
 IEEE Spectrum April 1998 paper by Morreale
 2 points de vue
 Système
 S’exécute dans un environnement d’exécution donné
 Réactif, autonome, possède un but
 Communiquant, mobile
 Apprenant, digne de confiance
 Utilisateur final (fera l’objet de la seconde partie du cours)
 Assistant personnel qui peut faire des actions à la place de l’utilisateur
 Possibilité de délégué à la demande des tâches
Agents… mobiles
3
mise à jour septembre 2010
4
mise à jour septembre 2010
1
Principe de fonctionnement
Agents et domaines de recherche
 Coté système
 Systèmes répartis
 Ne reste pas sur la station ou il a été créé
 Architectures et protocoles pour exécuter des ‘objets’ mobiles
 Peut se transporter (migrer) au travers du réseau vers une autre
 Sécurité, tolérances aux fautes, désignation
station, disparaît du site de départ après migration
 Peut emporter un état lors de la migration
 Est capable de communiquer avec d’autres agents, avec les stations
visitées
 Langages de programmation
 Code mobile, sûreté, construction syntaxique
 Langages pour la communication entre agents
 Intelligence artificielle
 Coté utilisateur
 Intelligence, raisonnement, apprentissage, coopération
 Est autonome
 Peut raisonner et prendre des initiatives
 S’adapte à un environnement changeant
mise à jour septembre 2010
5
Ce n’est pas nouveau...
Migration de processus
Une évolution…
Migration des objets
 Utilisé dès le début des années 1980 pour faire de la régulation de
 Permettre de coupler des objets dans des espaces virtuels
charge dans un réseau local
différents sur différents noeuds
 Locus (UCLA), Sprite (UC Berkeley), Condor (Wisconsin)
 Nécessite la mobilité du code et des données
 Un processus qui n’était pas terminé pouvait continuer son exécution
 Emerald (1986) supporte la mobilité des objets avec un contrôle
sur un autre site par migration :
du programme (Univ. of Washington - 1986)
 du code,
 Guide (1987) supporte la mobilité autonome des objets (un objet
 des données,
est couplé sur le site qui l’utilise)
 du tas,
 Chorus distributed system (1988) supporte la mobilité autonome
 de la pile,
des objets (un objet décide ou il doit être couplé)
 des descripteurs ouverts (fichiers),
 du compteur ordinal
7
mise à jour septembre 2010
6
 Toutes ces approches nécessite un système homogène
mise à jour septembre 2010
8
mise à jour septembre 2010
2
Evolution suivante...
Agents mobiles
 Un agent mobile est un objet capable de migrer de manière
Appel de procédure et mobilité du code
Code du service + data
Client
Server
resultats (data)
autonome d’un site à un autre afin d’exécuter des actions décrites
par son créateur
Le code est transporté
sur le site du serveur
Client
agent
(code+data)
• Remote Evaluation model by Stamos and Gifford
(MIT - 1990).
• Java (Sun Microsystems - 1995) permet la migration du code
sur des plate-formes hétérogènes
mise à jour septembre 2010
Agent mobile
Server 2
Server 3
9
Server 1
mise à jour septembre 2010
10
Exemples de code mobile
Exemples de code mobile
 SQL
 Postscript
 code exécuté par machine physique ou virtual
 code exécuté par un interpréteur SQL
 reporte le travail sur différents sites
 code déplacé vers le serveur de base de données
%!PS-Adobe-3.0
%%Title=...
ggfdgf
...
client
%%EOF
site A
interprète
(ghostview)
11
site B
ggfdgf
requête SQL
interprète
SQL
SGBD
imprimante
postscript
mise à jour septembre 2010
12
serveur
mise à jour septembre 2010
3
Pourquoi utiliser des agents mobiles
Exemples de code mobile
 S’affranchir du réseau
 Applets
 programme exécutable inclus dans une page HTML
 Latence, débit
 exécution sur le site qui télécharge la page HTML
 Mode déconnecté
 Permet d’encapsuler des protocoles
<HTML>
 Par un modèle de fonctionnement asynchrone et autonome qui
chargement
 Privilégie les interactions locales
[...]
applet
 Permet l’installation d’interface locale spécifique
communication
 Permet de s’affranchir de l’hétérogénéité
 En ayant un un modèle robuste
MV Java
client
13
serveur
mise à jour septembre 2010
Quelques exemples d’applications
Modèle à agents mobiles
Principes
 Commerce électronique : suivi de salle de marché
 Agent Mobile : processus, incluant du code et des données,
pouvant se déplacer entre des machines pour réaliser une tâche
 Assistant personnel : filtrage, recherche d’information
 Agent
 Collecte d’information distribuées
 Monitoring et notification
 Objet actif
 Objets : encapsule un état
 Agents : encapsule un état + exécute un comportement
 Administration, diffusion de logiciel, mise à jour
 communique potentiellement avec d'autres agent
 Mise en cohérence de données dupliquées
 Objet mobile
 se déplace en fonction de ses besoins
 suit parfois un itinéraire
 Système de workflow et système collaboratif
 Détection d’intrusion
 Calcul parallèle
15
mise à jour septembre 2010
14
 Jeux sur internet
mise à jour septembre 2010
16
mise à jour septembre 2010
4
Modèle à agents mobiles
Exemple 1
Modèle à agents mobiles
Exemple 2
 Agent notificateurs/réactifs
 Agents itinérants
 réalisant une suite
 attend une information ou un événement
d'interaction avec des
serveurs
 privilégie les accès locaux
 exemple : jointure entre deux
sources de données
 prévient un usager ou déclenche une action
 exemples
 recherche d'emploi dans des journaux
 gestion d'un portefeuille d'actions
notification
client
App
 un serveur retourne une liste de
agent
17
Service
serveurmise à jour septembre 2010
18
noms (Hôtels)
 un serveur gère un annuaire
téléphonique
 les serveur sont gérés par des
institutions différentes
Annuaire
mise à jour septembre 2010
Modèle à agents mobiles
Exemple 3
Les fonctions d’une plate-forme à agents mobiles
 Agent d'adaptation
 Une plate-forme à agents permet :
 extension des fonctions du service
 La création des agents
 adaptation aux besoins spécifiques des clients
 L’exécution des agents
 exemple : compression/chiffrement de documents
 un client demande un document à un serveur
 le client passe un algorithme de compression ou de chiffrement des données
 le code de cet algorithme est propre au client
 La migration des agents
 La terminaison des agents
agent avec code
de compression
App
19
Serveur
document
compressé
mise à jour septembre 2010
20
mise à jour septembre 2010
5
Modèle à agents mobiles
Définitions
Modèle à agents mobiles
Définitions
 Agents
 Déplacement
 unité de structuration des applications
 entre des places
 agents mobiles ou stationnaires
 parfois notion d’itinéraire
 ressources allouées (contrôlées) aux agents
 permet de co-localiser des agents pour des interactions locales
 Places
 Interactions
 endroit que peut visiter un agent
 entre des agents co-localisés : meetings
 Communication synchrone
 Appel de méthode ou partage d’objets
 plus fin que le site
 On peut avoir plusieurs places sur un site
 Permet un contrôle d’accès par place
 entre des agents distants : messages
 Communication asynchrone directe (envoie de messages à un agent) ou indirecte
(envoie de messages à une boite aux lettres
 certaines places prédéfinies pour un agent
 home
mise à jour septembre 2010
21
mise à jour septembre 2010
22
Modèle à agents mobiles
Définitions
Modèle à agents mobiles
La mobilité
 Contrôle d’accès
 Agents mobiles = paradigme pour la calcul distribué
 Code mobile : migration du code
 Objets mobiles : migration du code + données
 comme toujours, deux aspects
 Identification (authentification)
 de l’agent ou de la place
 Processus mobiles : migration du code + données + état des threads
 Agents mobiles : migration du code + données + état des threads +
 Description des permissions
 Que peut faire un agent sur cette place
 Que peut faire cette place sur cet agent
 L’un doit se protéger de l’autre
autorités de son propriétaire
 Différentes mobilité en ‘let’ dans le monde Java
 Applet : transfert du code/donnée depuis un serveur vers un client
(download)
 Servlet : upload de code depuis un client vers un serveur
 Agents mobiles : pas de notion de client ou de serveur, peu effectuer
plusieurs sauts.
23
mise à jour septembre 2010
24
mise à jour septembre 2010
6
Mise en œuvre de la mobilité
Obtention du code et des données
Mise en œuvre de la mobilité
Sender
Receiver
Suspend Execution
Resume Execution
Serialize Agent
Deserialize Agent
Server
(c) Class at Server
Class Code
Encode Data
Transfer Data
Origin
Destination
Decode Data
Agent
Agent
Receive Data
Class Code
Class Code
(b) Class at Origin
(a) Class at destination
Network
25
mise à jour septembre 2010
Modèle à agents mobiles
Les problèmes
Mobilité faible / forte
 Mobilité
 Mobilité faible
 Migration du code + données
 hétérogénéité du code, des données et du système
 hypothèse sur l'environnement (imposer homogénéité)
 gestion par une machine virtuelle
 Données = variables
d’instance
 Après migration l’éxécution
débute au début du
programme
 capture de l'état d'un agent
 délimiter l'ensemble des objets à déplacer avec l'agent
 capture de l'état de la pile d'exécution
 migration faible
 migration forte
27
mise à jour septembre 2010
26
 Exemple : applet
mise à jour septembre 2010
28
• IEEE TSE May’98 paper
by Fugetta, Picco, Vigna
• Thèse Sarah Bouchenak,
Grenoble
 Mobilité forte
 Migration du code + données
+ état éxécution
 Données = variables
d’instance
 Execution State – variables
locales et variables liés aux
processus/threads (pile /
tas / compteur ordinal / …)
 Après migration l’exécution
continu a l’endroit ou elle a
été suspendue
mise à jour septembre 2010
7
Exemples
Mobilité forte
 La fonction calcule est founie
29
par la place
 Le tableau site contient les
différentes places à visitée
 run () {
For (i=0; i<N;i++) {
Y := calcule (X);
moveto (site[i+1]);
}
}
RPC vs agents mobiles
 RPC
Mobilité faible
 Agents mobiles
 Un « processus demande un traitement qui
 Même structure de donnée
   int status = 0;
run () {
if (status != N) {
Y := calcule (X);
status++;
moveto (site[i++]);
}
}
mise à jour septembre 2010
  CLIENT
est dans autre « processus »
Message d’appel suivi d’un message de
réponse
La procédure appelée est locale au processus
distant
Client et serveur sont d’accord a priori sur le
protocole à utiliser
Interaction et communication en continu
entre le client et le serveur
network
SERVER
 Au lieu de demander un traitement, l’agent
est à l’initiative du traitement
 Messages : c’est généralement l’agents lui-
même (procédure + donnée + état)
 Émetteur : celui qui a commencé le
traitement - récepteur : celui qui poursuit le
traitement
 Interaction en continu… mais pas
communication en continu
CLIENT
network
Mobile
Agent
Service
mise à jour septembre 2010
30
SERVER
Modèle à agents mobiles
Les problèmes - Utilisation de ressources partagées
Modèle à agents mobiles
Les problèmes - Sécurité
 référence à distance
 attaque d'un hôte par un agent mobile
 confinement de l'exécution
 par le matériel
 par le logiciel
 copie
 liaison par équivalence
 authentification de l'agent pour délimiter ses droits d'accès
 attaque d'un agent par un hôte
 très difficile dans le cas général
R
31
avant
?
?
mise à jour septembre 2010
après
32
 Solution dans le cadre du calcul : brouillage de code
 A veut faire calculer F(x) sur le site B sans révéler F à B (F linéaire)
 A calcule Z = S.F (S matrice inversible choisie par A)
 A envoie Z à B et B calcule y = Z(x) et envoie y à A
 A calcule S-1(y) = F(x)
mise à jour septembre 2010
8
Modèle à agents mobiles
Un modèle qui a de nombreux avantages
 Modèle d’exécution
asynchrone et autonome
 Justifié
 Permettre le déployement
33
dynamique de composants
d’applications sur un nombre
arbitraire de sites
 Fonctionne sur des platesformes hétérogènes
 Parfaitement adapté aux
utilisateurs mobiles pouvant
être déconnectés
Modèle à agents mobiles
Quelques plates-formes
 Autres environnements (Tcl,
 Sur Java
 A justifier
 AgentTcl (Dartmouth College)
 http://www.trl.ibm.co.jp/aglets
la bande passante et la charge
du réseau
 Encapsuler des protocoles
 Adaptabilité de l’application
par migration
 Odyssey (General Magic Inc.)
 http://www.cs.dartmouth.edu/~agent
 Ara (Université de Kaiserslautern)
 http://genmagic.com/technology/
mobile_agent.html
 http://www.uni-kl.de/AG-Nehmer/
 Concordia(Mitsubishi)
Projekte/Ara
 Tacoma (Université de Tromsø et
 http://www.meitca.com/HSL/
Projects/Concordia
Cornell)
 Voyager (Object Space)
 De très nombreuses
 http:/www.cs.uit.no/DOS/Tacoma
 http://www.objectspace.com/voyager
applications peuvent être
programmée selon ce modèle
mise à jour septembre 2010
Python, ...)
 Aglets (IBM)
 Réduire la consommation de
 MOA (OSF/OpenGroup)
 http://www.osf.org/RI/java/moa
mise à jour septembre 2010
37
Modèle à agents mobiles
Aglets
 un projet d’IBM
 http://www.trl.ibm.com/aglets/
 Les sources sont ici : http://sourceforge.net/projects/aglets/
 conçu sur Java
User
Interface
Etude d’une plate-forme
Aglet
38
A
A
A
Security
Manager
Network
Daemon
mise à jour septembre 2010
39
Network
mise à jour septembre 2010
9
Pourquoi Java ?
 Bénéfices
Objectifs
 Limitations
 Indépendant de la plate-forme
 Peu de support pour le
 Exécution sûres
contrôle des ressources
 Pas de référence ‘protégées’
 Chargement de classe
dynamique
 Programmation multi-thread
 Persistance par sérialisation
 Simplicité et extensibilité
 La programmation d’une Aglet par un programmeur Java doit être
aisée
 Spécifications (JAAPI) plus que plate-forme
 nécessité d'un objet proxy pour
 Indépendant des plates-formes
protéger l'accès aux méthodes
publiques
 Une Aglet doit pouvoir s’exécuter sur n’importe quelle place
respectant la spécification JAAPI
 Pas de support pour capturer
et restaurer un contexte
d’exécution
 Standard industriel
 JAAPI doit devenir un standard industriel
 Security
mise à jour septembre 2010
40
41
Les éléments du modèles
 Une aglet non fiable ne doit pas être un risque pour la place qui
l’exécute
mise à jour septembre 2010
Aglet
 Une aglet est un objet java mobile qui peut visiter plusieurs sites.
Interfaces
Classes
 AgletContext
 Aglet
 FutureReply
 AgletIdentifier
 MessageManager
 AgletProxy
 Il est autonome i.e. il s’exécute dans sa propre thread
 Il est réactif i.e. il répond au message qu’il reçoit
  proche du modèle d’acteurs ou des JavaBean
 Itinerary
 Message
En rouge, les éléments du modèle détaillé après
42
mise à jour septembre 2010
43
mise à jour septembre 2010
10
Context
Proxy
 Un contexte est le lieu d’exécution d’une aglet
 Un proxy est le représentant d’une aglet
 i.e. une place
 Il empêche l’accès direct aux méthodes publiques de l’aglet
 Implémenté par un objet stationnaire
 Cache la localisation de l’aglet
 Founit tout ce qui est nécessaire pour exécuter de manière homogène
(y compris en environnement hétérogène) une aglet
 Protège le système hôte contre les aglets malveillante
 Un site peut contenir plusieurs contextes
mise à jour septembre 2010
44
mise à jour septembre 2010
45
Message
Itinerary
 Un message est un objet échangées entre aglets.
 Liste de contexte à visiter auquel est associé une liste d’action
 Selon les besoins, il peut être utilisé de manière synchrone ou
 Inclus le problème du routage (identification d’un noeud physique
asynchrone. Le mode asynchrone permettant la coopération lache
entre aglets
à partir d’une description symbolique)
 Fournit une abstraction pour mettre en œuvre de modèle
d’itinéraire non triviaux.
 Un gestionnaire de message permet de contrôler la concurrence
des messages entrants
46
mise à jour septembre 2010
47
mise à jour septembre 2010
11
Identifier
En résumé
 Chaque aglet possède un identifiant
 Les abstractions
 Unique
 Contexte : une place
 Immuable
 Aglet : un agent mobile
 AgletIdentifier : un identifiant unique
 AgletProxy : un objet d’accès
 Attribué à sa création
 Message
 message asynchrone
 appel de procédure synchrone
Proxy
Agents
Place
Engine
Resources
Host
mise à jour septembre
2010
mise à jour septembre 2010
48
Mise en œuvre d’une aglet
Mise en œuvre d’une aglet
 Interface
 Une classe qui étend la classe
Aglet
 Etat
 Un graphe d’objets
sérialisable
 Implémentation
 Des méthodes prédéfinies de
gestion des aglets qu’il faut
implémenter
 Un modèle de
programmation réactif sur
une association événement 
réaction
Méthode à ne pas surcharger
sauf besoin spécifique
Méthodes à surcharger
(livrées vides)
 Aglet.dispatch (URL url)
 Aglet.onCreation (Object
// déplace l’aglet dans la place url
 Aglet.deactivate (long time)
 Listener
// Suspend l’exécution
 Aglet.clone ()
Interface
// Duplique l’aglet
 Aglet.getAgletContext ()
Implementation
// récupère la place courante
init)
// executé lors de la création
 Aglet.run ()
// lancé lors de l’arrivée sur la place
 Aglet.HandleMessage
(Message msg)
// action lors de la réception d’un
message
 Aglet.onDisposing ()
State
50
49
Identifier
mise à jour septembre 2010
51
// action lors de la desctruction de
mise à jour septembre 2010
l’aglet
12
Autres méthodes de la classe aglet
Proxy et message
Ma première Aglet
public class Hello extends Aglet {
 Proxy
public void onCreation (Object init) {
 AgletContext.getAgletProxies()
System.out.println (“created!”);
}
 AgletContext.getAgletProxy (AgletID)
public void run () {
 Un proxy peut être transmis dans un message
System.out.println (“hello!”);
}
 Message
public boolean handleMessage (Message msg) {
 Composé de deux champs : un type (String), un objet
if (msg.sameKind(“sayHello”)) {
System.out.println (“hello!”);
 appel synchrone : AgletProxy.sendMessage (Message msg)
return true;
 appelsynchrone à résultat différé (asynchrone avec futur) :
}
AgletProxy.sendAsyncMessage (Message msg)
return false;
}
 Appel asynchrone : AgletProxy.sendOnewayMessage (Message msg)
public void onDisposing () {
System.out.println (“bye!”);
52
}}
mise à jour septembre 2010
mise à jour septembre 2010
53
Autres méthodes de la classe aglet
Mobilité
Modèle à agents mobiles
Programmation de la mobilité
 Un listener pour la mobilité (MobilityListener)
 Pas de mobilité “forte” du code
 Des événements imposées par la plate-forme
 agletArrived (ContextEvent ev)
 agletDispatched (ContextEvent ev)
 agletReverted (ContextEvent ev)
onDispatching ()
aglet
 Des réactions définies par le programmeur
 onArrival (MobilityEvent l)
// quand l’agent arrive sur une place
 onDispatching (MobilityEvent l)
// quand l ’agent part d ’une place
 onReverting (MobilityEvent l)
// quand l’agent part d’une place pour
revenir à la place ‘home’
54
mise à jour septembre 2010
dispatch
onArrival ()
aglet
retract
onReverting ()
55
mise à jour septembre 2010
13
Modèle à agents mobiles
Programmation de la mobilité
Autres méthodes de la classe aglet
Cycle de vie, Clonage, Persistance
 Un listener pour chaque classe d’événement
class myListener implements MobilityListener {
public void onDispatching (MobilityEvent l) {
 Liés aux contextes
 contextStarted (ContextEvent ev)
 contextShutdown (ContextEvent ev)
System.out.println (“I am leaving!”);
}
public void onReverting (MobilityEvent l) {
System.out.println (“I am going home!”);
 Cycle de vie d’une aglet
 agletCreated (ContextEvent ev)
 agletCloned (ContextEvent ev)
 agletStateChanged (ContextEvent ev)
 agletDeactivated (ContextEvent ev)
 agletActivated (ContextEvent ev)
}
public void onArrival (MobilityEvent l) {
System.out.println (“I have arrived!”);
}
}
public class MyAglet extends Aglet {
public void onCreation (Object init) {
MobilityListener listener = new myListener();
addMobilityListener(listener);
56
}}
mise à jour septembre 2010
mise à jour septembre 2010
57
Modèle à agents mobiles
Application à Java
 Avantages de Java
 Diffusion sur toutes les machines
 Mobilité du code et des objets
 chargement dynamique de classes (ClassLoader)
 sérialisation des objets Java
 Sécurité assurée par l'environnement
 confinement : pas d'adresses virtuelles
 contrôle d'accès aux ressources (SecurityManager)
Agents mobiles
quelques justifications
60
mise à jour septembre 2010
61
mise à jour septembre 2010
14
Modèle à agents mobiles
Expérimentation : coûts de base
Modèle à agents mobiles
Conception sur Java
 Sérialisation de l'état de l'agent
 Objectif : mesurer les coûts des principaux mécanismes de Java
 Envoi du code et de l'état de l'agent
rentrant dans la conception
 Développement d'une plate-forme minimale
 Environnement :
 Destruction de l'agent sur le site origine
 Création d'un thread sur le site destination
 Chargement du code de l'agent (chargeur privé)
 Dé-sérialisation de l'agent
 Exécution
mise à jour septembre 2010
62
63
 Coûts des principales phases
mise à jour septembre 2010
 Coût de la migration (plate-forme minimale)
 coût de Java
 prohibitif par rapport au réseau local
 acceptable par rapport à l'Internet
Coût de la migration d'un agent minimal sur réseau local
Coût de la migration d'un agent minimal sur Internet
 grande partie provenant du chargeur privé
64
0.6 ms
20 ms
842 Ko/s
129 Ko/s
1 µs
3,1 ms
44 ms
Modèle à agents mobiles
Expérimentation : coûts de base
Modèle à agents mobiles
Evaluation des coûts
Sérialisation de l'agent
Transfert de l'agent sur le réseau local
Transfert de l'agent sur Internet
Installation de l'agent avec le chargeur
de Java
Installation de l'agent avec un chargeur
privé à l'agent
Latence sur le réseau local
Latence sur Internet
Débit sur le réseau local
Débit sur Internet
Appel local de méthode Java
Appel à distance de méthode Java sur le réseau local
Appel à distance de méthode Java sur Internet
35 ms
148 ms
 Coût de la migration (Aglets)
3,2 ms
8 ms
121 ms
4.3 ms
Coût de la migration d'un Aglet minimal sur réseau local
Coût de la migration d'un Aglet minimal sur Internet
240 ms
369 ms
23,8 ms
mise à jour septembre 2010
65
mise à jour septembre 2010
15
Modèle à agents mobiles
Expérimentation : intérêt/RMI
Modèle à agents mobiles
Expérimentation
 Objectif : étudier l’intérêt de la technologie agents mobiles en
 Trois machines réparties sur Internet
utilisant
 en France (INRIA)
 le modèle client serveur (Java-RMI)
 en Grande-Bretagne (QMW)
 une plate-forme minimale que nous avons réalisée
 en Suisse (Université de Genève)
 une plate- forme très répandue (Aglets)
 Aglets
 Résultats visés
 Java-RMI
 comparaison entre le modèle client-serveur et le modèle à agents
 Notre plate-forme minimale
mobiles
 comparaison entre une plate-forme minimale et une vrai plate-forme
à agents mobiles
mise à jour septembre 2010
66
mise à jour septembre 2010
67
Modèle à agents mobiles
Expérimentation
Modèle à agents mobiles
Expérimentation
 Capacités du réseau
 Comparaison aller-retour avec agent mobile et RMI
 Taille enregistrement : 80 octets
 entre France et GB
3500
3000
2500
2000
1500
1000
500
0
RMI
1400
1200
800
1000
600
400
Agle ts a nd Age nt
1
129
280
123
200
20
16
26
Débit (Ko/sec)
0
France - GB
GB - Suisse
Suisse - France
Latence (ms)
Temps en millisecondes
Connexion
Nom bre d'e nre gis tre m e nt
68
mise à jour septembre 2010
69
mise à jour septembre 2010
16
Modèle à agents mobiles
Expérimentation
Modèle à agents mobiles
Expérimentation
 Application de jointure
 Application de jointure : résultats
 rpcC-A(n) + n*rpcC-B(1) > AgC-A(0) + AgA-B(n) + AgB-C(2*n)
 Ag(n) augmente plus vite que rpc(n) ...
A
A
rpc (1)
C
C
rpc (n)
B
B
mise à jour septembre 2010
70
mise à jour septembre 2010
71
Modèle à agents mobiles
Expérimentation
Modèle à agents mobiles
Expérimentation
 Application de compression
 Application de compression : résultats
App
Serveur
document
compressé
 La compression est potentiellement rentable si
 tc + fc * S/dr + td < S/dr
 ce qui donne :
 dr < 74 Ko/s pour un fichier de 100 Ko
 dr < 164 Ko/s pour un fichier de 500 Ko
 Mais le cout d’un transfert par agent augmente plus vite ...
72
mise à jour septembre 2010
73
mise à jour septembre 2010
17
Modèle à agents mobiles
Conclusion
La plate-forme mobilet
 Conclusion
 Arborescence des fichiers
Mobilet
`-----appli
 agents mobile : nouveau modèle basé sur la mobilité
 Java fournit les outils pour le support d'agents mobiles
|
`-----hello
|
`-----mesure
|
`-----vente
`-----system
 Intéressant pour des réseaux lents ou lors de déconnexions
 Limites et perspectives
 intégration avec les autres modèles
 transparence de la programmation
 migration faible/forte
 utilisation de ressources partagées
mise à jour septembre 2010
74
mise à jour septembre 2010
75
Travail à faire
Mini projet
 Pour la semaine prochaine
 implémenter l'application de commerce électronique à l'aide de la
 Avoir installé la plate-forme
plate-forme Mobilet
 Avoir programmé l’exemple suivant
 Écrire un agent mobile et mesurer le temps d’un aller retour d’un agent entre 2 JVMs de
la même station
 De même mesurer le coût d’un appel de procédure entre 2 JVMs de la même station
 Identification des manques
 Modification de la plate-forme
 Mise en forme de la démonstration
 Justifier l'intérêt d'un tel modèle pour cette application
76
mise à jour septembre 2010
77
mise à jour septembre 2010
18