• Aucun résultat trouvé

Agent Ressource (AR)

CHAPITRE VI : CONCEPTION

5. DESCRIPTION DETAILLEE DES AGENTS COMPOSANT NOTRE ARCHITECTURE

5.7. Agent Ressource (AR)

Afin de préparer l'intégration des données dans l'entrepôt, il est nécessaire de convertir les données à envoyer dans un format plus ou moins commun. Pour ce fait, Ces agents sont responsables de traduire différents formats des sources de données au modèle commun de données du système de data warehousing.

Le besoin fonctionnel auquel doit répondre un Agent ressource est de standardiser la syntaxe et la sémantique d’une source de données locale en les convertissant au format de la médiation. Ce service offre une solution de diffusion de l’information, permettant de conserver l’autonomie locale des sources de données. Ils permettent la traduction de chaque sous requête dans le langage local de la source concernée, l’interrogation de celle-ci par l’exécution de la requête, la récupération du résultat des sous requêtes et sa traduction dans le format commun du niveau médiateur.

Figure 54 : Architecture de l’agent Ressource

6.7.1 Les Modules de l’agent Ressource

a) Module de communication

Il est, comme ses équivalents dans les autres agents, responsable du traitement des messages entrant, et de l’élaboration des messages sortant. C’est l’interface de l’agent.

Il reçoit des autres agents les requêtes sous la forme d’un message et suite à cela, il appelle le module superviseur. Il reçoit également des demandes de transmission de messages du module de traitement. Ces demandes de transmissions constituent des réponses aux requêtes reçues.

b) Module superviseur:

Le Module superviseur assure la supervision de l’agent Ressource. Plusieurs rôles lui sont dévolus. Tout d’abord, il est là pour recevoir les requêtes en provenance du Module de communication et il est chargé de faire suivre la sous-requête au bon module, ce que soit le module Convertisseur, traducteur, ou bien de l'envoie à l'agent moniteur lorsque les schémas des bases de données doivent être mis à jour.

Il construit ensuite une réponse sous forme de message qu’il donne au module de communication pour être expédiée.

c) Module gestionnaire de connections

Ce module a deux fonctions principales. La première est l’acheminement de la requête générée par le module convertisseur vers la source pour son exécution. La deuxième fonction est la récupération du résultat de l’exécution de la requête. C'est un Connecteur aux différentes sources de données (ODBC, JDBC, Native...), il doit être fourni par le constructeur de source d'informations,

Module superviseur

Module Convertisseur Module traducteur

Module de communication

Module Gestionnaire de connections

ou soit codé par le programmeur dans le pire de cas; C'est le responsable de rechercher des données demandées par d'autres modules.

Pour construire ce pilote, nous avons utilisé un pont JDBC (Java Data Base Connectivity) / ODBC (Open Database Connectivity). Il crée une connexion JDBC à la source pour chaque demande d’exécution d’une requête et la ferme à la fin de cette exécution. Une fois que la connexion a été établie, ce module envoie la requête à la source pour son exécution et reste en attente des résultats. une fois que le résultat de l’exécution de la requête est disponible, Il récupère l’ensemble de n-uplets,. Ce résultat est ensuite mis à la disposition du module convertisseur.

d) Module Convertisseur

Le principal rôle du module convertisseur dans notre approche est la conversion schématique et syntaxique des données au format du système data warehousing et de résoudre les conflits dans la représentation de données. Par exemple, nous pouvons utiliser différentes représentations des mêmes données de type DATE dans les bases de données, comme "1975-03- 19", ainsi le module prend la responsabilité de la transformation en même modèle que celui du data warehousing, par exemple, 19-mar-75.

Si le système utilise un même schéma que celui de la source d'information, le module superviseur doit directement communiquer avec le module convertisseur sans invoquer le module traducteur.

Quand une requête est arrivée au module convertisseur, une analyse est effectuée pour trouver les conflits entre différents formats de données et pour les convertir en celui de la source d'informations. Alors la requête traduite sera envoyée au module gestionnaire de connexion. Une fois que le résultat est trouvé et retourné par le module gestionnaire de connexion, le module convertisseur convertira la représentation de données.

e) Module Traducteur

C’est le module qui caractérise l’agent ressource. il a comme premier rôle de traduire un langage de manipulation de données à un autre langage compréhensible par la base de données à laquelle l’agent ressource est relié, qui peut être du relationnel, objet, réseaux, … pour ne citer que quelques-uns. La sous-requête traduite est alors envoyée au module convertisseur de la base de données à interroger.

Le second rôle est La réception de la réponse renvoyée au module traducteur qui va effectuer l'opération inverse de traduction. C'est donc une transformation de données de type interne en celui que le système de data warehouse peut identifier (document XML). La réponse traduite,

que le module superviseur reçoit, est donc au format d'un document XML, Il la fait suivre à l'agent superviseur, qui peut alors la traiter, sous format du message ACL via le module de communication.

6.7.2 Fonctionnement de l'agent ressource

Lors de l'interrogation d'une source de données, l'agent superviseur envoie à l'agent ressource la sous-requête qui lui est destinée. Le module superviseur de ce dernier informe d'abord l'agent moniteur de détecter les mises à jour. L'agent moniteur détecte les modifications de la source d'informations et envoie les mises à jour à l'agent intermédiaire. Le module superviseur de l'agent ressource n'envoie pas la requête au module traducteur jusqu'à ce que la détection de mise à jour se termine. Quand l'agent moniteur termine sa détection, il informera l'agent ressource de continuer l'exécution de la sous-requête.

Le module superviseur est chargé de faire suivre la sous-requête au bon module, en l'occurrence ici au module traducteur si le langage d'interrogation de la base de données est celui de notre système qui est XML. Ce dernier va traduire la sous-requête en un langage compréhensible (SQL, par exemple, pour le relationnel) par la base de données à laquelle l'agent ressource est relié. La sous-requête est alors envoyée au module convertisseur qui va détecter les conflits dans la représentation des données, puis il va transmettre la sous-requête convertie à la base de données via le Module gestionnaire de connexions. La réponse de ce dernier est renvoyée au convertisseur, et au traducteur pour effectuer l'opération inverse de la conversion et traduction. C'est donc une réponse au format XML que le module superviseur de l'agent ressource reçoit, il la fait suivre à l'agent superviseur, qui peut alors la traiter, via le module de communication.