Chapitre II. Etat de l'art
Accéder à de l'information multimédia
demande généralement aux usagers des systèmes, des efforts
de différents niveaux[4]: expertises, compréhension, voire
apprentissage. Ces systèmes, confrontés le plus souvent à
des données réparties,
doivent gérer de façon optimale la bande
passante afin de favoriser la manipulation de grands volumes de
données.
Ainsi, dans ce chapitre, nous introduirons la notion d'agents
mobiles. Puis nous effectuerons un bref rappel des données
multimédia. Ensuite, nous étudierons les différents
schémas organisationnels qui permettent de modéliser un
système distribué. Enfin, nous montrerons les limites de ces
différents schémas dans le cadre d'une application de collecte
des données multimédia.
II.1. Agents mobiles
II.1.1 Historique
Les agents mobiles sont inspirés de travaux sur le
calcul intensif initiés au sien de Xerox. La notion d'agent mobile [5] a
été introduite pour la première fois en 1994 par White qui
décrit l'environnement Telescript. Dans cet environnement, des processus
(code et unité d'exécution pouvaient se déplacer
d'eux-mêmes d'un site du réseau à un autre pour interagir
localement avec des ressources d'autres sites. Cette technologie est alors
apparue comme prometteuse pour la conception d'applications
distribuées.
II.1.2 Définition
En informatique, un agent est l'équivalent d'un robot
logiciel. C'est un programme qui accomplit des tâches à la
manière d'un automate et en fonction de ce que lui a demandé son
auteur. Dans le contexte d'Internet, les agents intelligents [6] sont
liés au Web sémantique, dans lequel ils sont utilisés pour
faire à la place des humains les recherches et les corrélations
entre les résultats de ces recherches.
La notion mobilité permet à un agent de se
déplacer d'un site à un autre en cours d'exécution pour
accéder à des données ou à des ressources. Il se
déplace avec son code et ses données propres, mais aussi avec son
état d'exécution. Il décide lui-même de
manière autonome de ses mouvements. Ainsi, la mobilité est
contrôlée par l'application elle-même, et non par le
système d'exécution comme dans le cas de la migration de
processus dans les systèmes opératoires.
II.1.3 Mobilité d'un agent
Dans ce schéma, le savoir-faire appartient au client.
Les agents mobiles peuvent être vus comme une
généralisation de l'évaluation distante (cf. section
II.3.2), où en plus du code, l'unité
d'exécution est mobile. Les agents mobiles peuvent transporter des
données paramétrées. Afin d'accéder aux ressources,
les processus agents migrent de manière autonome vers les composants qui
les proposent (voir Figure 3).
Au niveau de la mise en oeuvre, les migrations d'agents
mobiles peuvent s'effectuer selon deux modes :
Migration forte
La migration forte (p.ex Telescript, Ara [7], AgentTcl [7]),
où la totalité de l'agent (c'est-à-dire code,
données et unité d'exécution) migre vers le nouveau site.
Pour cette migration réelle, l'agent est suspendu ou capturé
avant d'être transfèré. Une fois arrivé sur le site
distant, il redémarre son exécution au point de contrôle
précédent, en conservant l'état du processus.
MigrationForte ~ code + unité d'exécution +
données-paramètres
Une autre possibilité proposée consiste à
stopper l'exécution de l'agent avant la migration puis d'en créer
une copie distante identique sur le site distant (migration par
réplication).
Migration faible.
La migration faible où seul le code et les données
migrent.
MigrationForte ~ code + données-paramètre
Une fois arrivé sur le site distant, l'agent est
réexecuté. Le programmeur doit donc préserver, dans les
données, les informations d'état permettant la poursuite logique
de l'exécution.
II.1.4 Avantages et inconvénients
En pratique, la mobilité d'agent permet de rapprocher
client et serveur et en conséquence de réduire le nombre et le
volume des interactions distantes (en les remplaçants par des
interactions locales), de spécialiser des serveurs distants ou de
déporter la charge de calcul d'un site à un autre. Une
application construite à base d'agents mobiles peut se redéployer
dynamiquement suivant un plan pré-établit ou en réaction
à une situation particulière, afin par exemple d'améliorer
la performance ou de satisfaire la tolérance aux pannes, de
réduire le trafic sur le réseau, ou de suivre un composant
matériel mobile. La
mobilité du code offre un premier niveau de
flexibilité aux applications. La décentralisation de la
connaissance et du contrôle à travers les agents, et la
proximité physique entre les agents et les ressources du système
renforce la réactivité et les capacités d'adaptation.
La mobilité ne se substitue pas aux capacités de
communication des agents (la communication distante reste possible) mais les
complète ; afin de satisfaire aux contraintes des réseaux 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
difficultés, restent une architecture appropriée pour la
manipulation de grands volumes de données notamment des données
multimédia
|