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