• Aucun résultat trouvé

IBC-Go : un système d'agent itinérant

N/A
N/A
Protected

Academic year: 2021

Partager "IBC-Go : un système d'agent itinérant"

Copied!
265
0
0

Texte intégral

(1)

UNIVERSITÉ DU QUÉBEC À MONTRÉAL

IBC-GO: UN SYSTÈME D'AGENT ITINÉRANT

MÉMOIRE PRÉSENTÉ

COMME EXIGENCE PARTIELLE

DE LA MAÎTRISE EN INFORMATIQUE

PAR SERGE GIGUÈRE

(2)

UNIVERSITÉ DU QUÉBEC À MONTRÉAL Service des bibliothèques

Avertissement

La diffusion de ce mémoire se fait dans le' respect des droits de son auteur, qui a signé le formulaire Autorisation de reproduire et de diffuser un travail de recherche de cycles supérieurs (SDU-522- Rév.01-2006). Cette autorisation stipule que «conformément

à

l'article 11 dU Règlement no 8 des études de cycles supérieurs, [l'auteur] concède

à

l'Université du Québec

à

Montréal une licence non exclusive d'utilisation et de . publication

qe

la totalité ou d'une partie importante de [son] travail de recherche pour des fins pédagogiques et non commerciales. Plus précisément, [l'auteur] autorise l'Université du Québec à Montréal à reproduire, diffuser, prêter, distribuer ou vendre des .· copies de. [son] travail de recherche

à

