Plan. Programmation par agents. Un agent mobile C est quoi?



Documents pareils
Messagerie asynchrone et Services Web

Conception des systèmes répartis

Remote Method Invocation (RMI)

RMI le langage Java XII-1 JMF

Software Engineering and Middleware A Roadmap

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

Intergiciel - concepts de base

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Mise en œuvre des serveurs d application

Plan du cours. Autres modèles pour les applications réparties Introduction. Mode de travail. Introduction

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

18 TCP Les protocoles de domaines d applications

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Mécanismes pour la migration de processus

Serveurs de noms Protocoles HTTP et FTP

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

WEA Un Gérant d'objets Persistants pour des environnements distribués

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

et Groupe Eyrolles, 2006, ISBN :

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Introduction aux applications réparties

NetCrunch 6. Superviser

2 Chapitre 1 Introduction

Java et les bases de données

Remote Method Invocation Les classes implémentant Serializable

Agents mobiles pour la recherche d'informations sur des réseaux hétérogènes. D.Picard & A.Revel

Couche application. La couche application est la plus élevée du modèle de référence.

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters AVANTAGES

Services OSI. if G.Beuchot. Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique

Patrons de Conception (Design Patterns)

Gestion répartie de données - 1

La carte à puce. Jean-Philippe Babau

GEI 465 : Systèmes répartis

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Le modèle client-serveur

TP1 : Initiation à Java et Eclipse

Java - RMI Remote Method Invocation. Java - RMI

Projet de Veille Technologique

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Module BDR Master d Informatique (SAR)

as Architecture des Systèmes d Information

Citrix XenApp 7.5 Concepts et mise en oeuvre de la virtualisation d'applications

Conception et réalisation d uned architecture tolérant les intrusions pour des serveurs Internet

La technologie Java Card TM

ORDONNANCEMENT CONJOINT DE TÂCHES ET DE MESSAGES DANS LES RÉSEAUX TEMPS RÉELS 4. QUELQUES EXEMPLES DU DYNAMISME ACTUEL DU TEMPS RÉEL

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

Hébergement de site web Damien Nouvel

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

CORBA haute performance

Glossaire. ( themanualpage.org) soumises à la licence GNU FDL.

Cours 1: Java et les objets

Cours n 12. Technologies WAN 2nd partie

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Plan du cours. Historique du langage Nouveautés de Java 7

Remote Method Invocation en Java (RMI)

BD réparties. Bases de Données Réparties. SGBD réparti. Paramètres à considérer

Projet Active Object

Architectures n-tiers Intergiciels à objets et services web

Systèmes répartis. Fabrice Rossi Université Paris-IX Dauphine. Systèmes répartis p.1/49

Dis papa, c est quoi un bus logiciel réparti?

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Conception et contrôle des SMA tolérants aux fautes

FTP / WebDeploy /WebDAV. Manuel

2 - VMWARE SERVER.doc

Protection exhaustive de réseau corporate, optimisation de trafic Internet, administration flexible

Le passage à l échelle de serveur J2EE : le cas des EJB

Java pour le Web. Cours Java - F. Michel

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée)

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters

Application Web et J2EE

Grid Technology. ActiveMQ pour le grand collisionneur de hadrons (LHC) Lionel Cons Grid Technology Group Information Technology Department

contact@nqicorp.com - Web :

I-JVM: une machine virtuelle Java pour l isolation de composants dans OSGi

Java DataBaseConnectivity

Solutions de gestion de la sécurité Livre blanc

JF SMA'14. A3 - Agent Anytime Anywhere. une plateforme à agents distribués Oct l'expertise middleware.

Le service FTP. M.BOUABID, Page 1 sur 5

Cours 1 : La compilation

Architectures d'intégration de données

Module BD et sites WEB

Sujet Solution de sauvegarde de serveurs et postes de travail avec BackupPC et Bacula. par ALIXEN

Symantec Protection Suite Enterprise Edition Protection éprouvée pour les terminaux, la messagerie et les environnements Web

Java Naming and Directory Interface

Caches web. Olivier Aubert 1/35

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Introduction aux «Services Web»

Introduction à la Programmation Parallèle: MPI

Objets et Programmation. origine des langages orientés-objet

Corrigé des exercices sur les références

4D v11 SQL Release 5 (11.5) ADDENDUM

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Transcription:

Plan Programmation par agents Riveill@unice.fr http://rangiroa.polytech.unice.fr 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 Un agent mobile C est quoi? Agents mobiles 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 3 4 1

Principe de fonctionnement Agents et domaines de recherche 5 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 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 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 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 7 8 2

