JORAM bénéficie directement de la technologie de pointe utilisée pour mettre en œuvre la plate-forme. Cette technologie et la façon dont elle est utilisé dans JORAM sont brièvement présentées dans cette section et la suivante.
L’expérience tirée de nombreuses années de recherche en informatique distribuée nous a conduit à adopter une approche basée sur l’intelligence distribuée pour la conception d’applications distribuées. Manipuler les données à proximité de leurs sources permet d’équilibrer la charge de calcul entre les ressources disponibles sur le réseau, et de réduire la bande passante puisque seules les données pertinentes pré-traitées sont transportées sur le réseau. Ce principe de conception de base est mis en œuvre à travers un modèle de programmation et de l’environnement d’exécution décrits ci-dessous.
Les agents sont des objets Java distribués qui communiquent par passage de messages. Le corps d’un agent est défini par une classe Java qui hérite d’une classe pré-définie Agent
(cette classe définit le comportement générique d’un objet agent).
Les agents respectent un modèle de programmation “Evénement/Réaction”. Un “événement” est la notification d’un message typé qui entraine l’exécution d’une méthode de la classe d’objet (la "réaction"). Cette méthode peut à son tour générer de nouveaux événements à destination d’autres agents. Une « réaction » est atomique (propriété "tout ou rien ») et l’état d’un agent est persistant.
Les agents sont des entités légères hébergées par une structure d’accueil nommée “Agent Server”. Les “Agent Server” sont des structures d’exécution configurables qui peuvent mettre en œuvre des politiques différentes pour le comportement des agents (par exemple, l’atomicité et la persistance).
Au cœur du serveur d’agent le moteur d’exécution contrôle le flot d’exécution des agents. Ce flot unique est constitué d’une boucle qui exécute les réactions successives de façon atomique.
Le composant Channel
est responsable de la transmission d’événements sur les serveurs agent cibles. Le bus de messages distribué est implanté par la coopération des composants Channel
de chaque serveur. Ce bus fournit la voie de communication entre les agents, s’exécutant dans un même serveur ou hébergés par des serveurs différents (sur la même machine ou sur des machines différentes).
Chaque bus local est constitué de deux parties : un composant Channel
et un ensemble de composants Network
.
Channel
réalise l’interface entre le moteur d’exécution et les composants Network
.Network
permet la communication entre des serveurs d’agents au travers d’un protocole donné (des composants sont disponibles pour TCP/IP, HTTP, SOAP, SSL, etc.).MQPerf
spatial
About us
About us