Services Web : services entre machines

Pour de nombreuses personnes, utiliser des services sur le Web va de soi. Acheter en ligne, lire son journal, réserver une table dans un restaurant, regarder un film sont autant de services que nous utilisons chaque jour. Alors que la personne devant son écran navigue sur Internet et prend des décisions, de nombreuses choses se passent entre l’homme et la machine. Mais il s’en passe tout autant entre les machines. Des requêtes et des réponses sont constamment envoyées entre le client et le serveur. Cet échange est rendu possible par le Web service (service Web en français).

Qu’est-ce qu’un Web service ? Définition

Un service Web met à disposition un service via Internet. Il constitue ainsi une interface permettant à deux machines (ou applications) de communiquer. Pour y parvenir, la technologie doit disposer de deux propriétés essentielles :

  • être multiplateforme : il n’est pas nécessaire que le client et le serveur aient la même configuration pour pouvoir communiquer. Le service Web leur permet de se retrouver à un même niveau.
  • être partagée : dans la plupart des cas, un service Web est à disposition de plus d’un client. Différents clients accèdent à ce service via Internet.

Lorsqu’un service Web est utilisé, un client envoie une requête à un serveur et déclenche ainsi une action auprès de ce serveur. Le serveur renvoie ensuite une réponse au client.

Note

À l’origine, les services Web étaient réalisés exclusivement via SOAP. Aujourd’hui, d’autres méthodes sont toutefois également utilisées telles que REST.

La technologie des services Web expliquée à travers un exemple

Les services Web sont adressés via un Uniform Resource Identifier (URI) unique. De façon similaire à une Uniform Resource Locator (URL), qui permet d’adresser des sites Internet, l’URI est l’adresse du Web service correspondant. En théorie, l’annuaire de services UDDI, qui permet de trouver les services Web, joue également un rôle. Ce service n’a toutefois jamais su s’imposer, ses plus grands partisans s’étant même retirés du projet.

Le langage Web Service Description Language (WSDL) est quant à lui nettement plus important. Chaque service Web possède un fichier en WSDL qui décrit le service en détail. Grâce à ces informations, le client peut identifier les fonctionnalités qu’il peut exécuter sur le serveur à l’aide de ce service Web. Finalement, la communication fonctionne à travers des architectures et des protocoles différents. Il est par exemple fréquent de voir le protocole réseau SOAP utilisé en association avec le standard internet HTTP ou avec RESTful Webservices. Ces technologies envoient des requêtes et des réponses.

La communication fonctionne souvent sur la base du Extensible Markup Language (XML). Ce langage relativement simple peut être compris aussi bien par les Hommes que par les machines et est idéal pour connecter ensemble des systèmes avec différents prérequis. REST est toutefois compatible avec d’autres formats comme JSON.

Voici un exemple de service Web pour plus de précision : partons d’un logiciel codé en Visual Basic et fonctionnant sur une machine Windows. Le programme a besoin des services d’un serveur Web Apache. Pour ce faire, le client envoie une requête SOAP au serveur sous la forme d’un message HTTP. Le service Web interprète le contenu de la requête et veille à ce que le service effectue une action. Après l’exécution, le service Web formule une réponse et la renvoie au client, une fois encore avec SOAP et HTTP. La réponse est à nouveau interprétée et les informations sont transmises au logiciel où elles sont traitées.

Avantages et inconvénients des services Web

Le principal avantage des services Web réside dans le fait que la communication peut s’effectuer sur diverses plateformes. Le client et le serveur n’ont pas besoin d’avoir grand-chose en commun pour que la communication fonctionne. Pour permettre cette dernière, les services Web ont recours à des formats standardisés compris par tous les systèmes.

L’un des inconvénients provient toutefois de ces formats. XML est un format plutôt encombrant qui entraîne de grands paquets de données. Dans le cas de connexions réseau lentes, cela peut être source de problèmes. Une autre possibilité pour connecter deux systèmes ensemble via Internet consiste à utiliser des API Web. Il s’agit d’interfaces pouvant également être consultées via Internet. Elles sont généralement plus rapides, mais fixent des objectifs beaucoup plus clairs pour le client et le serveur ce qui limite l’interopérabilité.