Untitled Document
Service Gateway Pattern

En savoir plus

 

Afin de ne pas perdre en flexibilité et éviter de propager les détails d'intégration il faut encapsuler le code qui implémente la partie du contrat affectée au consommateur dans un composant Service Gateway isolé. Les composants Service Gateway jouent, dans l'accès aux services, le même rôle que les composants d'accès aux données pour l'accès aux bases de données de l'application. Ils agissent en tant que proxy vis-à-vis des autres services en encapsulant les détails de connexion à la source et en réalisant la conversion si nécessaire.

Le composant Service Gateway est introduit pour masquer la complexité de l'accès à une ressource externe. En effet, il permet de mettre en œuvre une couche d'abstraction qui encapsule les aspects de niveau inférieur concernant la communication avec le service. Ces détails incluent entre autres les éléments suivants :

Le composant Service Gateway encapsule toute la fonctionnalité de communication réseau de niveau inférieur

- La communication : Le composant Service Gateway encapsule toute la fonctionnalité de communication réseau de niveau inférieur permettant de communiquer avec le service. Par exemple, il masque tous les détails relatifs à l'utilisation de SOAP via HTTP pour la communication avec un service Web.

- Les données : Le composant Service Gateway effectue un mappage entre l'organisation interne des informations de l'application et le format spécifié dans le contrat de communication du service.

- Adaptateur de processus : Le composant Service Gateway doit adapter le processus métier de l'application pour qu'il puisse fonctionner avec le service. Par exemple, un simple appel au composant Service Gateway peut générer plusieurs appels vers une ou plusieurs opérations de service.

- Type d'invocation : Le composant Service Gateway adapte la sémantique d'appel de l'application consommatrice (en mode asynchrone ou synchrone) à la sémantique d'appel spécifiée par le contrat. Par exemple, il se peut que l'application consommatrice ne prenne pas en charge la sémantique d'appel asynchrone événementielle figurant dans le contrat. Le composant Service Gateway de l'application consommatrice devra alors convertir les appels synchrones de l'application de façon à appliquer le protocole asynchrone spécifié dans le contrat.

Génération automatique de Gateways

Il est possible parfois de générer le code du Service Gateway à partir des métas données publiées par le Service Interface. En effet, dans le cas où ce dernier se présente sous la forme de Web Service, nous disposons du WSDL décrivant les méthodes exposées ainsi que les formats des données requis pour le service. Ce qui suggère une nouvelle fois de dissocier certaines fonctions du Service Gateway en les plaçant dans des objets séparées dont un candidat idéal serait le mappage entre les données internes à l'application et le format attendu par le service fournisseur.


JDN Développeur Envoyer Imprimer Haut de page