# Architecture ARPA I3

Il s'agit d'une architecture générique des solutions de médiation conçue par l’ARPA (Advanced Research Projects Agency) du département de la défense américaine. Cette architecture baptisée I3 (Intelligent Integration of Information) est un développement de celle proposée par Wiederhold dans laquelle le terme « médiateur » est un terme générique désignant tout composant d’une solution de médiation. Pour Wiederhold, le terme « médiateur » est par contre employé dans le sens d’un composant responsable de l’intégration des données, générant de l’information de haut niveau, principalement en résumant l’ensemble des informations fournies par différentes sources.
L’architecture I3 se divise en cinq classes de services; les services de coordination, les services de management, les services d’intégration et de transformation sémantique (SIT), les services d’extensions fonctionnelles et les services d’adaptation. Ces services ne sont pas orthogonaux, le diagramme de l’architecture ARPA explique les dépendances fonctionnelles.

## Les services de coordination (C)

Les services de coordination comprennent l’ensemble des outils de gestion de la configuration d’une solution de médiation soit :

### C1 Service de sélection et d’invocation (broker)

Ce service reçoit directement les requêtes des usagers. Celui-ci ne réalise aucune opération de décomposition de la requête ou de traduction. Son seul rôle consiste à localiser à l’aide de métadonnées, d’ontologies et de répertoires, le service le plus apte pour résoudre la requête. Ensuite, il délègue la tâche de résolution de la requête au service qu’il a trouvé. Certains auteurs utilisent le terme de « router » pour ce type de service.
Les services utilisés par les brokers sont les services de découverte des ressources (M1) et les services d’interprétation et d’exécution des moules (M3). Ils utilisent également les services de la famille S et F.
Les entrées sont :
* Requête de l’usager
* Réponse d’un service I3
* Ontologie et métadonnées décrivant le modèle de l’usager (ontologie utilisée pour la requête, service désiré)
Les sorties sont :
* Réponse retournée à l’usager

### C2 Service de gestion de la configuration (facilitateur)

Un facilitateur est un broker offrant plus de services. Il est capable d’effectuer des traductions permettant de rediriger la requête vers un service utilisant une autre syntaxe. Il peut également décomposer une requête en sous-requêtes et ordonnancer et distribuer celles-ci aux divers services qu’il aura préalablement localisés. Pour terminer, il peut combiner (intégrer) les différents résultats en une réponse cohérente. Les services utilisés par les facilitateurs sont les services de découverte des ressources (M1) et les services d’interprétation et d’exécution des moules (M3). Ils utilisent également les services de la famille S et F.
Les entrées sont :
* Requête de l’usager
* Réponse de services I3 aux sous-requêtes
* Ontologie et métadonnées décrivant le modèle de l’usager (ontologie utilisée pour la requête, service désiré)
Les sorties sont :
* Réponse intégrée retournée à l’usager
* Liste des différentes entrées de contrôle (flux de contrôle) envoyées aux services utilisés

### C3 Service de construction de configuration statique (Matchmaker)

Ce service est décrit comme apte à générer un médiateur. Il génère la configuration nécessaire pour fournir le service désiré. Cette configuration définit les services utilisés, les liens de communication utilisés, les traductions nécessaires et les programmes de contrôle nécessaires pour séquencer la requête. Ce service ne résout donc pas la requête mais retourne à l’usager une solution de résolution de la requête, soit l’ensemble des étapes que l’usager doit effectuer pour résoudre sa requête.
Les services utilisés par les matchmakers sont les services de découverte des ressources (M1) et les services sur les processus de configuration (M2). Ils utilisent également les services de la famille S et F.
Les entrées sont : Requête de l’usager
* Ontologie et métadonnées décrivant le modèle de l’usager (ontologie utilisée pour la requête, service désiré)
Les sorties sont :
* Solution de liaison et de configuration des services pouvant livrer une solution.

### C4 Interface d’application ad hoc

Catégorie fourre-tout où on retrouve toute interface offrant des services de médiation directement utilisable par l’usager, et ne pouvant être décrite par C1, C2 ou C3.

## Les services de management (M)

Il s’agit d’une collection de services permettant l’invocation et l’ordonnancement des services I3. Ils permettent également de configurer les différents services de manière à traiter une certaine requête.

### M1. Services de découverte des ressources
#### M1.A Les pages blanches, pages jaunes et pages jaunes intelligentes

Les pages blanches sont les plus simples, elles ne font qu’enregistrer et désenregistrer les ressources et activer ou désactiver celles-ci; elles permettent de trouver une ressource en ne connaissant que son nom. Les pages jaunes permettent de trouver des ressources en fonction du service désiré. Les pages jaunes intelligentes effectuent de l’inférence pour déduire le service désiré en fonction d’une requête de service n’étant pas parfaitement syntaxiquement et/ou sémantiquement normalisée.

#### M1.B Service de navigation (navigateurs)

Les navigateurs permettent à des usagers de naviguer dans les métadonnées et le schéma d’une source de données particulière. Ils permettent également à un autre service d’accéder et de naviguer dans les métadonnées et schéma d’une source de données. Ceux-ci sont entre autres utilisés par les adaptateurs.

#### M1.C à M1.E Service d’explication et d'aide des services, processus et outils

* M1.C Service d’explication des services et outils
* M1.D Service d’explication des processus
* M1.E Service d’aide à la création de requêtes
Ces services assistent l’usager ou les services de coordination dans l’utilisation du système et la création de requêtes.

### M2 Services de configuration