des fins non commerciales sur quelque support que ce soit, y compris l'Internet. Cette licence et cette autorisation n'entraînent pas une renonciation de [la] part [de l'auteur]

à

[ses] droits moraux ni

à

[ses] droits de propriété intellectuelle. Sauf entente contraire, [l'auteur] conserve la liberté de diffuser et de commercialiser ou non ce travail dont [il] possède un exemplaire.»

(3)

-- -- --- - - -- - -- - - -- - -- - - --

-Remerciements

En préambule à ce mémoire, je souhaite adresser ici tous mes remerciements aux personnes qui m'ont apporté leur aide et qui ont ainsi contribué à l'élaboration de ce mémoire.

Tout d'abord Monsieur Abdel Obaid, directeur de ce mémoire, pour l'aide et le temps qu'il a bien voulu me consacrer et sans qui ce mémoire n'aurait jamais vu le jour.

Aussi, j'adresse mes plus sincères remerciements à tous mes proches et all1Js qm m'ont soutenu et encouragé au cours de la réalisation de ce mémoire.

(4)

LISTE DES FIGURES ... v

LISTE DES ABRÉVIATIONS, SIGLES ET ACRONYMES ... viii

LISTE DES ABRÉVIATIONS, SIGLES ET ACRONYMES ... viii

CHAPITRE I ... 1

INTRODUCTION ... 1

1.1 Motivation ... 2

1.2 Problématique ... 3

1.2.1 Omniprésence et évolution des réseaux ... 3

1.2.2 Évolution et déploiement des standards ... .4

1.2.3 Augmentation de la quantité d'information transmise ... 5

1.2.4 Limites des connexions en périphérie du réseau ... 5

1.2.5 Nouvelles tendances du réseau Internet ... 6

1.2.6 Solution possible ... 7 1.3 Objectifs ... 7 1.4 Méthodologie ... 9 1.5 Organisation du mémoire ... 1 0 CHAPITRE II ... 11 REVUE DE LA LITTÉRATURE ...... .. 11

2.1 Les définitions des concepts fondamentaux ... ......... 11

a. Code mobile ... 11

b. Réseau actif ... 12

c. Agent mobile ... 13

2.2 Les liens entre les concepts fondamentaux et le présent travail ... 15

2.3 Les réseaux actifs ... 15

2.3 .1 Les types d'approches ... 16

2.3.2 L'architecture d'un nœud actif.. ... 17

2.3.3 Les applications actives ... 18

(5)

- - -

-11

2.3.5 Le système d'exploitation d'un nœud ... 19

2.3.6 Le protocole ANEP ... 20 2.3.7 Le protocole SAPF ... 21 2.3 Les agents mobiles ... 22 2.4.1 La terminologie ... 23 2.4.2 La structure ... 24 2.4.3 La migration ... 25

2.4.4 Les langages de programmation pour les agents mobiles ... 26

2.4.5 La communication ... 27

2.4.6 Les avantages ... 27

a. Les communications hétérogènes ... 28

b. La réduction de la communication ... 28

c. L'enrichissement des interfaces ... 28

d. Les applications temporaires ... 28

e. Les données intelligentes ... 29

2.4.7 La sécurité ... 29

2.5 Les prototypes ... 30

2.5.1 Switchware ... 30 2.5.2 ANTS ... 32 2.5.3 AMARRAGE ... 35 2.5.4 SMART PACKETS ... 37 2.5.5 Étude comparative ... 39 CHAPITRE 111 ...................................... 41 IBC-GO ............................................. 41 3.1 Le modèle fonctionnel ... .41 3.2 La migration ... .42 3.3 La communication ... .43 3.4 Le protocole ... 43

3.5 Le langage pour la programmation des agents ... .45

(6)

Ill 3.7 La sécurité ... 49 CHAPITRE IV ... , ... 52 MISE EN ŒUVRE ... 52 4.1 L'environnement et langage ... , ... 52 4.2 L'architecture logicielle ... 53

4.3 Les interfaces utilisateurs ... , ... 54

4.3.1 Les fichiers textes ... 54

4.3.2 L'interface graphique ... , ... 55

4.4 L'interpréteur pour le langage AL ... 57

4.5 Le gestionnaire des communications, le protocole et le paquet IBC-Go ... 58

4.6 L'environnement d'exécution ... 59

4.7 Les communications ... , ... 59

4.8 Sécurité ... 61

4.9 L'intégration des routeurs traditionnels ... 63

CHAPITRE V ... 65

TESTS ETRÉSULTATS ... 65

5.1 Lestests ... 65

5.2 Les résultats ... 74

5.2.1 Le commerce électronique ... 74

a. Vente et achat en ligne avec IBC-Go ... 75

b. Avantages amenés par le système IBC-Go ... 75

5.2.2 La diffusion audio/vidéo ... 78

a. Diffusion audio/vidéo avec IBC-Go ... 79 b. Avantages amenés par le système IBC-Go ... 80

5.2.3 La gestion des réseaux ... 82

a. Gestion des réseaux avec IBC-Go ... 82

b. Avantages amenés par le système IBC-Go ... 83

CHAPITRE VI ... 88

CONCLUSION ... 88

(7)

lV LE LANGAGE AL ... 92 a. Identificateurs ... 92 b. Mots réservés ... 92 c. Types de données ... 93 d. Type Boolean ... 93 e. Type Char ... 93 f. Type Integer ... 93 g. Type String ... 93 h. Générateurs de types ... 94 i. Constantes ... 94 j. Variables ... 95 k. Opérateurs ... 95 1. Assignations ... 95 m. Instructions conditionnelles ... 96 n. Boucles ... 96 o. Procédures ... 97 ANNEXEB ... 98 LES FONCTIONS ... 98 ANNEXE C ... 103

LAT AILLE DES PAQUETS IBC-Go ... 1 03 ANNEXE D ... 1 05 LE CODE DU SYSTÈME IBC-Go ... 105

a. L'interface graphique ... ! 05

b. L'interpréteur pour le langage AL ... 143

c. Le système IBC-Go ... 1 73 d. Les modifications apportées au système ANTS ... 241

(8)

LISTE DES FIGURES

Figure Page

Figure 2.1: Lien entre les agents mobiles d'IBC-Go et le réseau actif.. ... 15

Figure 2.2: Architecture d'un nœud actif ... 17

Figure 2.3: Format du paquet ANEP ... 21

Figure 2.4: Format des options ANEP ... 21

Figure 2.5: Format du paquet SAPF ... 22

Figure 2.6: Architecture Switchware [ALE 1998] ... 31

Figure 2.8: Relation entre capsule et protocole [SPA 2000] ... 33

Figure 2.9: Format de la capsule ANTS [WET 1999] ... 34

Figure 2.10: Plate-fonne AMARRAGE vl [SPA 2001]. ... 35

Figure 2.11: Architecture en trois plans [ZEB 2002] ...... 36

Figure 2.12: Architecture Smart Packet ... 38

(9)

VI

Figure 3.1:

Modèle fonctionnel de IBC-Go ... .42

Figure 3.2:

Format des paquets IBC-Go ... .44

Figure 3.3: Modèle

architectural des agences IBC-Go ... 49

Figure 3.4:

Champ d'autorisation ... 50

Figure 4.1:

Architecture logicielle du système IBC-Go ... 53

Figure 4.2:

Interface graphique ... 56

Figure 5.1:

Résultat d'un test pour l'interpréteur ... 67

Figure 5.2:

Topologie pour les tests ... 68

Figure 5.3: Résultat du test 1

sur le système IBC-Go ... 69

Figure 5.4:

Résultat du test 2 sur le système IBC-Go ... 70

Figure 5.5:

Résultat du test 3 sur le système IBC-Go ... 72

Figure 5.6:

Résultat du test 4 sur le système IBC-Go ... 73

Figure

5.7

:

Achat en ligne avec IBC-Go ... 75

(10)

Figure 5.10: Diffusion audio/vidéo avec IBC-Go ... 79

Figure 5.11: Bande passante utilisé pour la diffusion audio/vidéo ... 81

Figure 5.12: Gestion des réseaux avec agents mobiles ... 83

Figure 5.13: Données véhiculées via le gestionnaire pour la gestion des réseaux ... 84

Figure 5.15: Données véhiculées moins le poids de l'itinéraire ... 86

(11)

AB one ACM ACMP

LJSTE DES ABRÉVIATIONS, SIGLES ET ACRONYMES

Active Networks backBone

Association for Computing Machinery

Agent Control Message Protocol

AMARRAGE Architecture Multimédia & Administration Réparties sur un Réseau Actif à Grande Échelle AN CORS ANEP ANETd ANS ANTLR ANTS API ASIC BBN BD CAML CFIP CO

RBA

CPL CPU

css

DAN DARPA DHCP DOS Diffserv DSA DSS

Adaptable Network COntrol and Reporting System Active Network Encapsulation Protocole

Active NETwork deamon

Active Network Simulator

Another Tool for Language Recognition

Active Node Transfer System

Application Program Interface

Application Specifie Integrated Circuit

Boit, Beranek and Newman

Base de Donnée

Categorical Abstract Machine Language

Colloque Francophone sur l'Ingénierie des Protocoles

Common Object Request Broker Architecture Cali Processing Language

Central Processing Unit Cascading Style Sheet

Distributed code cashing Active Network

Defense Advanced Research Projects Agency

Dynamic Host Configuration Protocol

Deniai-Of-Service

Differentiated services Digital Signature Algorithm Digital Signature Standard

(12)

EUNICE FIFO FTP GCAP HABA HTML HTTP IBC-Go IEEE IETF lOS IP IST JAAS JAXP JCE J2EE JNI JSP

NM

LDAP MAF MAPS MIT MOM MMUSIC MPEG MVC

EUropean Network of universities and companies in Information and Communication Engineering

First In First Out File Transfert Protocol

Global Communication Architecture & Protocols HyperActive Beans component Architecture HyperText Markup Language

Hypertext Transfer Protocol

Itinerary Based Computation and Go

Institute of Electrical and Electronics Engineers Internet Engineering Task Force

Internet Operating System Internet Protocole

Information Society Technologies

Java Authentication and Authorization Service Java API for XML Processing

Java Cryptography Extension Java 2 platform Enterprise Edition Java Native Interface

Java Server Page Java Virtual Machine

Lightweight Directory Access Protocol Multicast Actif Fiable

Mobility Architecture for Programmable Services Massachusetts lnstitute of Teclmologie

Message Oriented Middleware

Multiparty Multimedia Session Control Moving Pictures Expert Group

(13)

NS ORB

os

OSI PIRST-ON PKI PLAN QCM QoS RAP RNRT RPC RTP RTCP RTTs SAPF SARA SDK SIGCOMM SIP SLRP SNMP SQL SRI SSL TCL TCP UDP ITU Network Simulator Object Request Broker Operating System

Open Systems Interconnexion

x

Programmable, Intermediate, Resilient, Self-configuring, Transparent Overlay Networks

Public Key Infrastructure

Programming Language for Active Networks Query Certificate Manager

Quality of Service

Routeur Assistant Protocol

Réseau National de Recherche en Télécommunications Remote Procedure Cali

Real-time Transport Protocol

Real-time Transport Control Protocol Round-Trip Time

Simple Active Packet Format Simple Active Router Assistant Software Development Kit

Special Interest Group on data COMMunications Session Initiation Protocol

Service Layer Routing Protocol Simple Network Management Protocol Structured Query Language

Stanford Research Institute Secure Socket Layer Tool Command Language Transmission Control Protocol User Datagram Protocol

(14)

www

XML

World Wide Web

(15)

RÉSUMÉ

La situation, les problèmes et les nouvelles tendances liés aux réseaux de

télécommunications font en sorte qu'il est nécessaire de revoir la façon de développer des systèmes distribués. On peut actuellement constater: qu'il y a une omniprésence des réseaux, que ces réseaux sont de plus en plus intelligents, que ceux-ci ont de la difficulté à suivre l'évolution des standards, qu'il y a une augmentation de la quantité d'information transmise, que les connexions en périphérie d'un réseau comme l'Internet sont limitées, etc. Des recherches récentes relatives au code mobile, sous la forme d'agents mobiles et de réseaux actifs, offrent de nouvelles possibilités intéressantes pour le développement des systèmes distribués. La fusion de ces deux secteurs de recherche est susceptible d'amener de nouveaux mécanismes pour construire des systèmes distribués plus adaptés à la situation actuelle des

réseaux de télécommunications. Ce mémoire présente IBC-Go (ltinerary Based Computation

and Go), un système d'agents mobiles, basé sur une approche itinéraire, qui intègre les technologies de réseau actif. Ce système permet le développement de systèmes distribués qui tiennent davantage compte de la situation, des problèmes et des nouvelles tendances d'aujourd'hui; comparativement aux systèmes traditionnels. Pour montrer les possibilités du

système IBC-Go et pour démontrer les avantages amenés par le système IBC-Go, plus

particulièrement de démontrer le fait que le dit système amène une diminution des besoins en communication entre le nœud d'origine et les autres nœuds; 3 scénarios mettant en application le système IBC-Go ont été présentés. La présentation de chacun de ces scénarios a également été accompagnée de résultats numériqués qui ont permis de chiffrer les gains amenés par le système IBC-Go. La présentation des scénarios et des résultats numériqués a permis de répondre l'objectif qui était de démontrer que le système développé est davantage

en mesure de solutionner les problèmes soulevés dans la problématique que les systèmes actuels, et plus particulièrement de diminuer les besoins en communication entre le nœud d'origine et les autres nœuds.

(16)

INTRODUCTION

La situation, les problèmes et les nouvelles tendances liés aux réseaux de télécommunications font en sorte qu'il est nécessaire de revoir la façon de développer des systèmes distribués. On peut actuellement constater: qu'il y a une omniprésence des réseaux, que ces réseaux sont de plus en plus intelligents, que ceux-ci ont de la difficulté à suivre

l'évolution des standards, qu'il y a une augmentation de la quantité d'information transmise, que les connexions en périphérie d'un réseau comme l'Internet sont limitées, etc.

Des recherches récentes relatives au code mobile, sous la forme d'agents mobiles et de réseaux actifs, offrent de nouvelles possibilités intéressantes pour le développement des systèmes distribués. La fusion de ces deux secteurs de recherche est susceptible d'amener de nouveaux mécanismes pour construire des systèmes distribués plus adaptés à la situation

actuelle des réseaux de télécommunications.

Ce mémoire présente IBC-Go (ltinerary Based Computation and Go), un système

d'agents mobiles, basé sur une approche itinéraire, qui intègre les technologies de réseau actif. Ce système permet le développement de systèmes distribués qui tiennent davantage compte de la situation, des problèmes et des nouvelles tendances d'aujourd'hui; comparativement aux systèmes traditionnels.

Comme son nom l'identique, IBC-Go met un accent particulier sur le concept

d'itinéraire. Avec celui-ci, un agent peut visiter plusieurs nœuds, sans avoir à communiquer avec son expéditeur original; ce qui contribue à faire diminuer le besoin en communication entre le nœud d'origine et les autres nœuds (là où les connexions sont généralement plus

lentes et instables). En plus de l'emploi d'itinéraire, IBC-Go inclut d'autres mécanismes pour

(17)

2 transmission du code de l'agent en tant que tel et l'emploi d'une mobilité faible pour les

agents. Le premier mécanisme diminue les besoins en communication en diminuant le poids des agents, alors que le second mécanisme diminue les besoins en ressources en ne transportant pas les états des agents lors de la migration de ceux-ci.

Aussi, ŒC-Go utilise un langage spécifique, appelé AL (Agent Language), pour le développement des agents mobiles. Le fait d'utiliser un langage spécifique pour le développement des agents mobiles permet de ne pas restreindre la programmation des agents au langage utilisé pour le développement du système sous-jacent et ne nécessite pas de

comprendre les détails du fonctionnement dudit système [PEI 2003].

Enfin, étant donné les problèmes de sécurité inhérents à l'utilisation de technologies de code mobile, une attention particulière a été portée à la sécurité d'ŒC-Go. Cela a mené à

la conception de différents mécanismes de sécurité; comme l'inclusion d'un champ

d'autorisation et de signatures électroniques.

1.1 Motivation

La principale motivation, dans ce travail de maîtrise, est de développer un système de

code mobile plus apte à répondre aux besoins des réseaux d'aujourd'hui que les réseaux traditionnels comme l'Internet. Plus précisément, ce travail doit mener à la création d'un

système d'agent mobile incluant une architecture basée sur un modèle de réseau actif.

En plus du développement d'ŒC-Go, ce travail entend faire la démonstration que ce

dernier est en effet plus apte à répondre aux besoins des réseaux d'aujourd'hui que les

réseaux traditionnels comme l'Internet. Plus précisément, ce travail attend démontrer: que le

système développé est plus à même de supporter le développement de certains types d'applications et que celui-ci diminue le besoin en communication entre le nœud d'origine et

(18)

demande, etc.). Il aurait également été possible de démontrer d'autres avantages amenés par le système développé, comme la possibilité de déployer des standards plus rapidement et celle de répondre plus adéquatement aux nouvelles tendances, mais cela n'aurait pas tenu compte des limites de temps associées à ce travail.

Enfin, une autre motivation de ce travail est de développer un système qui inclut certaines qualités jugées essentielles. Ces qualités sont notamment: la portabilité, la sécurité et la facilité d'utilisation.

1.2 Problématique

Ici seront brièvement présentés, la situation, les problèmes et les nouvelles tendances liés aux réseaux de télécommunications. Relativement à la situation et aux problèmes liés aux réseaux de télécommunications, il sera notamment question de 1 'onmiprésence et de 1 'évolution des réseaux, de 1' évolution et du déploiement des standards, de 1' augmentation de la quantité d'information transmise, et finalement, des limites des connexions en périphérie.

Relativement aux nouvelles tendances liées aux réseaux de télécommunications, il sera question de l'augmentation des PDAs (Persona! Digital Assistant) et de l'informatique nomade. Suite à cela, une solution possible, pour solutionner les problèmes rencontrés et répondre aux nouveaux besoins, sera présentée.

1.2.1 Omniprésence et évolution des réseaux

Aujourd'hui, les réseaux de télécommunications sont de plus en plus onmiprésents.

La plupart des organisations sont maintenant équipées d'un réseau local d'ordinateurs, en plus d'un circuit téléphonique connecté à un réseau public, et ces réseaux sont de plus en plus intereliés avec Je réseau Internet; de même que les ordinateurs personnels que l'on retrouve

(19)

4

dans les maisons. Avec l'avènement de nouvelles technologies sans-fils, comme Bluetooth et

la téléphonie de 3e génération comme UMTS (Universal Mobile Telecommunications System), il est à prévoir que l'omniprésence des réseaux de télécommunications va aller en s'accroissant.

Jusqu'à un passé récent, les réseaux de télécommunications assuraient la fourniture

d'un nombre limité de services essentiels comme la téléphonie de base et la transmission de données. Cette situation a évolué par suite de l'innovation technologique rapide et des nouvelles conditions du marché. Dans le nouveau contexte concurrentiel, les opérateurs sont,

en effet, conduits à diversifier leur offre de services auprès de la clientèle. La structure

classique des réseaux de télécommunications, avec des nœuds indépendants imposant des limitations dans l'offre de services, a évolué vers une structure dans laquelle le traitement de

fonctions spécifiques est confié à des entités spécialisées commandant les nœuds adaptés en conséquence [TEN 1996]. Ce nouveau type de réseau est communément appelé: « réseau intelligent».

1.2.2 Évolution et déploiement des standards

Au lieu de rester figés dans le temps, les standards, notamment ceux associés au World Wide Web, évoluent. Le World Wide Web a popularisé l'Internet, grâce à sa puissance

et à sa simplicité et le consortium Web (W3C), de même que plusieurs autres groupes,

travaillent à l'évolution des standards qui constituent le World Wide Web.

Malheureusement, 1 'évolution des standards dans le domaine des réseaux de

télécommunications n'est pas automatiquement suivie d'une implémentation. Cela est

notamment dû au fardeau que représentent leurs implantations sur les équipements d'un

réseau. Il faut en effet que tous les équipements d'un réseau supportent un nouveau standard pour que celui-ci puisse être exploitable; ce qui est pratiquement impensable pour le réseau

(20)

5

déjà quelques années, mais n'ont pu être implantés à la grandeur du réseau Internet. Il faut, en l'occurrence, adapter les réseaux de télécorrununications pour que les nouveaux standards puissent être déployés plus rapidement.

1.2.3 Augmentation de la quantité d'information transmise

L'Internet, en tant que réseau des réseaux, est devenu largement accepté corrune un médium très important pour tout type d'échange d'information. Le nombre d'individus et de compagnies qui offrent des services sur 1 'Internet augmente constarrunent. Alors qu'au départ, l'Internet offrait un nombre limité de types de services, corrune le courrier électronique, nous pouvons maintenant voir que celui-ci offre de plus en plus de types de services; dont notarrunent des services de diffusion audio/vidéo. Cette augmentation du nombre d'individus et de compagnies qui offrent des services et l'apparition de nouveaux types de services, corrune les services de diffusion audio/vidéo, amènent inévitablement une augmentation de la quantité d'information transmise via le réseau Internet.

1.2.4 Limites des connexions en périphérie du réseau

Le réseau Internet peut être divisé en deux zones: le centre et la périphérie. Au centre, la bande passante des connexions est très grande (en comparaison avec la périphérie) et ces dernières sont la plupart du temps stables; ce qui n'est pas le cas en périphérie. Tout porte à croire que ces différences entre le centre et la périphérie du réseau Internet ne vont pas s'amoindrir, mais vont au contraire s'accentuer. Il est en effet à prévoir que la bande passante du centre va considérablement augmenter afin de pouvoir répondre à la demande grandissante pour la transmission de grandes quantités de données; ce qui ne sera pas le cas pour la périphérie [BRA 2005]. Pour contourner ces limites, les systèmes distribués auraient ainsi avantage à limiter les échanges de données véhiculées par les connexions en périphérie.

(21)

6

1.2.5 Nouvelles tendances du réseau Internet

Depuis sa création, de nouvelles tendances ont vu le jour sur le réseau Internet. Deux de ces tendances seront ici décrites: l'augmentation des PDAs et l'informatique nomade.

Depuis quelques années, nous voyons apparaître de plus en plus d'appareils sans-fils, comme les PDAs: des appareils portables qui combinent ordinateur et téléphone et qui ont la

capacité de se brancher à un réseau comme l'Internet [WEB 2005]. Selon un sondage entrepris au près 6 544 adultes, incluant 3 304 utilisateurs actifs d'Internet, 44% des utilisateurs d'Internet accédait à l'Internet via une connexion sans-fils1 [SIA 2005].

Avec ce type d'appareil, la plupart des prémisses qui influencent la définition et 1' évolution des systèmes distribués ne sont plus valides. Ces prémisses incluent: des

communications rapides et fiables, des appareils robustes et riches en ressources, de même

que des appareils situés à des locations fixes. Cela dit, les utilisateurs veulent avoir un

environnement semblable à celui que l'on retrouve sur un appareil situé à une location fixe et

muni de ressources riches et d'une connexion fiable et rapide. En conséquence, cet environnement doit, autant que possible, inclure les mêmes applications et possibilités

offertes par les appareils situés à une location fixe [BRA 2005].

En plus de l'augmentation du nombre d'appareils sans-fils pouvant se brancher au réseau Internet, une autre tendance suscite actuellement beaucoup d'intérêts: l'informatique

nomade. L'informatique nomade fait référence au fait que les utilisateurs se déplacent d'un

endroit à un autre tout en travaillant. Par moment, un utilisateur peut être branché à un

système via un ordinateur de bureau branché au réseau local d'une entreprise, alors que plus

tard, le même utilisateur sera branché au même système via un PDA. Néanmoins, l'utilisateur

1

Le sondage a été mené au près d'adultes se trouvant dans 12 centres urbains situés dans des pays comme le Canada, les États Unis et la France.

(22)

7

veut une synchronisation des appareils de sorte qu'il puisse continuer à travailler tout en

changeant d'appareil [BRA 2005].

1.2.6 Solution possible

Pour solutionner les problèmes rencontrés et répondre aux nouveaux besoins, les

systèmes distribués actuels doivent s'adapter. Plusieurs technologies ont la possibilité de

solutionner les problèmes rencontrés et de répondre aux nouveaux besoins qui sont posés.

Cela dit, ce n'est pas parce qu'une technologie a la possibilité de solutionner un problème qu'elle est pour autant la plus appropriée. Nous ne développons plus de gros systèmes en

programmant en assembleur, même si cela demeure possible. Aujourd'hui, nous utilisons les technologies orientées objets, parce qu'elles sont plus proches des concepts et des besoins des clients, de même que de notre façon de penser durant le développement des systèmes [BRA

2005].

De même que les technologies orientées objets se sont démontrées plus appropriées

pour le développement de gros systèmes, il est possible de croire que les nouvelles technologies relatives au code mobile soient plus appropriées pour le développement des

systèmes distribués actuels et futurs. Des recherches récentes relatives au code mobile, sous

la forme d'agents mobiles et de réseaux actifs, offrent de nouvelles possibilités intéressantes pour le développement des systèmes distribués. La fusion de ces deux secteurs de recherche

est susceptible d'amener de nouveaux mécanismes pour construire des systèmes distribués

plus adaptés à la situation actuelle des réseaux de télécommunications [COL 1998].

1.3 Objectifs

(23)

8

• développer un système d'agent mobile incluant une architecture basée sur un

modèle de réseau actif;

• développer un système portable, sécuritaire et facile d'utilisation;

• démontrer que le système développé est davantage en mesure de solutionner

les problèmes soulevés dans la problématique que les systèmes actuels.

L'objectif principal du présent travail est de développer un système d'agent mobile incluant une architecture basée sur un modèle de réseau actif. Avec ce système, il sera

possible de créer et d'exécuter des agents mobiles sur les serveurs, postes de travail, PDA, routeurs et autres appareils reliés au réseau Internet.

Il est également attendu que le système développé inclut certaines qualités jugées

essentielles, qui sont: la portabilité, la sécurité et la facilité d'utilisation. Par rapport à la portabilité, l'utilité du système développé sera proportionnelle à la possibilité qu'il puisse être installé sur les divers appareils reliés au réseau Internet. En conséquence, celui-ci devra pouvoir être installé, autant que possible, sur les dits appareils. Par rapport à la sécurité, il est

important que le système développé puisse répondre aux besoins en sécurité des différents usagers. En conséquence, le système développé devra inclure des mécanismes pour répondre

à ces besoins. Enfin, pour pouvoir être utilisé par des utilisateurs autres que des experts en

informatique, le système développé devra être facile d'utilisation. Celui-ci devra paraître le plus simple possible pour les utilisateurs; masquant ainsi la complexité de celui-ci.

Enfin, le présent travail a également pour objectif de démontrer que le système

développé est davantage en mesure de solutionner les problèmes soulevés dans la problématique que les systèmes actuels. Il est attendu que ce travail mène à des démonstrations de mises en application du système développé et à des mesures montrant les

(24)

Pour atteindre l'objectif principal, une revue de la littérature et des technologies de réseaux actifs sera faite. Le but de cette revue de la littérature est de donner des définitions claires des concepts fondamentaux utilisés dans ce mémoire et d'exposer les particularités des réseaux actifs et des agents mobiles. La revue des technologies de réseaux actifs, pour sa part, a pour but de mener à l'adoption d'un prototype de réseau actif qui servira de base pour le développement du présent système. Le choix du prototype à adopter se fera en fonction des possibilités offertes par celui-ci; principalement en ce qui a trait à la possibilité d'y implémenter un système d'agent mobile.

Pour la conception du présent système d'agent mobile, ce travail entend reprendre IBC-Go, un système initialement conçu par Abdel Obaid et Anna Cavali et décrit dans un article interne intitulé: « IBC-Go: An itinerary-based mobile computing system. ». La conception du système IBC-Go constitue un bon point de départ pour la conception du présent système et sera, au besoin, ajustée.

Relativement aux qualités jugées essentielles, le choix de l'environnement, dans lequel sera développé le système, se fera en respectant la portabilité qui en découlera. En conséquence, l'envirmmement choisi devra être compatible avec les divers appareils reliés au réseau Internet. Par rapport à la sécurité, la revue de la littérature inclura une section relative aux problèmes liés à la sécurité des agents mobiles. En lien avec cette revue, la conception du présent système sera ajustée pour répondre aux problèmes qui y sont soulevés. Enfin, par rapport à la facilité d'utilisation, le système travaillera le plus possible en arrière plan; laissant une interface utilisateur aussi simple que possible. Cela pourra se concrétiser par une abstraction, de la programmation des agents, des mécanismes de sécurité, etc.

Lors du développement du système, un cycle de développement en spirale, incluant une série de prototypes, est prévu. Cela permet d'obtenir un prototype fonctionnel et testable rapidement; ce qui est approprié, compte tenu des limites de temps et que le système à

(25)

développer constituera lui-même un prototype. Pour tester le système, celui-ci sera installé et

exécuté sur les machines les plus diverses que possible. Cela contribuera à garantir sa

compatibilité avec le plus d'appareils possibles.

Finalement, pour démontrer que le système développé est davantage en mesure de

solutionner les problèmes soulevés dans la problématique que les systèmes actuels, des mises

en application du système développé seront décrites et des mesures relatives à ces mises en

application seront présentées. Ces dernières seront issues de résultats numériqués ou de

simulations (avec ns-2).

1.5 Organisation du mémoire

En plus de l'introduction, ce mémoire inclut 5 chapitres:

• le deuxième chapitre contient la revue de la littérature et des technologies de réseaux actifs;

• le troisième chapitre présente la conception du système IBC-Go;

• le quatrième chapitre décrit la mise en œuvre du système IBC-Go;

• Je cinquième chapitre est une courte conclusion qui résume ce mémoire et

expose quelques réflexions.

À la suite de ces chapitres, les références ayant servi à la rédaction de ce mémoire, de même que des annexes, sont présentées. Ces dernières contiennent: la description du langage

AL et les fonctions incluses avec ce langage, la présentation du paquet IBC-Go avec la taille

de chacune de ces composantes, et finalement, le code ayant servi à l'implémentation du

(26)

REVUE DE LA LITTÉRATURE

Le présent chapitre présente une revue de la littérature relative aux technologies de réseaux actifs et d'agents mobiles. Cela commence par la présentation des concepts fondamentaux et des liens existant entre ces concepts et le présent travail, pour ensuite présenter en détails ce qu'est un réseau actif et un agent mobile. Suite à cela, une série de prototypes de réseaux actifs sera présentée et analysée. Cette analyse mènera à l'adoption d'un prototype de réseau actif pour supporter le développement du présent système.

2.1 Les définitions des concepts fondamentaux

Trois concepts fondamentaux sont utilisés dans ce mémoire et sont en 1 'occurrence ici présentés, à savoir: code mobile, réseau actif et agent mobile.

a. Code mobile

Dans [WIK 2004], on définit le concept de code mobile comme suit:

<<ln computer science, mobile code is a general term for any executable

software program that is sent via sorne computer network from one computer to another to be executed at the destination.

Mobile code technology essentia!ly encompasses three different

paradigms: remo te evaluation, code on demand, and mobile agents.»

(27)

«Mobile code is a technique in which code is transferred from the computer system that stores the code files to the computer system thal will execute the code.»

12

De ces deux définitions, il ressort qu'un code mobile est un code exécutable qui est transmis d'un ordinateur à un autre pour ensuite être exécuté. La première définition présente

également le concept d'agent mobile comme étant un des paradigmes du concept de code mobile. Les deux autres paradigmes étant l'évaluation à distance et le code sur demande. Dans «Mobile Agents: Basic Concepts, Mobility Models & the Tracy Toolkits», le concept d'agent mobile est, dans le même sens, présenté comme étant un des paradigmes du concept de code mobile; même si cela ne figure pas dans la définition précédente.

Le concept de code mobile sera ici défini comme étant un code exécutable qui est transmis d'un ordinateur à un autre pour ensuite être exécuté. C01rune il sera possible de le voir avec la définition d'un agent mobile, ce dernier peut être effectivement vu comme étant un paradigme du concept de code mobile.

b. Réseau actif

Dans [WET 1999], la définition suivante du concept de réseau actif est offerte:

<<Active networks are a novel approach to network architecture in which customized programs are executed within the network.»

Dans [SCH 2000], la définition suivante du même concept est offerte:

<<Active Networks is a framework within which users inject programs contained in messages into a network capable of performing computations and manipulations on behalf of the user.»

(28)

<<Active networks are packet-switched networks in which packets can

con tain code fragments that are executed on the intermediary nades.»

13

Des deux premières défmitions, il ressort qu'un réseau actif est une architecture, ou

une plate-forme, dans laquelle des programmes, traitements ou manipulations, sont exécutés à l'intérieur du réseau. La deuxième définition va plus loin en précisant que les programmes sont contenus dans des messages issus des utilisateurs du réseau. Finalement, la troisième définition reprend l'idée de la fusion programme-message en indiquant que les paquets d'un réseau actif contiennent des fragments de code qui sont exécutés sur les nœuds

intermédiaires; en l'occurrence, le réseau.

Pour les besoins du présent travail, un réseau actif sera défini comme étant un réseau dans lesquel les paquets peuvent contenir des fragments de code étant exécutés sur les nœuds actifs (routeur, commutateur, poste de travail, etc.).

c. Agent mobile

Dans [WIK 2005], on définit le concept d'agent mobile comme suit :

«ln computer science, a mobile agent is a piece of computer software that is able to migrate (move) from one computer to another autonomously and continue its execution on the destination computer.

Mobile agents are a specifie form of mobile code. However, in contrast to the Remo te evaluation and Code on demand paradigms, mobile agents are active in that they may choose to migrate between computers at any time during the ir execution. This makes them a powerful tool for implementing distributed applications in a computer network.

Besides belonging the family of mobile code paradigms, mobile agents are also a specificform of software agents.»

Dans [BRA 2005], deux définitions du concept d'agent mobile sont notamment données:

(29)

~--<<A mobile agent is a program that can migrate from a starting host ta many other hasts in a network of heterogeneous computer systems and fuljill a task specified by its owner. ft works autonomously and communicates with other agents and host systems. During the self-initiated migration, the agent carries ail its code and data, and in sorne systems it also carries sorne kind of execution state.»

<<.Mobile agents refer ta self-contained and identifiable computer

programs, bundled with their code, data, and execution state, that can move within a heterogeneous network of computer systems. They can suspend their execution on an arbitrary point and transport themselves ta another computer system. During the migration the agent is transmitted complete/y, that is, as a set of code, data, and execution state. At the

destination computer system, an agent 's execution is resumed at exact/y

the point where it was suspended before.»

14

Il ressort de ces trois définitions qu'un agent mobile est un programme, ou logiciel, informatique ayant la possibilité de migrer d'un ordinateur à un autre de façon autonome pour ensuite accomplir une tâche ou poursuivre une exécution. Par rapport à la première définition, les deux autres définitions mettent également l'accent sur l'aspect hétérogène des ordinateurs qui transitent les agents mobiles. Par rapport toujours à la première définition, les deux autres définitions précisent également qu'un agent mobile transporte du code, des données et possiblement 1' état de son exécution. La troisième définition met par ailleurs davantage de l'avant l'importance du transport de l'état d'exécution que la deuxième définition en ajoutant que 1' exécution se poursuit sur 1' ordinateur destinataire là où elle a été interrompue sur 1' ordinateur précédent. Enfin la deuxième définition présente le fait que les agents peuvent communiquer entre eux et avec les ordinateurs hôtes.

Pour le présent travail, la définition du concept d'agent mobile suivante sera donnée: un agent mobile est un programme informatique ayant la possibilité de migrer d'un ordinateur à un autre de façon autonome pour ensuite accomplir une tâche ou poursuivre une exécution. Cette définition n'indique pas comment un agent mobile suit son exécution d'un ordinateur à un autre. Un agent peut reprendre son exécution depuis le début à chaque nœud visité ou peut poursuivre son exécution là où elle s'est terminée au nœud précédent.

(30)

2.2 Les liens entre les concepts fondamentaux et le présent travail

Le présent travail concerne la mise en oeuvre un système d'agents mobiles basée sur

un modèle de réseau actif. C'est une plate-forme d'agents mobiles en ce sens quelle permet de construire et d'exécuter des agents mobiles, des programmes informatiques ayant la possibilité de migrer d'un ordinateur à un autre de façon autonome pour ensuite accomplir

une tâche ou poursuivre une exécution. Le système développé est basé sur un modèle de réseau actif en ce sens que les agents mobiles du système sont transportés dans des paquets qui peuvent être exécutés sur les nœuds actifs (routeur, commutateur, poste de travail, etc.).

Le lien entre les agents mobiles du système et le réseau actif est présenté à la figure

2.1. Cette dernière montre un poste de travail qui envoie un agent mobile vers un serveur, en

passant par un routeur. Le poste de travail, le routeur et le serveur sont des nœuds actifs; ce qui implique que 1' agent mobile sera exécuté sur chacun de ces trois appareils.

Nœud agent mobil

-

e Nœud Nœud

actif

-

actif actif

Routeur Serveur

J

-

Poste

J

1

de travail u

Figure 2.1: Lien entre les agents mobiles d'IBC-Go et le réseau actif

2.3 Les réseaux actifs

Le concept de réseau actif a émergé en 1994 des discussions entre les chercheurs de DARP A (Defense Advanced Research Projects Agency) sur les directions futures des

systèmes réseaux [TEN 1997]. Les recherches sur les réseaux actifs ont mené à 1' élaboration de trois objectifs spécifiques: l'introduction d'un code portable pour les logiciels réseaux, le

(31)

16 traitement des flux de données spécifiques à l'intérieur du réseau et finalement, la reconfiguration dynamique et efficace du réseau. Cette dernière pouvant être faite par un administrateur de réseau pour l'ensemble des flux de données ou par un utilisateur spécifique pour son propre flux de données [BER 2000].

Les sections suivantes montrent les caractéristiques propres au réseau actif. Cela comprendra: les types d'approches, l'architecture d'un nœud actif, les applications actives, l'environnement d'exécution, le système d'exploitation d'un nœud et les protocoles ANEP et SAPF.

2.3.1 Les types d'approches

Il y a différentes approches possibles par lesquelles un réseau peut être amené à être actif. Dans A Survey of Active Network Research, Tennenhouse et al. (1997) ont fait référence à deux: l'approche commutateur programmable (supportée par l'IEEE) et l'approche capsule (supportée par DARP A).

