Tout sur le protocole OData

ODATA c’est quoi ? Comment ? Pourquoi ?

OData est un protocole qui est l’équivalent pour le web de la norme SQL pour les bases de données. De la même manière que SQL est un langage qui permet de requêter de la donnée filtrée, triée, projetée, depuis un SGBD, OData est une syntaxe qui permet les mêmes opérations, mais sur des sources de données rendus disponibles par le biais du protocole HTTP.

Dans le cas d’une base de données, on utilise un client qui fournit la syntaxe au serveur, qui exécute la requête et renvoie les données. Dans le cas d’un service OData, le fonctionnement est absolument identique : le client (n’importe quel client web, comme un navigateur par exemple) envoie une requête suivant la syntaxe OData, et reçoit le résultat.

OData. Ni standard, ni norme, mais un protocole

OData est un protocole créé par Microsoft ressemblant fortement au protocole Google Data Table créer par Google.

Il est un standard de fait pour le requêtage et l’exposition de données sur les protocoles web. Bien sûr, les produits de Microsoft se basent dessus (Power BI, les collections de SharePoint, les sources de PowerPivot, un plugin pour utiliser du OData dans Excel, des points d’exposition sur SQL Server, etc.) mais ce qui est intéressant est que d’autres s’y mettent aussi (IBM, SAP, e-Bay, QlikView, Bime, Self-Service Dashboard, etc.)

OData ≠ Open Data… mais il y a quand même un lien

OData est un protocole technique, tandis qu’Open Data est un mouvement politique prônant l’ouverture des données publiques sous une forme électronique, de façon à favoriser son appropriation par les citoyens, sa réutilisabilité dans l’économie, ainsi que la transparence générale de l’Etat et des administrations par rapport aux administrés.

Evidemment, le nommage n’est pas anodin, et la ressemblance est forte à dessein. Microsoft livre un framework OGDI en Open Source qui permet aux collectivités locales de mettre en place des services Open Data sur internet, typiquement sur Azure, le Cloud de Microsoft. Le Conseil Général de Saône et Loire a été le précurseur sur cette technologie. Et bien évidemment, le protocole d’exposition des données préférentiel d’OGDI est OData. Le besoin d’interopérabilité au niveau des données est réel pour que le mouvement Open Data puisse atteindre la taille critique et montrer ses bienfaits. OData veut se poser en protocole de référence pour cette interopérabilité des sources.

ODATA pour qui ? Pour quoi ?

OData pour les urbanistes

Pour un urbaniste, OData peut être un bon moyen de mettre en oeuvre du Master Data Management, et de mettre ainsi à disposition de tout son SI, ainsi que de l’extérieur, des sources de données uniques, qui serviront de référentiels pour tous les services.

OData pour les développeurs

Pour les développeurs, OData peut être vu comme un langage d’interrogation de sources de données distantes. De la même manière que SQL permet de requêter des données dans un SGBD-R, OData permet de requêter des données sur un point d’entrée HTTP, dans une approche REST, et avec un format de retour AtomPub dans la plupart des cas, mais qui peut également être JSON. OData peut être vu comme un protocole du même plan que SOAP.

OData pour les administrateurs système

Pour les administrateurs système, un service OData reste simple à mettre en place, car il s’agit dans la majorité des cas d’une simple application web, avec un point d’entrée HTTP sur le port 80, éventuellement du SSL sur le port 443, et dans certains cas une authentification.

OData pour les analystes de données

Pour les analystes de données, OData est un nouveau type de source, au même titre que CSV, Access, SQL Server, Oracle, etc. Pour être plus précis, OData se situerait plutôt au niveau de ODBC, car il s’agit d’un protocole qui peut être le même quel que soit le backend. Du point de vue de la consommation, OData peut être lu dans Excel par un plugin dédié, dans PowerPivot, et de plus en plus dans des clients hors-Microsoft. (Power BI, QlikVew, Self-Service Dashboard, etc.)

OData pour les citoyens

Enfin, et nous finissons par le plus important, le citoyen… OData est particulièrement indiqué pour résoudre le problème d’interopérabilité qui va de plus en plus se poser sur les portails Open Data. Ces sites de mise à disposition de la donnée publique commence à se multiplier, ce qui est une très bonne chose, mais ils restent pour l’instant beaucoup basés sur des données dans des formats peu standardisés, voire carrément propriétaires (beaucoup d’Excel sur http://data.gouv.fr, par exemple), et qui ne rendent pas simples l’exploitation des données.

OData peut répondre à ce besoin en normalisant le protocole d’interrogation et de partage des données, y compris pour la réagrégation entre les différents niveaux d’exposition. Les entités qui exposent ces données publiques en sont souvent les principales consommatrices, et tirent directement avantage de la normalisation. Leur communication avec les strates plus hautes ou plus basses, qui n’utilisent pas nécessairement les mêmes vocabulaires et connaissances, en tireront encore plus de bénéfice.