| 
IV.4.2. Spécification fonctionnelle a. Décomposition de l'objectif globalL'objectif global de notre application est de
récupérer des informations afin de répondre à des
requêtes externes, cet objectif peut être décomposé
en plusieurs sous buts : -Réception des spécifications de l'utilisateur -Décomposition du problème en sous problèmes
plus simples -Recherche de source d'information convenable -Extraction des informations utiles. -composition du résultat final. Ceci nous mène à distinguer les rôles
suivants (Figure 13) : - Rôle Médiateur Ce rôle assure les tâches suivantes : recevoir les
requêtes externes au système et les reformuler en un langage
compris par les agents. Par la suite décomposer ces requêtes, les
transformer en sous requêtes plus simples et les distribuer aux
coordinateurs. Et enfin réunir les réponses de ces sous
requêtes pour former la réponse à la requête
d'origine. - Rôle Coordinateur Il est chargé d'exécuter des sous requêtes
provenant du médiateur. Il est en communication avec le Matchmaker en
vue d'avoir des informations sur les adresses des traducteurs capables de
répondre à ses sous requêtes. - Rôle Matchmaker : Il Fournit aux coordinateurs les adresses des traducteurs
capables de répondre aux services demandés. - Rôle Traducteur : Il est associé à une source d'information,
traduit la question posée par le coordinateur dans le langage de
requête de cette source et convertit les informations extraites de sa
source dans un langage compréhensible par le coordinateur. Spécification de l'utilisateur 
 Médiateur Utilisateur Coordinateur Coordinateur Traducteur Matchmaker Traducteur Sourced'information
 Sourced'information
 Figure 13 : Structure du système.
b. Spécification des rôles Dans cette partie on va détailler les différents
rôles conformément à la structure déjà
définie par le modèle organisationnel. Pour présenter l'ordre des enchaînements des
tâches ainsi que le nombre d'occurrence, on a utilisé le
formalisme de notation suivant : T1 + T2 : la tâche T1 suivie de T2. T1 || T2 : les deux tâches peuvent s'exécuter en
parallèle. T* : la tâche T se répète plusieurs
fois. Après la saisie des données par l'utilisateur et
le lancement de la recherche, il y aura création d'un agent qui va jouer
le rôle Médiateur dont le but principal est de collecter les
spécifications de l'utilisateur, de les reformuler, de décomposer
le problème, stocker les résultats qui proviennent et enfin les
réunir pour composer le résultat final (Figure 14). Médiateur 
 Devoirs  Actions abstraites : ·  T1 : Reformulation de la requête de
l'utilisateur ·  T2 : Décomposition de la requête en sous
requêtes ·  T3 : Stocker les résultats reçus ·  T4 : Composition du résultat final  Interventions : ·  T5 : Réception des spécifications de
l'utilisateur ·  T6 : Envoie des sous requêtes aux coordinateurs ·  T7 : Réception des résultats des
coordinateurs ·  T8 : Envoie de la réponse finale à
l'utilisateur Règle de coordination : T5+T1+T2+ (T6+ T7+T3)* +T4+T8
Droits  Ressources : Ø  Autorisations : Ø   Figure 14 : Rôle Médiateur. 
 Une fois que l'agent jouant le rôle Médiateur a
envoyé ses sous requêtes, il y aura création de deux agents
qui vont jouer le rôle Coordinateur (Figure 15), chacun d'entre eux va
envoyer une demande de recrutement d'un Traducteur auprès du Matchmaker,
lors de la réception du l'adresse du Traducteur, il envoie la sous
requête au Traducteur correspondant, et il communique le résultat
reçu au Médiateur.  Coordinateur     Devoirs  Actions abstraites : ·  T1 : demande de recrutement d'un traducteur au Matchmaker
Interventions : ·  T2 : Réception de sous requêtes provenant du
médiateur ·  T3: Réception de l'adresse du traducteur ·  T4 : Envoie de sous requête au traducteur
concerné ·  T5 : Réception du résultat du traducteur ·  T6 : Envoie du résultat au médiateur ·  T7 : Envoie d'informations supplémentaires  Règle de coordination : T2+T1+T3+T4+T5+ (T6||T7)  Droits  Ressources : Ø  Autorisations : Ø  Autorisations : Lecture     Figure 15 : Rôle Coordinateur.  L'agent jouant le rôle Matchmaker (Figure 16) a pour
principal but de fournir à l'agent jouant le rôle Coordinateur la
liste des Traducteurs capables de répondre à ces besoins.  Matchmaker     Devoirs  Actions abstraites : ·  T1 : sélection de traducteur convenable  Interventions : ·  T2 : réception de requête de coordinateur ·  T3 : réception de publication de capacités
de traducteur ·  T4 : envoie de l'adresse de traducteur au coordinateur
Règle de coordination : (T3*) || (T2+T1+T4)  Droits  Ressources : Ø  Autorisations : Ø   Figure 16 : Rôle Matchmaker.    Chacun des deux agents Coordinateur va communiquer la sous
requête qui lui provient du Médiateur à un agent Traducteur
(Figure 17) affecté à une source d'information. Après
avoir publié ses capacités chez le Matchmaker et recevoir les
sous requêtes, l'agent jouant le rôle Traducteur convertit ces sous
requêtes reçues en langage de requête de la source
d'information qui lui est affectée. Par la suite, il extrait les
informations utiles de cette source, traduit les résultats obtenus en
langage de communication des agents et enfin il les envoie à l'agent
jouant le rôle Coordinateur.  Traducteur    Devoirs  Actions abstraites : 
·  T1 : traduction de la requête reçue en
langage de requête de son système  d'information ·  T2 : extraction des informations ·  T3 : traduction de résultat en langage
compréhensible par l'agent Interventions : ·  T5 : publication des capacités ·  T6 : Réception de sous requête de
coordinateur ·  T7 : envoie de sous requête à la source
d'information ·  T8 : réception du résultat ·  T9 : envoie du résultat à l'agent
coordinateur Règle de coordination : (T5 *)| | (T6+T1
+T7+T2+T8+T3+T9) Droits Ressources : base de données Autorisations : lecture 
 
Figure 17 : Rôle Traducteur. c.
Contraintes d'attribution des rôles - Contraintes intra-rôles Le système qu'on souhaite développer se base sur
un ensemble d'agents travaillant en coopération afin d'accomplir un
objectif globale. Chaque agent, amené d'accomplir un tel sous objectif,
est chargé d'exécuter un ou plusieurs rôles à
condition que ceux-ci ne soit pas conflictuels. Dans notre système
chaque agent est chargé d'exécuter un rôle unique. L'agent jouant le rôle Médiateur par exemple ne peut
exécuter que ce rôle au sein de l'organisation
(présenté par la notation conflit dans le Tableau 3). - Contraintes inter-rôles Ce type de contrainte définie la cardinalité des
agents qui peuvent jouer le même rôle en même temps au sein
d'une même organisation. Concrètement, notre système inclut
d'une part des rôles attribués chacun à un seul agent, le
cas de l'agent jouant le rôle Matchmaker, de l'autre part, il inclut des
rôles attribués chacun à plusieurs agents, le cas des
agents jouant le rôle Traducteur, de même les agents jouant le
rôle coordinateur (Tableau 3). 
 
|   | Médiateur | Coordinateur | Matchmaker | Traducteur |  
| Contrainte intra-rôle | Conflit | Conflit | Conflit | Conflit |  
| Contrainte inter-rôle | 1..1 | 1..2 | 1..1 | 1..2 | 
Tableau 3 : Les Contraintes d'attribution des
rôles. |