Les Services Web

1. Introduction

Les services Web sont des applications qui relient des programmes, des bases de données ou des processus métiers à l’aide de XML et de protocoles Internet standards. Ils sont indépendants des systèmes d’exploitation et des langages de programmation.

La technologie des services Web permet de définir les données transmises entre deux applications, mais aussi comment traiter ces données, et comment les relier à l’interne et à l’externe d’une application logicielle sous-jacente d’une manière standard.

Les services Web permettent aux entreprises et individus de publier des liens vers leurs applications de la même manière qu’ils publient des liens vers leurs pages Web. Conséquemment, les services Web peuvent faire en sorte que toutes les ressources informatiques, dont une entreprise a besoin, soient des ressources distribuées à la grandeur de l’Internet.

Contrairement à la plupart des applications de type client/serveur, les services Web ne fournissent pas d’interface usager. Ils sont utilisés afin d’envoyer des données destinées à être lues par des machines. Cependant, les programmeurs peuvent tout de même développer une interface graphique pour l’utilisateur.

Une définition globale d’un service Web, au niveau technologique, peut être : Une application logicielle, légèrement couplée, à interaction dynamique, identifiée par une URI (Uniform Resource Identifier), pouvant interagir avec d’autres composantes logicielles, et dont les interfaces et liaisons ont la capacité d’être publiées, localisées et invoquées via XML et protocoles Internet communs. HTTP est le protocole de base pour le transport des messages entre services Web.

2. Architecture des services Web

L’architecture de référence des services Web vise trois objectifs importants : L’identification des composants fonctionnels, la définition des relations entre ces composants et l’établissement d’un ensemble de contraintes sur chaque composant de manière à garantir les propriétés globales de l’architecture.

L’architecture de référence comporte les trois éléments suivants :

Le fournisseur de service : Crée le service web, publie son interface et décrit le service en termes de mise en œuvre ainsi que des informations d'accès au service en WSDL dans un registre de services web UDDI et implémente le service dans un serveur d’applications tel qu'apache.

Le demandeur de service : Techniquement, il est représenté par l’application qui va rechercher et invoquer un service donné. Une application cliente peut être elle-même un service Web.

L’annuaire de services : Rend disponible l’interface d'un service ainsi que sa localisation c’est à dire celle de son serveur hôte pour les demandeurs des services clients. L’annuaire est sollicité lors du processus de découverte de services.

Un fournisseur décrit les fonctions de son service web dans le langage WSDL dans le serveur d'application et publie le service dans un annuaire UDDI, puis le demandeur de service communique avec l’annuaire pour rechercher un service spécifique. Une fois qu’il trouve le service, il doit s'enregistrer auprès du fournisseur, ensuite ils peut accéder au service suivant les conditions décrites dans la publication du service.

La communication entre le demandeur de service et le fournisseur est assurée par le SOAP et les autres protocoles de communication. Le demandeur de service envoie une requête SOAP vers le fournisseur de service, cette requête est véhiculée par le HTTP jusqu’au fournisseur. Ensuite, le fournisseur transmet la requête à son service Web qui traite la requête et renvoie sa réponse au demandeur sous la forme d’un document XML via SOAP et HTTP.

Plusieurs standards ont été proposés pour assurer l’interaction entre les trois opérations précédentes (publication, recherche et lien), entre autre nous citons les standards suivants :

3. SOAP (Simple Object Access Protocol)

SOAP est un protocole de communication entre services Web, basé sur le langage XML. Il est indépendant de toute plate forme. Par exemple, un client SOAP Java s’exécutant sur Linux peut se connecter à un serveur SOAP Microsoft s’exécutant sur Windows.

 

structure d'un message soap

Figure 1 - Structure d’un message SOAP 

 

Un message SOAP est composé de trois parties ou blocs : l’enveloppe (Envelope), l’entête du message (Header) et le corps du message (Body) (Figure 1)

L’Enveloppe SOAP : L’enveloppe SOAP marque le début et la fin d’un message SOAP. Elle englobe les deux autres éléments d’un message SOAP (Header et Body). Les spécifications du protocole SOAP imposent que tous les éléments imbriqués soient explicitement associés à un namespace, pour permettre de multiples règles d’encodage du même message et afin d’éviter toute ambiguïté.

L’en-tête SOAP : L’en-tête, élément facultatif imbriqué dans l’enveloppe, permet de passer dans le message SOAP des informations complémentaires (des caractéristiques et des fonctionnalités additionnelles) sur ce même message. L’en-tête peut apparaître une ou plusieurs fois dans le message SOAP, un message SOAP peut avoir à "traverser" plusieurs serveurs intermédiaires avant d’atteindre son destinataire final. Dans ce cas, l’en-tête joue un rôle primordial : à chaque arrêt le long de l’itinéraire, le serveur intermédiaire extrait de l’en-tête ce qui le concerne en propre et ajoute ce qui est nécessaire au serveur intermédiaire suivant.