Evolution suivante... Agents mobiles Appel de procédure et mobilité du code Client Code du service + data resultats (data) Server 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 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 Client agent (code+data) Server 1 Server 3 Server 2 Agent mobile 9 10 Exemples de code mobile Exemples de code mobile Postscript code exécuté par machine physique ou virtual reporte le travail sur différents sites SQL code exécuté par un interpréteur SQL code déplacé vers le serveur de base de données %!PS-Adobe-3.0 ggfdgf %%Title=...... %%EOF site A ggfdgf client requête SQL interprète SQL 11 interprète (ghostview) site B imprimante postscript 12 SGBD serveur 3

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 <HTML> [...] applet MV Java chargement communication 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 13 client serveur 14 Quelques exemples d applications Principes 15 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 16 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 4

Exemple 1 Exemple 2 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 notification agent 17 client serveur 18 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 App Service Annuaire 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 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 agent avec code de compression App Serveur document compressé 19 20 5

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 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 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 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 6

Mise en œuvre de la mobilité Mise en œuvre de la mobilité Obtention du code et des données Sender Suspend Execution Serialize Agent Encode Data Receiver Resume Execution Deserialize Agent Decode Data Origin Agent Server Class Code (c) Class at Server Destination Agent Transfer Data Receive Data Class Code Class Code (b) Class at Origin (a) Class at destination 25 Network 26 Les problèmes Mobilité faible / forte 27 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 28 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 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 7

Exemples RPC vs agents mobiles 29 Mobilité forte 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]); Mobilité faible Même structure de donnée int status = 0; run () { if (status!= N) { Y := calcule (X); status++; moveto (site[i++]); CLIENT 30 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 network SERVER Agents mobiles CLIENT Au lieu de demander un traitement, l agent est à l initiative du traitement Messages : c est généralement l agents luimê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 network Mobile Agent SERVER Service Les problèmes - Utilisation de ressources partagées Les problèmes - Sécurité 31 référence à distance copie liaison par équivalence R avant?? après 32 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) 8

Un modèle qui a de nombreux avantages Quelques plates-formes 33 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 platesformes 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 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 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 A A A Security Manager Etude d une plate-forme Aglet Network Daemon 38 39 Network 9

Pourquoi Java? Objectifs 40 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 41 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 Les éléments du modèles Aglet Interfaces AgletContext FutureReply MessageManager Classes Aglet AgletIdentifier AgletProxy Itinerary Message 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 En rouge, les éléments du modèle détaillé après 42 43 10

Context Proxy 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 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 44 45 Message Itinerary 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 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. Un gestionnaire de message permet de contrôler la concurrence des messages entrants 46 47 11

Identifier En résumé Chaque aglet possède un identifiant Unique Immuable Attribué à sa création 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 Proxy Agents Place Engine Host Resources 48 mise à jour septembre 2010 49 Mise en œuvre d une aglet Mise en œuvre d une aglet 50 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 Interface Implementation State Identifier 51 Méthode à ne pas surcharger sauf besoin spécifique 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 Méthodes à surcharger (livrées vides) 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 12

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 )) { return false; System.out.println ( hello! ); return true; public void ondisposing () { System.out.println ( bye! ); 52 53 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) 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 Programmation de la mobilité ondispatching () onarrival () dispatch aglet retract aglet onreverting () 54 55 13

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 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 Application à Java Agents mobiles quelques justifications 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) 60 61 14

Conception sur Java Expérimentation : coûts de base 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 63 Objectif : mesurer les coûts des principaux mécanismes de Java rentrant dans la conception Développement d'une plate-forme minimale Environnement : 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 Evaluation des coûts Expérimentation : coûts de base 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é Coût de la migration (plate-forme minimale) 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 (Aglets) 64 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 3,2 ms 8 ms 121 ms 4.3 ms 23,8 ms 65 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 15

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 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 66 67 Expérimentation Capacités du réseau Connexion Latence (ms) Débit (Ko/sec) Expérimentation Comparaison aller-retour avec agent mobile et RMI Taille enregistrement : 80 octets entre France et GB France - GB 20 129 GB - Suisse 16 280 Suisse - France 26 123 Temps en millisecondes 3500 3000 2500 2000 1500 1000 500 0 0 1 RMI Aglets and Agent 200 400 600 800 1000 1200 1400 Nombre d'enregis trement 68 69 16

Expérimentation Application de jointure rpc C-A (n) + n*rpc C-B (1) > Ag C-A (0) + Ag A-B (n) + Ag B-C (2*n) Ag(n) augmente plus vite que rpc(n)... Expérimentation Application de jointure : résultats rpc (1) A A C rpc (n) C B B 70 71 Expérimentation Application de compression Expérimentation Application de compression : résultats App Serveur 72 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... 73 17

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 La plate-forme mobilet Arborescence des fichiers Mobilet `-----appli `-----hello `-----mesure `-----vente `-----system 74 75 Travail à faire Mini projet 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 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 76 77 18