OData (Open Data Protocol), un protocole ouvert de données

De vastes ensembles de données sont disponibles aujourd’hui et les données sont collectées et conservées à un rythme encore jamais vu. Beaucoup, pour ne pas dire la plupart, de ces données sont verrouillées dans des applications et/ou des formats spécifiques ou des formats et les rendant de facto difficiles d'accès ou d'intégration en vue de nouvelles utilisations et innovations sociales et économiques.

image

Le protocole ouvert de données OData (Open Data Protocol) est un protocole Web pour requêter et effectuer des opérations sur des données. En permettant la création aisée de services orientés vers les données, il fournit un moyen de déverrouiller vos données et les exempte des silos qui existent aujourd'hui dans les applications.

OData s’applique les technologies Web telles que http, AtomPub, JSON (JavaScript Object Notation), JSONP (JSON with padding) pour :

  • Permettre aux sources de données, qu’il s’agisse de façon non exhaustive de bases de données relationnelles, de systèmes de fichiers, de systèmes de gestion de contenu, de sites Web traditionnels, de sites collaboratifs, etc., d'être exposés sur le Web de façon simple, sécurisée et interopérable ;
  • Et fournir ainsi un accès à l’information depuis un large éventail d’applications, de services et de magasins/stockages de données.

Le protocole résulte et tire bénéfice des expériences de mise en œuvre de serveurs et de clients AtomPub dans une variété de produits au cours des dernières années.

Il exploite les identificateurs de ressource uniformes (URI) pour l'identification des ressources et une interface uniforme http permettant d'interagir avec ces ressources, tout comme le ferait un utilisateur avec n'importe quelle application sur le Web.

Les (ensembles de) données et leur logique associée sont exposées comme un flux (feed) OData,

Ces derniers contiennent des données structurées (appelées entités) qui elles-mêmes contiennent des propriétés de types primitifs ou complexes. Par exemple, on peut définir un ensemble de données pour les points d'apport volontaire (PAV) des déchets ménagers comme celui mis à disposition par le Service SIG Rennes Métropole. Cet ensemble contient une liste de PAV, chacun ayant des propriétés telles que le code INSEE de la commune sur laquelle est situé le PAV, le type de PAV, le ou les flux de déchets pris en charge (verre, journaux-magazine, ordures ménagères ou multi-matériaux), si le PAV est implanté sur le domaine public ou pas, une longitude et une latitude en termes de coordonnées géo spatiales, etc.

Une fois les données exposées comme un flux OData via l’interface http, de simples requêtes http sur l’URL correspondante permettent de consommer les données. Il est bien entendu possible d’effectuer des opérations de filtrage, de tri ou d’agrégation en rajoutant certains paramètres à l’URL. Par exemple, la requête  https://ogdifrancedataservice.cloudapp.net/v1/frOpenData/RennesPAV/?$filter=flux eq 'VE' pour reprendre l’illustration précédente permet de ne s’intéresser qu’aux PAV prenant en charge le verre comme flux de déchet.

Les données peuvent être consommées en format AtomPub, JSON, ou encore KML (Keyhole Markup Language) suivant le choix du consommateur : bibliothèques à destination des développeurs, produits dit de « business intelligence », composants de visualisation, etc.

Cet engagement et adhésion envers les principes fondamentaux du Web et ses standards permettent à OData d’offrir une intégration des données simplifiée et un nouveau seuil en termes d’interopérabilité au travers d’un large éventail de producteurs et de consommateurs.

Il existe ainsi aujourd’hui des bibliothèques en .NET, iPhone, Java, PHP, JavaScript, Ruby, etc. quel que soit le coté où l’on se place comme notamment décrit dans le billet OData interoperability with .NET, Java, PHP, iPhone and more. Une liste des ressources ainsi disponibles est proposée sur le site OData.org. Grâce à OData et son écosystème, les développeurs peuvent donc créer des applications et services innovants qui viennent enrichir l’écosystème applicatif des Administrations et Collectivités Territoriales choisissant de publier leurs données et ainsi fournir une valeur ajoutée certaine aux citoyens et usagers.

Les spécifications du protocole OData sont ouvertes, publiques et libres d’implémentation. A ce titre, Microsoft a clairement indiqué qu’il s’engageait de manière irrévocable à ne pas faire valoir sa propriété intellectuelle sur ces standards ainsi que précisé dans l’OSP (Open Specification Promise), qui permet à tout le monde d’utiliser certaines technologies brevetées Microsoft de façon perpétuelle, à titre gratuit et sans devoir signer de contrat.

L’OSP s’applique aux développeurs et aux utilisateurs des logiciels propriétaires et Open Source, partout dans le monde. Au-delà des services Web RESTful, une vaste gamme de technologies, portant notamment sur la virtualisation, la sécurité et les formats de fichier, ont déjà été mises à disposition dans le cadre de l’OSP.

Ces spécifications font également l’objet d’une adoption croissante par l’industrie et d’un nombre d’implémentations en évolution constante tant en termes de producteurs que de clients consommateur.

Pour de plus amples informations, vous pouvez consulter le site dédié à https://www.odata.org.