Le corps du message SOAP : Le corps du message SOAP, contient les éléments à transmettre, il est composé d’un ou de plusieurs sous éléments. Ces sous éléments sont : FAULT et MESSAGE.

L’élément FAULT permet d’indiquer les défaillances de transmission des massages SOAP. Il renvoie des informations sur le type d’erreur, une description de l’erreur et l’adresse du serveur SOAP qui a généré l’erreur. L’élément MESSAGE contient les données à transmettre via le protocole SOAP. 

4. WSDL (Web Services Description Language)

WSDL est une application XML créé pour décrire et publier les interfaces et protocoles des services Web d’une manière standard. L’interface d’un service Web est nécessaire, car elle permet d’éviter de décrire des interactions spécifiques pour chaque serveur Web. WSDL présente un format commun pour la description et la publication des interfaces et protocoles relatifs aux services Web.

Une description WSDL (voir Figure 2) d’un service Web est faite sur deux niveaux : Niveau abstrait et niveau concret.

Au niveau abstrait, la description du service Web consiste à définir les éléments de l’interface du service tel que : Types de données (Data Types), les messages (Message), les opérations (Operation) et les types de ports (port Type).

 

structure d'un document wsdl

Figure 2 – Structure d’un document WSDL

 

Types de données (Data Types) : Data types est l’élément qui définit les types de données utilisées dans les messages échangés par le service Web. Une fois définis, les data types, ou type, peuvent être référencés dans n’importe quel message.

Opération : l’élément operation spécifie les types d’opérations supportées par le service Web, il permet d’incorporer une séquence de messages corrélés sans avoir à spécifier les caractéristiques du flux de données, par exemple un message Input et un message output corrélés sont mis en correspondance dans une seule operation de type Request/Response.

PortType : portType est un groupement logique ou une collection d’opérations supportées par un ou plusieurs protocoles de transport, il est analogique à une définition d’un objet contenant un ensemble de méthodes.

Au niveau concret, le service Web est défini grâce aux éléments : Bindings, ports et services.

Binding : Définit le protocole à utiliser pour invoquer le service Web.

Port : l’élément port, dans la partie concrète, identifie un ou plusieurs bindings (ou liaisons) aux protocoles de transports pour un portType donné. La séparation du protocole de transport de la définition du portType permet à un service Web d’être valable à travers plusieurs protocoles de transports sans avoir à redéfinir l’ensemble du fichier WSDL.

Finalement, l’élément service spécifie le nom et l’adresse complète du service Web et il est composé d’un ensemble de ports.

Les interactions entre ces trois acteurs suivent plusieurs étapes :

La publication du service : Le fournisseur diffuse les descriptions de ses services Web dans l'annuaire.

La recherche du service : Le client cherche un service particulier, il s'adresse à un annuaire qui va lui fournir les descriptions et les URL des services demandés afin de lui permettre de les invoquer.

L'invocation du service : Une fois que le client récupère l'URL et la description du service, il les utilise pour l'invoquer auprès du fournisseur de services.

5. Conclusion

Les services Web sont la dernière technologie pour l’intégration et l’interopérabilité des systèmes répartis. Basés sur le standard XML, ils sont caractérisés par leurs indépendances aux plates formes et aux systèmes d’exploitation, ce qui a impliqué leur adoption par les différentes organisations commerciales et industrielles offrant leurs services à travers le Web, et par conséquent l’augmentation du nombre de services offerts. La découverte de service devient de ce fait un des aspects les plus importants relatifs aux services Web. L’annuaire UDDI permet la recherche des services en se basant sur des mots clés ou des descriptions WSDL. Cependant la recherche dans UDDI n’est faite qu’au niveau syntaxique, cette méthode présente quelques limitations ; la recherche syntaxique ne permet pas de trouver le service demandé à chaque fois ; De plus, un agent logiciel ne peut pas examiner la description textuelle destinée pour des humains, ce qui présente un handicap pour l’automatisation de la découverte, composition, et collaboration des services Web. Pour permettre l’automatisation des diverses tâches liées aux services Web, l’idée consiste à enrichir les descriptions des services Web par d’autres informations supplémentaires compréhensibles par des machines. Ces informations sont des données sur comment interpréter les descriptions des services Web. En d’autres termes, c’est la sémantique des descriptions des services Web, puisque deux services Web peuvent avoir la même description syntaxique mais avoir deux sens différents. 

 

Commentaires

Publier un nouveau commentaire

  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Vous pouvez désactiver l'éditeur de texte avancé.

Plus d'informations sur les options de formatage

CAPTCHA visuel