Professional Documents
Culture Documents
Client/serveur vs agent
mobile
Prsent par :
Mahiaoui oussama
Khalfa amine
Introduction :
L'volution des rseaux grande chelle a permis la naissance d'un grand nombre de
nouvelles applications qui se dveloppent autour de ce type de rseau : commerce
lectronique, recherche d'information sur le web, plate-forme pour calcul rparti, etc.
Ces applications sont formes par des entits rparties et la bonne fonctionnalit ncessite la
communication et les changes entre ces entits. Aujourd'hui, le modle "client/serveur" o
les changes se font par des appels distants travers le rseau est le modle le plus utilis.
Dans ce modle, seul le client reprsente une application au sens propre du terme et le rle du
serveur est de rpondre aux demandes des clients. Le serveur construit ses rponses
indpendamment du client, ainsi une partie des donnes envoyes est inutile augmentant ainsi
le trafic sur le rseau. De plus modle exige une connexion permanente entre le client et le
serveur, ce qui n'est pas le cas des terminaux mobiles qui sont exposs la perte de la
connexion. Dans cet article nous proposons une nouvelle approche qui utilise les agents
mobiles. Ces agents sont des entits qui se dplacent d'une machine une autre sur le rseau,
sans perdre leurs codes ni leurs tats. Ainsi, en envoyant les agents l o les tches se font, les
messages changs deviennent locaux et librent d'autant la charge du rseau.
Une des applications les plus importantes dans le domaine des agents mobiles est la recherche
d'informations sur le Web. Dans ces applications (recherche des htels, rservation d'un billet
d'avion, etc...), des agents se dplacent sur diffrents sites pour rechercher des informations
pour leurs clients. De nombreux travaux ont t labors afin d'introduire la technologie
d'agents mobiles et les concepts lis cette dernire pour la recherche d'information dans des
environnements dynamiques. Le concept d'agent mobile apparat dans ce contexte comme une
solution facilitant la mise en uvre d'applications rparties.
FIGURE 1
Architecture rseau :
Architecture deux niveaux :
L'architecture deux niveaux (aussi appele architecture 2-tier, tier signifiant range en anglais)
caractrise les systmes clients/serveurs pour lesquels le client demande une ressource et le serveur la
lui fournit directement, en utilisant ses propres ressources. Cela signifie que le serveur ne fait pas
appel une autre application afin de fournir une partie du service.
FIGURE 2
Architecture 3 niveaux :
Dans l'architecture 3 niveaux (appele architecture 3-tier), il existe un niveau intermdiaire, c'est-dire que l'on a gnralement une architecture partage entre :
a. Un client, c'est--dire l'ordinateur demandeur de ressources, quipe d'une interface utilisateur
(gnralement un navigateur web) charge de la prsentation ;
b. Le serveur d'application (appel galement middleware), charg de fournir la ressource mais
faisant appel un autre serveur
c. Le serveur de donnes, fournissant au serveur d'application les donnes dont il a besoin.
FIGURE 3
Avantage :
Le modle client/serveur est particulirement recommand pour des rseaux ncessitant un grand
niveau de fiabilit, ses principaux atouts sont :
des ressources centralises : tant donn que le serveur est au centre du rseau, il peut grer des
ressources communes tous les utilisateurs, comme par exemple une base de donnes centralise,
afin d'viter les problmes de redondance et de contradiction
une meilleure scurit : car le nombre de points d'entre permettant l'accs aux donnes est moins
important
une administration au niveau serveur : les clients ayant peu d'importance dans ce modle, ils ont
moins besoin d'tre administrs
un rseau volutif : grce cette architecture il est possible de supprimer ou rajouter des clients
sans perturber le fonctionnement du rseau et sans modification majeure
Inconvnient :
L'architecture client/serveur a tout de mme quelques lacunes parmi lesquelles :
Exemple en client/serveur :
Grace la gnration dinternet, tout le monde a connait le modle client/serveur vous
demander une page HTML est le serveur vous lenvoie. Le serveur peut aussi calculer votre
page .Pour comparer les prix de plusieurs magasins, vous devez trouver les sites, vous
rendre sur chacun deux, effectuer vos recherches et noter ce que vous y trouvez. Une telle
dmarche prend un temps que beaucoup jugeront trop lev. Une solution consiste ajouter
un intermdiaire : un mta moteur de recherche qui gre le commerce lectronique Il va
interroger pour vous chaque magasin. Il en connait les langages dinterrogation et les
critres proposs. Aprs quelques instants de recherche, vous aurez la liste des dix modles
les moins chers.
Cette solution prsente encore dimportantes contraintes. La machine cliente doit tre
connecte pendant toute la recherche, elle se charge de tous les calculs et le trafic sur le
rseau est maximal : la requte est envoye chaque fois et les serveurs renvoient tous leur
page complte de rsultats.
Si lon dplace le meta moteur sur un site Web, le client se trouve alors dans une situation
beaucoup plus intressantes : la requte est envoye une seule fois et un
Nombre restreint de rsultats est renvoye. Mais finalement, nous ne faisons que dplacer le
problme. Le serveur du site qui fera les recherches rencontrera les mmes contraintes. Un
autre type darchitecture est donc envisager. Nous allons voir comment les agents mobiles
Peuvent rpondre ce type de problme.
FIGURE 4
: EXEMPLE CLIENT/SERVEUR
Domaine dapplication
Les agents mobiles sont utiliss pour adapter aux besoins des clients un service fourni par
un serveur. Nous supposons que l'objectif du serveur est de fournir un service gnrique
pouvant rpondre aux besoins varis de tous ses clients potentiels.
Afin de fournir un service gnrique, le serveur peut exporter une interface paramtrable,
mais la complexit de cette interface augmente avec la diversit des utilisations possibles du
service. De plus, il est difficile d'identifier les besoins potentiels de tous les clients. Une autre
approche consiste dcomposer le service en un ensemble d'oprations lmentaires, plus
simples, pouvant tre appeles indpendamment les unes des autres. Un client peut alors
combiner les appels ces oprations lmentaires afin d'obtenir le service dsir.
La deuxime approche est prfrable, car elle permet d'offrir un service gnrique sans
forcment connatre l'avance les besoins des clients. Par contre, elle ncessite des
interactions plus frquentes entre le client et le serveur. Dans le cadre d'une architecture
rpartie fonde sur le modle client/serveur, les interactions distance cotent cher et la
gnricit devient alors trs pnalisante. Une solution consiste alors co-localiser une partie
de l'application cliente et le service gnrique fourni par le serveur, afin de limiter les
interactions distance.
C'est ce principe qui a motiv les travaux autour des extensions de systmes d'exploitation
(Spin [BER 95], Exokernel [ENG 95]). Un service systme gnrique ncessite de nombreux
appels systmes qui sont coteux. Les systmes extensibles excutent une partie de
l'application dans le mme espace d'adressage que le systme d'exploitation, afin de rduire
le cot des appels au systme par cette partie de l'application. Nous nous proposons
d'appliquer cette technique en utilisant des agents mobiles dans le cadre d'applications
rparties utilisant des serveurs d'information.
En utilisant des agents mobiles, un client peut dvelopper un service spcialis en fonction
de ses besoins en s'appuyant sur le service gnrique fourni par le serveur. Le service
spcialis du client peut tre envoy sur le site du serveur sous la forme d'un agent mobile,
ce qui implique que les interactions entre le service spcialis et le service gnrique seront
des appels locaux sur la machine serveur. La figure 1 illustre ce schma.
FIGURE 1.
FIGURE 2.
FIGURE 3.
Implmentations :
Chaque implmentation des agents mobiles prsente ses spcificits, ses avantages et ses
inconvnients. Nous allons ici en citer deux, parmi les plus connus.
Telescript de General Magic est connu pour tre la premire implmentation commerciale des agents
mobiles.
Il sagit dun langage interprte que GeneralMagic a remplac par Odyssey (bas sur Java). On y
trouve,
En plus du concept dagent, les notions suivantes : places (lieux virtuels), travel (pour aller
de place en place), meetings (quand deux agents se rencontrent sur une place), connections
(quand deux agents ne sont pas sur la mme place et quils communiquent), autorits (pour
ddfinir le niveau dautorisation) et permits (possibilits dexcuter des instructions ou
daccder `a des ressources).
Le plus connu des projets du monde Java nous vient de chez IBM Japon, il sagit dAglets . Ce nom a t
cre partir des mots Agent et Applet, ce qui exprime assez clairement ce quest Aglet. Pour crer un
agent
mobile avec Aglets, il suffit dcrire une classe qui tende la classe Aglet. Cette classe
dispose de mthodes dfinir telles que onCreation, onArrival, onDisposing, etc. On a donc
affaire des objets Java (srialisables et clonables) qui ont en plus la facult de se dplacer.
Avantages et inconvnients
En pratique, la mobilit d'agent permet de rapprocher client et serveur et en consquence de
rduire le nombre et le volume des interactions distantes (en les remplaants par des
interactions locales), de spcialiser des serveurs distants ou de dporter la charge de calcul
d'un site un autre. Une application construite base d'agents mobiles peut se redployer
dynamiquement suivant un plan pr-tablit ou en raction une situation particulire, afin
par exemple d'amliorer la performance ou de satisfaire la tolrance aux pannes, de rduire
le trafic sur le rseau, ou de suivre un composant matriel mobile. La mobilit du code offre
un premier niveau de flexibilit aux applications. La dcentralisation de la connaissance et
du contrle travers les agents, et la proximit physique entre les agents et les ressources
du systme renforce la ractivit et les capacits d'adaptation.
La mobilit ne se substitue pas aux capacits de communication des agents (la
communication distante reste possible) mais les complte ; afin de satisfaire aux contraintes
des rseaux de grande taille ou sans fil (latence, non permanence des liens de
communication), les agents communiquent par messages asynchrones le plus souvent.
Les agents mobiles, bien qu'ils connaissent quelques difficults, restent une architecture
approprie pour la manipulation de grands volumes de donnes notamment des donnes
multimdia.
Conclusion :
Chaque architecture a ses avantages et inconvnients, et en terme doccupation de la bande passante
limplmentation de larchitecture agent mobile et favorable.
Bibliographie :
http://sd-41336.dedibox.fr/hagimont/publications/tsi-agents-00.pdf
http://superdea1.free.fr/cours/Agent_Mobile.pdf
http://ceur-ws.org/Vol-547/19.pdf