Avec l'approche commutateur programmable, également appelé approche discrète, le format actuel des paquets est conservé en intégrant un mécanisme discret qui se charge de télécharger les programmes. Un utilisateur envoie dans un premier temps ses routines de traitement et ensuite ses paquets de données [TEN 1997]. La séparation entre 1' exécution et Je chargement du programme peut être valable quand le chargement doit être contrôlé avec soin ou quand les programmes sont particulièrement volumineux. Cette approche est utilisée, par exemple, dans les réseaux intelligents standardisés par le ITU-T (JTU (International Telecommunication Union) Telecommunication Standardization Sector). Avec l'Internet, le chargement des programmes peut être restreint à l'opérateur d'un routeur qui est muni d'un accès avec lequel il peut charger dynamiquement les programmes. Des mesures de sécurité comme l'authentification de l'opérateur et la vérification du code des programmes pourraient être appliquées au chargement des programmes [TEN 1996].

(32)

Avec J'approche capsule, également appelée approche intégrée, les paquets des réseaux actuels sont remplacés par des programmes miniatures qui sont exécutés à chacun des nœuds rencontrés sur son chemin [TEN 1997]. Comme il sera possible de Je voir avec la revue des prototypes de réseaux actifs, la plupart des systèmes de réseaux actifs utilisent une

approche qui est un mélange de l'approche discrète et de l'approche intégrée.

2.3.2 L'architecture d'un nœud actif

L'architecture d'un nœud actif comprenant 3 composantes: les applications actives (AA), l'environnement d'exécution (EE) et Je système d'exploitation du nœud; comme

illustré à la figure 2.2 [BER 2000].

Canal d'entrée

Canal d'entrée Canal d'entrée Système d'exploitation du nœud Ressources

Figure 2.2: Architecture d'un nœud actif

Canal de sortie

Canal de sortie

(33)

18

Comme on peut le voir avec la figure 2.2, une ou des applications actives sont exécutées dans un environnement d'exécution et un ou des environnements d'exécution sont exécutés dans le système d'exploitation du nœud. Ce dernier inclut une série de canaux d'entrée et de sortie qui permet aux paquets d'entrer et de sortir du nœud actif

2.3.3 Les applications actives

Les applications actives accomplissent les fonctions de communication en utilisant une combinaison d'acheminement de paquets et de traitement à l'intérieur des nœuds du réseau. Elles sont généralement écrites dans un langage restreint qui permet la portabilité et la sécurité, comme Java, et peuvent opérer sur le plan des données, de la gestion ou du contrôle. Les composantes d'une application active peuvent migrer d'un nœud à un autre et une application active peut créer un état de nœud persistant [BER 2000).

