• Aucun résultat trouvé

CHAPITRE 3 AGENTS MOBILES ET LEURS SPÉCIFICITÉS

3.2 Efforts de normalisation des plateformes d’agents mobiles

3.2.1 Norme MASIF

Dans cette section, nous allons présenter une synthèse de la norme MASIF qui a pour objectif de spécifier une architecture permettant l'interopérabilité entre les plateformes. La norme MASIF est définie par Object Management Group (OMG) qui est une organisation internationale appuyée par plus de 800 membres dont des fournisseurs de systèmes d'information, des développeurs et des utilisateurs de logiciels. Toutefois une redéfinition des concepts d’agents selon la norme MASIF s’impose au préalable.

Interopérabilité

L'interopérabilité devient réalisable si les actions comme le transfert d'agents, le transfert de classes et la gestion d'agents sont normalisés. Lorsque les systèmes d’agents source et destination sont similaires, la normalisation de ces actions peut aboutir à l'interopérabilité. Cependant, lorsque les deux systèmes d'agents sont radicalement différents, seulement une interopérabilité minimale peut être réalisée.

La question qu’on pourrait se poser est: qu'est-ce qui devrait être normalisé? La norme MASIF propose de standardiser les fonctionnalités suivantes [Object Management Group, 2000] [Milojicic et al., 1998]:

 La gestion d'agents: Il s’agit de prévoir un administrateur des systèmes d’agents pour les opérations suivantes: la création, la suspension, la reprise et la terminaison d’agents.

 Le transfert d'agents: Il est souhaitable que les agents se déplacent entre les différentes plateformes d’agents. Ceci résulte d’une infrastructure commune, et par conséquent un plus grand nombre des systèmes d’agents disponibles pour une éventuelle migration.

Le type d'agents et la syntaxe associée au déplacement: L’agent peut être transféré si le système d’accueil le supporte. La syntaxe d'emplacement est aussi standardisée pour que les plateformes et les agents s’identifient mutuellement.

Ces fonctionnalités sont concrètement spécifiées par la norme MASIF en définissant en IDL les deux interfaces suivantes:

1. MAFAgentSystem qui définit les opérations d'agents telles que la réception, la création, la suspension et la terminaison;

2. MAFFinder qui définit les opérations de gestions telles que l'enregistrement, la libération, la localisation des agents, les places et les systèmes d’agents.

La figure 3.2 nous présente les deux interfaces proposées par la norme. MASIF ne produit pas de code, elle ne fournit que des spécifications. L’implémentation (le passage de la spécification au programme) est laissée aux développeurs des systèmes. La norme MASIF, dans sa forme actuelle, offre les caractéristiques requises pour un premier niveau d'interopérabilité de la mobilité de l'agent. Une fois que l'agent est transféré d'un système à l'autre, la façon dont les systèmes le traitent avec ses paramètres internes est une question de mise en œuvre. Celle-ci est laissée aux développeurs des systèmes d’agents.

Agent

Actuellement, la plupart des agents sont programmés en langage interprété (par exemple en Java) pour des raisons de portabilité. L’agent peut être soit stationnaire soit mobile.

Agent stationnaire

Un agent stationnaire s’exécute seulement sur le système où il commence son exécution. Si l'agent a besoin des données qui ne sont pas sur ce système, il utilise généralement un mécanisme de communication tels que l’appel de procédure à distance (en anglais Remote Procedure Calling, RPC).

Agent mobile

Un agent mobile n'est pas figé au système où il commence son exécution. Il a la capacité unique de se déplacer d'un système à un autre dans le réseau. Cette spécification est principalement écrite pour les agents mobiles.

Figure 3.2 Interface de la norme MASIF [Object Management Group, 2000]

État d’un agent

Lorsqu’ un agent se déplace d’un système source à un système destination, son état et son code sont transportés avec lui. Grâce à son état qui migre avec lui, l’agent reprend son exécution là où il a été interrompu sur le système source.

Autorité de l'agent

L'autorité d'un agent identifie la personne ou l'organisation pour qui l'agent agit. Une autorité doit être authentifiée.

Nom d’agent

Un agent nécessite un nom qui l’identifie lors des opérations de gestion et il peut être localisé via un service de nommage. Les noms des agents sont définis par une combinaison de leur autorité, de leur identité et leur type de système d'agents. La combinaison de l'autorité, de l'identité de l'agent et le type de système d’agents est toujours une valeur globalement unique. Comme le nom d'un agent est globalement unique et immuable, il peut être utilisé comme une clé dans les opérations qui se rapportent à une instance d'un agent particulier.

Emplacement d'agents

L'emplacement d'un agent est l'adresse d'une place. Cette dernière réside dans un système d'agents. Par conséquent, un emplacement d'un agent devrait contenir le nom du système d'agents où il réside et le nom de la place. Notons que si l'emplacement ne contient pas le nom de la place, le système d'agents de destination choisit une place par défaut.

Système d’agents

Un système d’agents est la plateforme qui fournit les mécanismes de création, d’interprétation, d’exécution, de transfert et de terminaison de l’agent. Comme un agent, un système d’agents est associé à une autorité qui identifie la personne ou l'organisation pour qui le système d’agents devrait agir. Par exemple, un système d’agents avec l'autorité de Bob peut mettre en œuvre la politique de sécurité de Bob pour la protection des ressources de Bob. Un système d’agents est identifié d’une manière unique par son nom et son adresse. Un hôte peut contenir un ou plusieurs systèmes d’agents. Chaque système d'agents possède un type (par exemple, Voyager) et ne peut que créer et supporter les agents de ce type. Les actions communes des systèmes d’agents sont:

 L’attribution d’un nom et d’une adresse uniques aux agents;  Le transfert et la réception d’agents;

 Le support du concept de région;  La localisation d’agents;

 La sécurisation d’environnements d’exécution d’agents.