* M2.A Service de sélection de services
* M2.B Service de sélection d’outils et de sources d’information
* M2.C Service de création de moules (templates)
* M2.D Service de contrôle de processus
Ces services sont utilisés par les services de coordination lorsqu’ils construisent une solution de configuration. Le sélecteur de services permet de trouver les services permettant de réaliser une tâche particulière. Le sélecteur d’outils et de sources d’information permet de trouver les sources d’information et les outils appropriés pour réaliser une tâche particulière. Le service de création de moules est utilisé pour déterminer comment combiner les différents outils et sources d’information pour générer un moule (éléments de configuration). Le contrôleur de processus permet la construction d’un moule (le moule est ici considéré comme étant du code exécutable).

### M3 Services d’interprétation et d’exécution de moules

* M3.A Service d’analyse syntaxique (parser) et de génération de configurations
* M3.B Service d’ordonnancement de processus
* M3.C Service de gestion des processus et des données
Ces services permettent d’exécuter un moule (template de configuration). L’analyseur syntaxique génère une configuration à partir d’un moule. L’ordonnateur de processus gère la distribution et le contrôle de la configuration sur plusieurs processus alors que le gestionnaire des processus et des données génère le contrôle concernant un processus particulier et maintient une banque d’information locale.

## Services d’intégration et de transformation sémantique (S)

Ces services permettent de gérer et de manipuler les ontologies, contextes et schémas. Dans le premier cas, l’entrée consiste en une source ou plusieurs sources d’information et la sortie en une intégration ou une transformation de cette information. Dans le deuxième cas, l’entrée consiste en un composant logiciel et la sortie est le composant reconfiguré.

### S1 Services d’intégration de schémas

Ces services permettent l’intégration de schémas et de connaissances à partir de sources multiples.

#### S1.A Service de traduction d’ontologies et de vocabulaire

Ce service permet de générer une ontologie étant l’intersection de plusieurs ontologies ou de convertir un terme d’une ontologie source dans le terme correspondant de l’ontologie de destination.

#### S1.B Service de traduction de vues

Ce service permet d’établir les correspondances entre un schéma local et un schéma global.

#### S1.C Service d’intégration de vues

Ce service permet d’intégrer un schéma local à un schéma global.

### S2.A et S2.B Service de restructuration, d'abstraction et d'agrégation

* S2.A Service de restructuration des données
* S2.B Service d’abstraction et d’agrégation
Ces services permettent de créer une synthèse des informations de plusieurs sources. Les services de création de résumés et d’abstractions permettent de condenser les informations pour la prise de décision.

#### S2.C Service de mise en correspondance d’objets

Ce service permet à des objets de sources distinctes d’être considérés comme étant le même au sein d’un schéma commun (responsable des opérations de rapprochement sémantique et de réconciliation ou d’unification de contextes).

#### S2.D Service de transformation de contextes

Ce service permet typiquement la traduction d’un contexte d’une ontologie à une autre et d’un format de contexte à un autre.

### S3 Services d’intégration des processus

S3.A Service de décomposition de requête Permet de décomposer une requête en sous-requêtes destinées à plusieurs services. S3.B Service d’intégration des résultats Permet de combiner les différents résultats des différentes sous-requêtes en une réponse intégrée et cohérente. S4. Services d’intégration physique Ces services permettent de réaliser l’intégration et la liaison entre composants aux niveaux système et syntaxique.

## Les services d’extensions fonctionnelles (F)
### F1 Services actifs

* F1.A Service de triggering
* F1.B Service de monitoring
* F1.C Service de propagation de mises à jour
* F1.D Service d’exécution de règles
* F1.E Service de résolution des conflits entre règles
Ces services permettent de réaliser des procédures événementielles comme le monitoring d’événements ou le respect de contraintes d’intégrité.

### F2 Services d’inférence

Ces services permettent les opérations nécessitant un raisonnement complexe à partir de règles (raisonnement de type système expert).

### F3 Services de gestion multi-états

Ces services permettent la gestion du changement, incluant l’évolution du schéma, des données, des versions, la réplication des données et les accès hypothétiques aux données.

## Services d’adaptation (W)

Ce service est celui que doivent fournir les adaptateurs. Le besoin fonctionnel auquel doit répondre un adaptateur 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.

### W1 Services d’adaptation des communications
#### W1.A Service d’adaptation des interfaces d’appels

Permet la conversion syntaxique et sémantique des interfaces d’appels entre deux programmes.

#### W1.B Service de gestion d’événements

Permet la gestion du trafic des événements entre une source d’information et un service incompatible de plus haut niveau.

#### W1.C Service d’adaptation des appels de méthodes et de fonctions

Permet la conversion des appels de méthodes et de fonctions entre une source d’information et un service incompatible de plus haut niveau.

### W2 Services de restructuration des données
#### W2.A Conversion des formats

Permet la conversion schématique et syntaxique des données au format de la médiation.

#### W2.B Restructuration des métadonnées

Permet la conversion des métadonnées au format de la médiation.

### W3 Services d’adaptation comportemental
#### W3.A Service de modification de l’application

Permet la modification de la sémantique (comportement) d’un programme en modifiant, par exemple, des calculs.

#### W3.B Service de modification de protocole

Permet la modification d’un protocole (communication, gestion de la concurrence, etc.).

#### W3.C Service de traduction de langage

Permet la traduction d’un langage de manipulation de données à un autre. Par exemple, de SQL à OQL ou dans le cas de modèle semi-structuré XML en passe à QXML.