La mobilité peut se faire à différentes couches de représentation du programme. À un niveau plus élevé, un programme peut être exprimé dans langage interprété comme TCL

(Tool Command Language). À un niveau intermédiaire, un programme peut être encodé dans

un langage pré-compilé comme Java [TEN 1997]. Finalement, un programme peut être transformé dans un format binaire comme Ornniware [TEN 1997], un outil développé par Colusa Software qui permet aux développeurs de logiciel de prendre des composantes écrites en C et C++ et de créer des composantes indépendantes du client [UMB 2003).

Une approche possible pour permettre l'interopérabilité entre les nœuds pourrait également être d'adopter un langage intermédiaire inter-nœud avec un mécanisme de traduction à la sortie et à 1 'entrée des nœuds. Les utilisateurs du réseau pourraient ainsi utiliser le langage désiré, si un mécanisme de traduction existe pour ce langage [TEN 1997].

(34)

Une application active est exécutée dans un environnement d'exécution. Ce dernier

est la partie stable du logiciel du nœud [BER 2000]. Il constitue une architecture virtuelle de réseau. C'est lui qui mémorise le code des services actifs et réalise les traitements adaptés

aux paquets et aux services demandés (chaque paquet est associé à un traitement

correspondant au service).

L'environnement d'exécution permet la création de services (interface de programmation), la gestion des services utilisés et le partage des ressources allouées entre les