Lors de la migration d’un agent, celui-ci crée une requête de transfert qui contient son nom et son adresse de destination. L'agent spécifie aussi la qualité de service de communication requise pour son transfert. Ce service n'est pas spécifié par la norme MASIF, il est laissé aux développeurs des systèmes d’agents. Une fois que le système d’agents de destination donne son accord, l'état de l'agent, l'autorité, les lettres de créance de sécurité et, si nécessaire, son code sont transférés à la destination. Le système d’agents de destination réactive l'agent et son exécution continue son cours. Lors du transfert de l’agent, le système source effectue les étapes suivantes:

1. L’interruption de l'agent;

2. La capture de l'état de l'agent à transférer;

3. La sérialisation de l’instance de la classe agent et son état;

4. Le codage de l’agent sérialisé en choisissant le protocole de transport; 5. L’authentification du système de destination;

6. Le transfert de l'agent.

La figure 3.3 présente un système d’agents. Avant qu'un agent ne soit reçu dans un système de destination, celui-ci doit déterminer s'il peut l’interpréter. Si c’est le cas, le système de destination accepte l'agent et procède aux actions suivantes:

1. L’authentification du système source; 2. Le décodage de l'agent;

3. La désérialisation de la classe agent et son état; 4. L’instanciation de l'agent;

5. La restauration de l'état d'agent; 6. La reprise de l'exécution d'agent.

Sérialisation/Désérialisation

La sérialisation est un processus qui permet d’encoder l'état d’un agent sous la forme d'une suite d’octets. Cette suite est utilisée pour la sauvegarde (persistance), ensuite l’envoie dans le réseau. La désérialisation est le processus symétrique permettant de décoder cette suite pour créer une copie conforme de l’état de l’agent dans sa forme originale. Notons que cette suite d’octets doit être capable d'identifier et de vérifier les classes dont les champs ont été sauvegardés. Place Infrastructure de communication AgentAgent Agent AgentAgent Agent Place Agent Système d’agents Système d’exploitation

Figure 3.3 Système d’agents [Object Management Group, 2000]

Communication entre les systèmes d’agents

La communication entre les systèmes d’agents passe via une infrastructure de communication (IC). Celle-ci fournit les services de transport de communications (par exemple, RPC), le nommage et les services de sécurité pour un système d’agents. L'administrateur de région définit les services de communication inter et intra régionale. La figure 3.4 présente la communication entre les systèmes d’agents.

Infrastructure de communication Agent Place Système d’agents Système d’exploitation Infrastructure de communication Agent Place Système d’agents Système d’exploitation Réseau

Figure 3.4 Communication entre les systèmes d’agents [Object Management Group, 2000]

Place

Lors de la migration, un agent se déplace entre des environnements d'exécution appelés places. Une place est un contexte dans un système d'agents dans lequel un agent peut s’exécuter. Ce contexte peut fournir des fonctions comme le contrôle d'accès. Les places source et destination peuvent être dans un même système ou dans différents systèmes qui supportent le même profil d'agents.

Une place est associée à un emplacement qui se compose du nom de la place et de l'adresse du système d'agents. Un système d’agents peut contenir une ou plusieurs places. Une place peut contenir un ou plusieurs agents. Lorsqu’un client demande l'emplacement d'un agent, il reçoit l'adresse de la place où l'agent s’exécute.

Région

Une région peut contenir un ou plusieurs systèmes d’agents qui ont la même autorité mais ne sont pas nécessairement du même type de système d’agents. Le concept de région permet à une personne ou à une organisation d’être représentée par un ou plusieurs systèmes d’agents. Les régions permettent l'adaptabilité en distribuant la charge à travers des multiples systèmes d'agents.

Une région fournit un niveau d'abstraction aux clients communiquant avec d'autres régions. Il est possible de communiquer avec des agents distants exactement de la même manière que s’ils se trouvaient au sein de la même région. Un client peut communiquer avec un agent distant en sachant seulement son nom et son adresse peu importe son emplacement.

Un agent peut aussi avoir la même autorité que la région dans laquelle il réside. Cela signifie que l'agent représente la même personne ou la même organisation que la région. Cette configuration de la région peut ainsi accorder plus de privilèges à un tel agent qu'à un autre avec une autorité différente. Par exemple, on peut accorder à un agent qui a la même autorité que la région des privilèges administratifs. Dans une région, les systèmes d’agents sont entièrement connectés entre eux. Ceci permet le transfert d'information point à point. Chaque région contient un ou plusieurs points d'accès de région et par ces biais, les régions sont donc connectées pour former un réseau. La figure 3.5 présente l’architecture d’une région.

Région Communication venant des autres régions Système d agents IC Système d agents IC Système d agents IC Système d agents IC Système d agents IC Système d agents IC

Communication entre les régions

Les régions communiquent via un ou plusieurs réseaux et peuvent partager un même service qui leur attribue un nom basé sur un accord entre des autorités de région. Un système ne supportant pas d’agents peut aussi communiquer avec les systèmes d’agents dans n'importe quelle région pour autant que ce système ait l'autorisation de faire ainsi. Une région contient un ou plusieurs systèmes d’agents. Ces derniers et les clients externes ont accès à la région via les systèmes d’agents qui sont exposés au monde extérieur. Cette configuration est semblable à une situation de coupe-feu. Ces systèmes d’agents sont définis comme des points d'accès de région.