Lexique: WebServices
Publié le 26 February 2007, par Babozor dans la catégorie Lexique[Rubrique de vulgarisation (donc non techique) de termes Web souvent mal employés]
Ajourd’hui nous nous attaquons à un terme qui est bien souvent utilisé à tort et à travers: les WebServices.
Qu’est ce que c’est un webservice?
Un webservice est un échange de données entre deux serveurs distants, utilisant le format XML pour dialoguer.
Pour utiliser un exemple pratique, vous avez un site de vente de chaussures et vous venez de tisser un partenariat avec un site de vente de chaussettes, vous voulez donner accès à votre site aux clients de votre partenaire sans avoir à se ré-inscrire. Vous avez deux solutions: vous mettez en place une routine de réplication de la base client de votre partenaire vers votre base de donnée (contraignant, les infos modifiées dans la journée ne sont pas à jour, etc…) ou vous utilisez un webservice pour aller “piocher” les infos clients directement dans la base de donnée de votre partenaire.
Le but du webservice est de récupérer des données sur un serveur distant ou utilisant une technologie non compatible, par exemple en utilisant le XML un serveur Java et PHP peuvent s’échanger des informations, toutes les données étant traitées en XML, peu importe que votre serveur soit en .Net ou PHP, que votre base soit sous Oracle, MySQL ou SQL Server, tout le monde peut se comprendre.
Les webservices ne sont pas la panacé, loin de là, mais ils permettent beaucoup de choses, pas tout. Le principal intérêt du webservice est de pouvoir accéder à des informations à distance. Certains éditeurs utilisent justement ces webservices pour produire des API qui permettent à tout un chacun de récupérer des informations ou de les afficher (un bon exemple est par exemple les différentes API de Google [GoogleMap, GoogleSearch, etc…], qui privilégiaient les webservices mais qui sont passés petit à petit à l’AJAX)
Techniquement, plusieurs protocoles permettent aux différents serveurs de dialoguer entre eux (rien n’empêche de créer vous même votre propre protocole, du moment que les deux serveurs l’adoptent et parlent la même “langue” XML) :
- SOAP (Simple Object Access Protocol) le plus utilisé
- XML-RPC
- REST
Il en existe beaucoup d’autres, mais je ne rentrerais volontairement pas dans les détails techniques.
Les avantages:
- interpolabilité entre plateformes distantes et technologies non compatibles
- utilisation de protocoles standards et ouverts
- facilité de mise en place
Les inconvénients:
- format un peu “jeune” comparé aux ainés comme CORBA
- certains problèmes de sécurité peuvent exister (les webservices uilisant le protocole HTTP pour faire transiter les informations, même si les données peuvent être cryptés, certains problèmes de sécurité peuvent subsister)
- des éventuels problèmes de performance
Les webservices sont une solution idéale pour des transactions reccurentes de données non vitales entre des serveurs distants, ou le développement d’API… Cette méthode est loin d’être la panacé mais peut répondre à certaines problématiques d’échange de données.


