18
1 [email protected] 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

Plan - i3s.unice.frriveill/mes-cours/autres-modeles/... · Pourquoi utiliser des agents mobiles S’affranchir du réseau Latence, débit Mode déconnecté Permet d’encapsuler des

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Plan - i3s.unice.frriveill/mes-cours/autres-modeles/... · Pourquoi utiliser des agents mobiles S’affranchir du réseau Latence, débit Mode déconnecté Permet d’encapsuler des

1

[email protected]

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

Page 2: Plan - i3s.unice.frriveill/mes-cours/autres-modeles/... · Pourquoi utiliser des agents mobiles S’affranchir du réseau Latence, débit Mode déconnecté Permet d’encapsuler des

2

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

Page 3: Plan - i3s.unice.frriveill/mes-cours/autres-modeles/... · Pourquoi utiliser des agents mobiles S’affranchir du réseau Latence, débit Mode déconnecté Permet d’encapsuler des

3

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 SQL

client requête SQL

mise à jour septembre 2010

Page 4: Plan - i3s.unice.frriveill/mes-cours/autres-modeles/... · Pourquoi utiliser des agents mobiles S’affranchir du réseau Latence, débit Mode déconnecté Permet d’encapsuler des

4

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

Page 5: Plan - i3s.unice.frriveill/mes-cours/autres-modeles/... · Pourquoi utiliser des agents mobiles S’affranchir du réseau Latence, débit Mode déconnecté Permet d’encapsuler des

5

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

Page 6: Plan - i3s.unice.frriveill/mes-cours/autres-modeles/... · Pourquoi utiliser des agents mobiles S’affranchir du réseau Latence, débit Mode déconnecté Permet d’encapsuler des

6

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

Page 7: Plan - i3s.unice.frriveill/mes-cours/autres-modeles/... · Pourquoi utiliser des agents mobiles S’affranchir du réseau Latence, débit Mode déconnecté Permet d’encapsuler des

7

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

Page 8: Plan - i3s.unice.frriveill/mes-cours/autres-modeles/... · Pourquoi utiliser des agents mobiles S’affranchir du réseau Latence, débit Mode déconnecté Permet d’encapsuler des

8

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 SERVER network 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

Page 9: Plan - i3s.unice.frriveill/mes-cours/autres-modeles/... · Pourquoi utiliser des agents mobiles S’affranchir du réseau Latence, débit Mode déconnecté Permet d’encapsuler des

9

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

Page 10: Plan - i3s.unice.frriveill/mes-cours/autres-modeles/... · Pourquoi utiliser des agents mobiles S’affranchir du réseau Latence, débit Mode déconnecté Permet d’encapsuler des

10

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

Page 11: Plan - i3s.unice.frriveill/mes-cours/autres-modeles/... · Pourquoi utiliser des agents mobiles S’affranchir du réseau Latence, débit Mode déconnecté Permet d’encapsuler des

11

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

Page 12: Plan - i3s.unice.frriveill/mes-cours/autres-modeles/... · Pourquoi utiliser des agents mobiles S’affranchir du réseau Latence, débit Mode déconnecté Permet d’encapsuler des

12

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écifique

Mé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

Page 13: Plan - i3s.unice.frriveill/mes-cours/autres-modeles/... · Pourquoi utiliser des agents mobiles S’affranchir du réseau Latence, débit Mode déconnecté Permet d’encapsuler des

13

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

Page 14: Plan - i3s.unice.frriveill/mes-cours/autres-modeles/... · Pourquoi utiliser des agents mobiles S’affranchir du réseau Latence, débit Mode déconnecté Permet d’encapsuler des

14

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

Page 15: Plan - i3s.unice.frriveill/mes-cours/autres-modeles/... · Pourquoi utiliser des agents mobiles S’affranchir du réseau Latence, débit Mode déconnecté Permet d’encapsuler des

15

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 msTransfert de l'agent sur le réseau local 8 msTransfert de l'agent sur Internet 121 msInstallation de l'agent avec le chargeurde Java

4.3 ms

Installation de l'agent avec un chargeurprivé à 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

Page 16: Plan - i3s.unice.frriveill/mes-cours/autres-modeles/... · Pourquoi utiliser des agents mobiles S’affranchir du réseau Latence, débit Mode déconnecté Permet d’encapsuler des

16

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

0500

100015002000250030003500

0 1

200

400

600

800

1000

1200

1400

Nombre d'e nre gis tre me nt

Tem

ps e

n m

illis

econ

des

RMIAgle ts a nd Age nt

mise à jour septembre 2010

Page 17: Plan - i3s.unice.frriveill/mes-cours/autres-modeles/... · Pourquoi utiliser des agents mobiles S’affranchir du réseau Latence, débit Mode déconnecté Permet d’encapsuler des

17

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

Page 18: Plan - i3s.unice.frriveill/mes-cours/autres-modeles/... · Pourquoi utiliser des agents mobiles S’affranchir du réseau Latence, débit Mode déconnecté Permet d’encapsuler des

18

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