services [HAE 2002]. Il implémente généralement un ensemble de librairies qui permettent

aux applications actives d'accéder aux ressources du nœud et du réseau et forme la première ligne de défense contre les violations de sécurité et la quantité de ressource retenue par une

même application.

Un environnement d'exécution peut également supporter les entrée/sortie du réseau

dans un plan de donnée virtuel ou dans Je plan de donnée lP natif [BER 2000]. Équipé d'une

interface correspondante, il peut créer les canaux qui lui sont reliés et décider quels flux

doivent être acheminés directement (sans traitement).

Un même nœud peut supporter plus d'un environnement d'exécution. L'opérateur

d'un réseau actif peut configurer Je système d'exploitation d'un nœud par l'intermédiaire d'un environnement de gestion. Cela peut lui permettre notamment de gérer le partage des

ressources entre les environnements d'exécution [HAE 2002].

2.3.5 Le système d'exploitation d'un nœud

Les environnements d'exécution d'un nœud exécutent un environnement créé par le

(35)

20

réseau (canaux, protocoles de liaison) et du système (CPU (Control Processing Unit),

mémoires) aux environnements d'exécution et offre une protection des ressources entre eux.

Il doit supporter les entrée/sortie du réseau et offrir quelques mécanismes de communication

entre les environnements [BER 2000]. Ainsi, c'est le système d'exploitation du nœud qui identifie les paquets entrants qui doivent être envoyés à l'environnement d'exécution (les paquets actifs) et ceux qui doivent être envoyés directement vers un canal de sortie (les

autres).

