Echanger des données : Fichiers, XML, API et WebServices

Cet article fait partie d'une série.

Ouvrir les données c'est les proposer en partage pour que d'autres les utilisent. La question des modalités d'échange des données est cruciale et le développement d'internet permet d'envisager plusieurs solution.

Il est, tout d'abord, possible de mettre simplement à disposition les tables de données et les éléments de documentation évoqués précédemment. On peut parler alors de "raw data" au sens où l'entend Tim Berners-Lee dans son fameux "we want raw data now !".

Pour faciliter les échanges de données, les fichiers XML constituent une alternative intéressante. Tous les fichiers xml sont conformes à une syntaxe normalisée par le W3C. Un fichier xml peut être utilisé pour présenter les données relative à un objet donné. Le fichier décrit à la fois des valeurs et les relations entre les valeurs.

On peut, donc, représenter l'ensemble du contenu d'une base de données sous forme de fichier xml. Le résultat est beaucoup plus volumineux mais aussi plus universel que la base en elle même.

Les fichiers XML sont faciles à interpréter pour les développeurs et pour les applications qu'ils réalisent. La facilité de l'interprétation de ces fichiers et le caractère universel de la syntaxe font d'xml un format courant pour les échanges entre machines via Internet. Une grande partie des "web services" et des API correspondent à des échanges de fichiers XML.

Les API sont une notion vaste qui englobe la notion de web service.

Une API est un dispositif appartenant à un programme et permettant dans un contexte technique donné, de solliciter automatiquement ce programme pour obtenir une action ou une réponse. C'est, comme son nom l'indique, une interface d'application utilisable par un programme.

Un web service est une API accessible via internet. Un web service permet à un ordinateur d'en interroger un autre via internet et d'utiliser la réponse dans le cadre de ses propres application.

Le développement du WEB suscite la création de nombreux web services. Un des plus visible est le web service de cartographie de google qui permet à n'importe quel site internet de présenter des éléments de cartographie. La cartographie est produite par un serveur Google, mais présentée par un serveur tiers. Autre exemple, Orange propose un catalogue API permettant, notamment, d'envoyer des SMS, et certains sites d'information sur les transports publics proposent des API de calcul d'itinéraire (comme le site Destineo de la région des Pays de la Loire qui alimente le site de la TAN à Nantes).

Données brutes en "fichier" (xml ou pas) et Web Service constituent deux façons de publier vos données. Beaucoup d'acteurs industriels (Google, Facebook...) proposent une ouverture par web service. Même si les coûts sont plus élevés, cette mise à disposition de web service permet :

  • un contrôle fin des accès, leur restriction éventuelle par exemple dans le cas d'un accès payant,
  • un suivi très complet de l'usage qui est fait du service puisque chaque utilisation se traduit par un requête visible par le serveur d'origine.
  • la garantie que l'ensemble des sites clients utilisent la "même version des données". Ce qui peut être important notamment lorsque les données évoluent souvent.
En revanche, beaucoup de développeurs préfèrent,au moins comme une alternative, avoir la capacité de disposer des fichiers comportant l'ensemble des données. Cela évite, notamment, toute dépendance vis-à-vis de l'éditeur des données.

Post suivant : Open data et Linked data : une donnée peut elle être libre et liée à la fois ?

Aucun commentaire: