Le protocole ouvert de données OData (Open Data Protocol) facilite l'accès aux données (ouvertes) et leur modification au moyen de verbes HTTP standard. En permettant la création aisée de services orientés vers les données (ouvertes) comme avec le kit de démarrage OGDI, le protocole OData fournit un moyen de déverrouiller vos données et les exempte des silos qui existent aujourd'hui dans les applications.

Les spécifications du protocole OData sont ouvertes, publiques et libres d’implémentation. Ces dernières sont en effet publiées sous 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. 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 spécifications ainsi que précisé dans l’OSP.

L’adoption croissante d’OData par l’industrie et l’écosystème résultant tant en termes de producteurs que de clients consommateur rend son utilisation possible dans virtuellement tous les langages, plateformes et environnements.

Si vous êtes un fidèle de ce blog, vous connaissez déjà tout cela et, nous l’espérons, tirez d’ores et déjà bénéfice de ce protocole dans vos projets. Pour les autres, une vue d’ensemble du protocole est disponible ici.

L’objet de ce billet consiste à introduire comme son titre l’indique la version préliminaire des spécifications de la version 3 du protocole OData (aujourd’hui en version 2 stable).

Celles-ci sont désormais disponibles en téléchargement :

Cette version 3 du protocole en cours de finalisation amène la prise en charge d’un certain nombre de fonctionnalités attendues en termes de sémantique, de modèles riches et d’interaction, de mobilité et d’extensibilité comme notamment abordé lors des derniers Microsoft TechDays 2012 avec la session ARC202 Publication des données publiques (Open Data), OData et WCF Data Services.

On peut ainsi citer les fonctionnalités suivantes :

  • Les actions qui étendent l'ensemble des opérations qui peuvent être effectuées sur ou avec un service ou une ressource. Les actions offrent un moyen d'injecter des comportements au sein d’un modèle centré sur les données (tout en restant fidèle aux fondements d’OData) et peuvent être ainsi utilisées pour étendre les opérations CUD (Create, Update, Delete), invoquer des opérations personnalisées, etc. ;
  • Les vocabulaires qui correspondent à des espaces de noms contenant des termes. Un terme est une extension de métadonnées nommée pour une source de données comme un service OData. Un terme peut éventuellement avoir une valeur unique, ou une collection de propriétés nommées.
  • Les données géo-spatiales et les requêtes spatiales qui permettent aux consommateurs de données d’effectuer des opérations sur des valeurs spatiales dans les clauses orderby, select et orderby. Les primitives spatiales permettent aux auteurs de service d’indiquer, par exemple, que la propriété est un point, une ligne ou un polygone. Ces primitives respectent le standard Simple Features OGC. Des actions peuvent être utilisées pour étendre les opérations associées à ces primitives. La communauté peut développer des vocabulaires pour décrire des catégories communes d’opérations avancées et indiquer celles que prend en charge un service donné.
  • Les collections de primitive ou de types complexes. Ceci permet de modéliser plus facilement certaines choses ;
  • Le support d’un format JSON simplifiée ;
  • Any et All comme opérateurs ;
  • Etc.

Si vous souhaitez vous joindre à la Communauté OData et vous investir dans les travaux sur la version V3 de la spécification OData, vous pouvez consulter les documents afférents au protocole sur GitHub.

L’outil de validation de service OData a été mis à jour pour prendre en charge les services OData v3.

image

Bonne nouvelle : vous pouvez d’ores et déjà concevoir (ou consommer) de tels services de données conformes à la version 3 du protocole OData avec les services WCF Data Services 5.0 for OData v3 qui proposent pour cela des bibliothèques de serveur et clientes .NET Framework, ainsi que les bibliothèques clientes Silverlight.

Cette version de WCF Data Services inclut en outre les bibliothèques ODataLib et EDMLib pour une sérialisation et une désérialisation de niveau inférieur souples et conformes aux spécifications OData et EDM. La documentation associée est disponible ici.

Bonne découverte de la v3 d’OData !