Le système d'exploitation identifie les différents paquets selon deux méthodes de classement. La première méthode utilise des critères spécifiques à chaque environnement

d'exécution (format du paquet, contenu de certains champs, etc.); alors que la seconde

méthode utilise un des protocoles suivants au niveau du système d'exploitation: ANEP

(Active Network Encapsulation Protocole) et SAPF (Simple Active Packet Format) [HAE 2002).

2.3.6 Le protocole ANEP

ANEP est un protocole indépendant des technologies utilisées. Il peut se placer

au-dessus de Ethemet, IP, UDP, etc. Il comprend notamment un identificateur d'environnement

d'exécution (Type ID) et des options comme les certificats de sécurité, l'adressage et le

checksum. La figure 2.3 présente le format d'un paquet ANEP. Le champ Drapeaux identifie

si le paquet doit être acheminé ou retiré par défaut.

La figure 2.4 montre le format des options ANEP. Le champ Drapeaux est sur 2 bits; le premier étant réservé à l'environnement d'exécution et le second n'étant pas couramment

utilisé. Parmi les types d'options possibles, on retrouve: l'identificateur de la source, 1 'identificateur de la destination, 1' integrity checksum [DRA 1997].

(36)

1

Longueur de l'entête

Longueur du paquet

Options

Charge

(paquet actif)

Figure 2.3: Format du paquet ANEP

Drapeaux

1

Type d'option

1

Longueur

de l'option

Charge

de l'option

Figure 2.4: Format des options ANEP

2.3. 7 Le protocole SAPF

Tout comme le protocole ANEP, le protocole SAPF est un protocole indépendant des technologies utilisées. Le format de l'en-tête SAPF est réduit au strict minimum: un champ version (sur 1 bit) et un champ sélecteur (de 63 bits). Les bits de 0 à 47, du champ sélecteur, servent à identifier 1' environnement d'exécution (équivalent au champ Type ID d' ANEP) et les bits de 48 à 50, le type du paquet: statique, émetteur ou récepteur. [DEC 1998]. La figure 2.5 présente le format d'un paquet SAPF.

(37)

22

Identificateur lntegrity checksum

Version Sélecteur

Charge (paquet actif)

Figure 2.5: Format du paquet SAPF

2.4 Les agents mobiles

C'est en 1994 que James E. White publia un white paper, publié en 1996 dans

Software Agents de [WHI 1996], qui initia la recherche dans le domaine des agents mobiles. Dans ce papier, James E. White introduisait la technologie Telescript qui comprenait un

environnement et un langage de programmation pour les agents mobiles. Par la suite, d'autres

prototypes d'agent mobile ont été développés. La plupart d'entre eux utilisent les nouvelles possibilités offertes par les technologies Java, notamment la portabilité [BRA 2005].

La présente section explique les particularités des agents mobiles. Cela comprendra:

la terminologie associée à ce type de logiciel, la structure générale des agents mobiles, l'infrastructure associée à la migration des agents, les langages de programmation utilisés par

les systèmes d'agent mobile, la communication entre les agents mobiles, les avantages

(38)

Ici seront définis les termes qui sont propres aux systèmes d'agents mobiles. Les défmitions de ces termes sont présentées au tableau 2.1. Ces termes se retrouvent dans la plupart des écrits relatifs aux agents mobiles.

Toolkit pour agent mobile Un toolkit pour agent mobile est un produit permettant de construire et d'exécuter des agents mobiles. Il existe actuellement plusieurs toolkit pour agent mobile. À titre d'exemple, mentionnons: Aglets de IBM,

Voyager de Recursion et Tracy de l'université de Jena.

Agence Une agence est un environnement d'exécution de lequel les agents mobiles sont exécutés. Cet environnement contrôle l'exécution des

agents et offre des fonctionnalités pour la communication, la sécurité et la migration des agents.

D'autres auteurs, comme [WHI 1996] et [LAN 1998], utilisent les notions de place et de moteur pour faire référence à une agence. Agence expéditrice Durant Je processus de migration, 1' agence quittée par 1' agent est

appelée agence expéditrice.

Agence réceptrice Durant Je processus de migration, J'agence qm reçoit J'agent est appelée agence réceptrice.

Protocole de migration Durant le processus de migration, l'agence expéditrice et J'agence

réceptrice échangent de l'information au sujet de J'agent qui doit migré.

Pour cela, un protocole de migration est utilisé par les agences.

Agence d'origine L'agence d'origine correspond à l'endroit où est créé un agent. Habituellement, un agent retourne à son agence d'origine après avoir

complété sa tâche.

Système d'agent mobile Toutes les agences pouvant échanger des agents mobiles forment un réseau logique appelé système d'agent mobile. Chaque agence du

système est accessible via un URL spécifique. Cet URL sert également de nom pour 1' agence.

Propriétaire d'agent Le propriétaire d'un agent correspond à l'utilisateur qui a créé J'agent. Les informations relatives au propriétaire d'un agent peuvent être

utilisées par les agences pour l'assignation des droits.

(39)

24

Nom de l'agent Chaque agent possède un nom spécifique. Ce nom est défini par le propriétaire de l'agent. Le nom de l'agent est nécessaire pour pouvoir identifier sans équivoque un agent à toutes les agences d'un système

d'agent mobile.

Serveur de code En plus d'héberger les agents, les agences peuvent également contenir

le code des agents. Les agences qui contiennent le code d'agents sont

appelées serveurs de code.

Tableau 2.1 (suite)

2.4.2 La structure

Un agent mobile est constitué de trois composantes: le code, les données et 1' état de l'exécution. Le code contient la logique de l'agent et peut être utilisé par plus d'un agent. La transmission du code et de l'agent sont généralement séparées; ce qui permet de diminuer le poids de l'agent. Très souvent, le code n'est transmis qu'une seule fois et emmagasiné dans

les agences pour une utilisation future. Dans le cas où le code est séparé, celui-ci doit pouvoir

être identifié sans équivoque par toutes les agences d'un système d'agent mobile; comme

pour les agents [BRA 2005].

La seconde composante, les données, correspond à la valeur des variables de l'agent

[BRA 2005]. Certains auteurs, comme [WHI 1996] et [LAN 1998], appèlent les données: état de l'objet.

La troisième composante, l'état d'exécution, correspond à l'information qm est contrôlée par le processeur et le système d'exploitation [BRA 2005]. L'état d'exécution n'est

pas toujours transmis avec l'agent mobile; comme il sera possible de le voir à la section suivante.

(40)

2.4.3 La migration

Le processus de migration peut être découpé en six étapes. Ces six étapes, inspirées des processus décris par [LAN 1998], sont: l'initialisation, la sérialisation, le transfert, la réception, la désérialisation, l'exécution. L'initialisation démarre lorsque l'agent annonce à

l'agence son intention de migrer. Avec cette annonce, l'agence doit interrompre l'exécution

de l'agent en vue de la sérialisation de 1' agent. À la sérialisation, les données et 1' état

d'exécution avec une forte mobilité (voir plus loin) de l'agent sont transformées en séquence

de bits pour leur transfert. Lorsque du transfert, la séquence de bits issue de la sérialisation est transmise à l'agence réceptrice via un protocole de migration. À la réception de l'agent, l'agence réceptrice vérifie l'identité de l'agent et les droits qui lui sont associés. En fonction

de cela, l'agent sera accepté ou non. Après la réception de l'agent, celui-ci est désérialisé en

vue de réétablir les données, et l'état d'exécution avec une forte mobilité (voir plus loin), de l'agent transmis. Après la désérialisation, l'agent poursuit son exécution.

Il y a deux approches pour la mobilité des agents: forte et faible. Avec la migration forte, l'état d'exécution de l'agent est capturé et envoyé avec le code vers sa destination. Cet état est réétabli lorsque l'agent atteint sa destination. La migration forte peut être exigeante en

