• Aucun résultat trouvé

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

N/A
N/A
Protected

Academic year: 2022

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

Copied!
18
0
0

Texte intégral

(1)

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

(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

(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 client requête SQL SQL

mise à jour septembre 2010

(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

(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

(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

(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

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

(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

(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

(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

(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

(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

(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

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

(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

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

(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

(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

Références

Documents relatifs

Ici, les deux tours choisis par Alexandra s’expliquent bien avec de l’algèbre, même si les explications ne sont pas nécessairement si faciles à trouver. Deux auteurs sont à

On calcule la valeur d’un paquet connaissant le nombre de paquets identiques que l’on peut faire dans une collection. Chaque élève a le même nombre

estimates obtained using (first row) the classical CIR model, the parametric Aït-Sahalia ( 1996b ) model, the nonparametric estimator proposed by Stanton ( 1997 ), (second row)

However, the in vitro effect of single PR mutations on PI susceptibility is not always distinguishable from wild-type virus, and particular background mutations and polymorphisms

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

That opacity creates major risks since bias (for instance data not updated, partial or irrelevant) and error programming are consciously or unconsciously possible. Beyond that, our

We show in this paper that doubly lexical orders of totally balanced formal context matrices yield a unique graphical representation binding formal contexts, associated concepts

Dans la recherche d'informations sur le web, un seul agent mobile est crée. Il est chargé de se déplacer pour réaliser la tâche demandée par le client. Nous pensons que l'utilisation