Culture Générale

Agents mobiles – Processus de migration et ses implications

agent mobile
Communication client / serveur traditionnel et avec l’agent mobile

Les agents mobiles sont des agents qui peuvent physiquement voyager à travers un réseau, et d’effectuer des tâches sur les machines qui fournissent des capacités d’hébergement de l’agent. Ce processus permet de migrer d’ordinateur à ordinateur, pour les processus de se scinder en plusieurs instances qui s’exécutent sur des machines différentes, et de retourner à leur point d’origine. À la différence des appels de procédure à distance, où un processus appelle les procédures d’un hôte distant, le processus de migration du code exécutable permet de voyager et d’interagir avec les bases de données, systèmes de fichiers, les services d’information et d’autres agents. La technologie derrière les agents mobiles est examinée, et une analyse de ses utilisations et ses conséquences est offert.

Agents mobiles ont fait l’objet de beaucoup de spéculations et de battage publicitaire au cours des dernières années. L’appel d’agents mobiles est assez séduisante – agents mobiles agents mobiles qui circulent sur internet pourraient rechercher des informations, nous trouver des offres exceptionnelles sur les produits et services, et d’interagir avec d’autres agents qui errent également les réseaux (et se rencontrent dans un lieu de rassemblement) ou demeurent liés à un ordinateur particulier. Un important effort de recherche-développement en agence mobile a été menée au cours des dernières années, et il existe de nombreuses architectures de l’agent mobile disponible aujourd’hui. Toutefois, Agent Mobile n’a pas réussi à devenir une force radicale de changement, et doit maintenant faire face à la concurrence de la technologie d’appel de procédure distante (RPC).

Technologie derrière la migration de processus

En général, les éléments suivants sont nécessaires pour permettre aux agents de migrer à travers un réseau :

1) Language d’exécution commun

Si un processus consiste à migrer d’un hôte à un autre, puis les deux hôtes doivent partager une langue d’exécution commun. Dans un environnement réseau homogène, il est concevable que le langage assembleur ou code machine pourrait être transmise à travers le réseau pour l’exécution. Toutefois, un tel système serait extrêmement limitée.

Un scénario plus probable pour agent mobile est un environnement hétérogène, où de nombreuses architectures système différentes sont connectés. Dans ce cas, un langage de script interprété ou l’émulation d’un système qui est capable d’exécuter le code machine résout le problème d’une langue d’exécution commun.

2) Persistance du processus

Pour assurer la migration vers des ordinateurs distants, les agents mobiles doivent être capable de sauver leur état d’exécution ou la fraye un nouveau processus dont l’état d’exécution sera enregistrée.

la persistance consiste à convertir l’objet état (variables, pile, et peut-être même le point d’exécution) et de le convertir en un format approprié pour la transmission de données sur un réseau. Les agents ne doivent pas être responsables de la réalisation de cet eux-mêmes, et la persistance du processus serait probablement construit dans la langue de l’agent mobile ou de l’architecture.

3) Mécanisme de communication entre les hôtes de l’agent

Un certain mécanisme de communication doit exister pour les agents de transfert à travers les réseaux. Un agent peut être transféré à l’aide de TCP/IP, ou en utilisant un niveau supérieur de communication, comme le RMI, IIOP, SMTP ou même HTTP. Les architectures de l’agent mobile peut même utiliser une variété de mécanismes de transport, donnant une plus grande flexibilité.

Un code exécutable de l’agent doit être transféré, qui peuvent consommer une grande quantité de bande passante du réseau, à moins que le code partagé est situé au niveau de l’agent hôte. Des techniques telles que les bibliothèques partagées de code, ou de la mise en cache, peuvent être bénéfiques. En outre, la persistance de l’état de l’agent doit être transféré.

4) La sécurité pour protéger les agents et les hôtes de l’agent

La sécurité est essentielle lorsque le code exécutable est transférée à travers un réseau. Malveillants ou mal écrit le code pourrait causer des ravages lorsque déchaînées contre un hôte sans méfiance et les agents eux-mêmes ont besoin d’une protection contre les hôtes hostile qui chercherait à disséquer ou de les modifier. Il n’y a pas de solution magique qui résoudra tous les problèmes de sécurité des agents mobiles, mais des précautions peuvent être prises pour minimiser les risques.