terme de traitement et de temps; surtout si la taille des états est importante. Pour plus d'efficacité, la mobilité faible est souvent utilisée. Avec cette dernière, l'état d'exécution de l'agent n'est pas transmis avec l'agent et celui-ci est réinitialisé lorsqu'il arrive à une autre agence. [LEV 2001].

Différents patrons de mobilité sont utilisés par les agents mobiles. La mobilité des agents mobiles peut être caractérisée par une série de destinations visitées par l'agent et par

un ordre dans lequel la visite peut se faire. La série de destinations est communément appelée

itinéraire. L'utilisation d'un itinéraire permet à un agent de visiter plusieurs agences avant de retourner à son agence d'origine; ce qui contribue à faire diminuer le besoin en

(41)

- - --- -- -- - -- --- - -

-26

communication entre l'agence d'origine et les autres agences. Relativement à l'itinéraire et à l'ordre des destinations, trois types de mobilité peuvent être observés:

• mobilité avec itinéraire statique et ordre statique,

• mobilité avec itinéraire statique avec ordre dynamique,

• mobilité avec itinéraire dynamique [LEV 2001].

2.4.4 Les langages de programmation pour les agents mobiles

Le langage de programmation Java est devenu un standard de fait pour le développement de systèmes d'agents mobiles. Depuis 5 ans, presque tous les systèmes d'agents mobiles sont développés avec le langage Java. La plupart d'entre eux utilisent également le langage Java pour la création des agents mobiles. Cela s'explique en bonne partie dû au fait que le langage Java est portable et qu'il inclut différents dispositifs pour supporter la migration des processus [BRA 2005].

Bien que le langage Java soit utilisé pour le développement des systèmes d'agent mobile, il est possible de faire appel à d'autres langages pour la création des agents mobiles proprement dit. Pour cela, des compilateurs ou des interpréteurs peuvent être inclus dans les agences du système. Ces compilateurs ou interpréteurs permettraient en 1 'occurrence de faire le lien entre le langage utilisé pour la création des agents mobiles et celui utilisé pour le développement du système. Le fait de séparer la programmation des agents mobiles de la programmation du système permet de ne pas restreindre la programmation des agents au langage Java et ne nécessite pas de comprendre les détails du fonctionnement du système pour la programmation de ces derniers.

(42)

Les agents mobiles peuvent communiquer entre eux; qu'ils se trouvent à une même agence ou à des agences différentes. En général, les échanges entre les agents sont de type

peer-ta-peer ou à diffusion multiple (multicast). Différentes techniques peuvent être utilisées

pour communiquer avec les agents distants. [BRA 2005] en propose cinq:

• l'approche serveur central, qui emmagasine la location des agents dans une base de données centrale;

• l'approche serveur d'origine, qm emmagasine la location d'un agent à l'agence d'origine;

• l'approche pointeur expéditeur, qui envoie les messages le long des agences visitées par l'agent;

• l'approche à large diffusion (broadcast), où les messages sont envoyés en parallèle à toutes les agences;

• l'approche hiérarchique, qui utilise une structure en arbre pour la diffusion des messages.

2.4.6 Les avantages

Les systèmes d'agents mobiles amènent plusieurs avantages par rapport aux systèmes traditionnels. Ici sont présentés quelques-uns de ces avantages; en 1 'occurrence: l'harmonisation des communications hétérogènes, la réduction de la communication, l'enrichissement des interfaces, la possibilité d'utiliser des applications temporaires, et enfin, la possibilité d'utiliser des données intelligentes (qui contiennent de la logique).

(43)

28

a. Les communications hétérogènes

Reliés ensemble, deux systèmes révèlent rapidement des incompatibilités de langages

et de formats de données; incompatibilités qui se multiplient avec l'ajout d'autres systèmes. Les agents mobiles peuvent solutionner ce genre de problèmes en jouant le rôle d'intermédiaire entre les systèmes hétérogènes. La seule exigence est que l'agent puisse être exécuté sur chaque type de système [KNA 1996].

b. La réduction de la communication

Un des avantages clés des agents mobiles est de pouvoir réduire les coûts en communication. En effet, dans un système structuré autour des agents mobiles, un tiers peut

se déplacer de l'autre côté d'une connexion pour éviter d'utiliser celle-ci. Ainsi, les tiers peuvent interagir, même si les connexions sont de mauvaises qualités [KNA 1996].

c. L'enrichissement des interfaces

Les agents mobiles permettent la présentation d'interfaces plus sophistiquées. Si on prend pour exemple une interface de réalité virtuelle, cette dernière demanderait normalement trop de traitement et de bande passante pour qu'un serveur puisse la fournir à distance. En envoyant un agent mobile contenant l'interface au client, cela devient davantage possible [KNA 1996].

d. Les applications temporaires

Un agent mobile n'a pas besoin de faire partie d'une application. Il peut former un tout et n'avoir besoin d'aucune communication. Télécharger un tel agent n'est pas différent

(44)

l'utilisation des agents mobiles est que ceux-ci sont plus faciles à télécharger et ne nécessitent

pas d'installation dans le système hôte [KNA 1996].

e. Les données intelligentes

L'association de codes et de données offre un moyen pour les données de savoir comment se traiter elles-mêmes. Un exemple pour cela est le standard de compression vidéo

MPEG 4 (Moving Pictures Expert Group 4), où l'algorithme de décompression est empaqueté avec les données [KNA 1996].

2.4. 7 La sécurité

Il va de soi que des systèmes d'agents mobiles introduisent différents problèmes de

sécurité. Il y a principalement trois catégories de menaces reliées aux technologies d'agents

mobiles:

• une attaque d'un agent vers une agence, • une attaque d'une agence vers un agent,

• une attaque d'un agent vers un agent [RAO 2004].

En ce qui concerne l'attaque d'un agent vers une agence, on peut retrouvrer principalement des DOS (Deniai-Of-Service) et des attaques de personnification d'agent. Le

premier type d'attaque, DOS, est provoqué par le fait que les agents font travailler inutilement et volontairement les agences. Par rapport au travail qui est demandé aux agences, il est également possible que les agents fassent, volontairement ou non, une

(45)

30

et qui peut ultimement mener à un DOS. La deuxième attaque, la personnification, se caractérise par le fait qu'un agent emprunte une identité autre que la sienne. Ce faisant, il peut avoir accès à des services et des informations confidentielles et possiblement modifier ces informations [RAO 2004].

L'autre catégorie d'attaque, l'attaque d'une agence vers un agent, concerne entre autres le fait qu'une agence puisse modifier le code d'un agent. Le code ainsi introduit peut devenir à la fois nuisible pour le créateur de 1 'agent modifié, les autres agences visitées par l'agent et les autres agents avec lesquels l'agent modifié interagit [RAO 2004]. Ce dernier point constitue l'attaque d'un agent vers un autre agent.

Comme il sera possible de le voir au chapitre suivant, différents mécanismes peuvent

être mis

en

place pour contrer ces attaques.

2.5 Les prototypes

Le présente section présente 4 prototypes de réseaux actifs: Switchware, ANTS,

AMARRAGE et Smart Packets. Une analyse comparative suivra cette présentation. Cette dernière aura pour but de mener à l'adoption d'un prototype de réseau actif qui servira de base pour le développement du présent système. Le choix du prototype à adopter se fera en fonction des possibilités offertes par celui-ci; principalement en ce qui a trait à la possibilité d'y implémenter un système d'agent mobile.

2.5.1 Switchware

À l'université de Pe1msylvanie, un projet nommé SwitchWare a mené au développement d'une approche commutateur programmable qui permet de télécharger des

Références

Documents relatifs