Les institutions publiques, dans un soucis de décloisonnement, de lisibilité et de transparence de l’action publique, cherchent à rendre leurs données accessibles aux citoyens. Le mouvement Open Data à la base d’innovations sociales et économiques dans la réutilisation des données ainsi libérées se combine bien avec une approche RESTful qui a largement pris le pas sur SOAP en termes de services Web. Dans ce cadre, le protocole ouvert de données OData se fonde sur les standards du Web pour rendre accessible une source de données depuis une très large variété de langages, d’environnements, d’applications, de services et de places de marché. OData précise certains points laissés à la discrétion du développeur de façon à ce qu'on ait une encore meilleure cohérence au moins sur la plateforme Microsoft. Cette session montre, dans le cadre du mouvement Open Data, comment OData peut être concrètement mis en œuvre, entre autres sur la plateforme Windows Azure.
2. Publication des données publiques (Open
Data), WCF Data Services, OData
Code Session : ARC202
Philippe BERAUD Sébastien PERTUS
Sébastien BRASSEUR MVP SQL Server
Direction Technique et Sécurité BEWISE
Microsoft France
http://blogs.msdn.com/ogdifrance
3. Objectifs de la session
Comprendre les points techniques clés pour rentrer de
plein pied dans le mouvement Open Data
Présenter le protocole ouvert OData (Open Data
Protocol), ses principes, ses usages et son large
écosystème
Aborder WCF Data Services, l’implémentation Microsoft
du protocole OData
4. Open Data
Ou la donnée publique accessible librement par tout le monde, de
façon standard, compréhensible et consommable
1
5. Données ouvertes
Caractéristiques essentielles selon l’Open Government
Data
1. Complètes
2. Primaires
3. Opportunes
4. Accessibles
5. Exploitables
6. Non discriminatoires
7. Non propriétaires
8. Libres de droits
6. Libération des données, mais pourquoi faire
?
Action politique (transparence, participation, collaboration)
Enrichir les analyses et les études
Opportunités commerciales
Développer de nouveaux produits/services innovants
Notoriété, image, différenciation
7. Libération des données, mais pour qui ?
Entreprises et startups
Citoyens
Scientifiques
(Data)Journalistes
Développeurs
8. Libération des données, mais lesquelles ?
Toutes les données produites ou reçues par un acteur
public dans l’exercice de ses missions de service public
ont vocation à être réutilisable à l’exception :
Des données nominatives
Des données personnelles
Des donnés sensibles comme celles susceptibles de porter
atteinte à la sécurité publique
Des données de tiers
Un travail nécessaire avant la libération des données
Fichiers, Bases de données (relationnelles), Flux métier
9. Open Data en 3 étapes
1 2 3
Trier les données Créer un Créer des applications
et créer des flux catalogue Open à partir du catalogue
de données Data
10. Comment publier les données ?
Publication de fichiers "plats" en téléchargement
Quelques exemples de formats ouverts et/ou complètement
documentés
Ex. XML, CSV, DAISY, KML/KMZ, DWG, ECW, KML, SHP, XLS,
RTF, etc.
Trop contraignants pour les utilisateurs et développeurs
Publier des API pour consommer directement les données
Bonne idée sur la base des approches SOAP ou de REST…
…Mais problèmes d’unification
Potentiellement autant d’API que de jeux de données
Utiliser un protocole fondé sur les standards du Web
comme OData
Un seul langage et même format quelles que soient les données
11. Libérer les données intelligemment
Données brutes = données indigestes et illisibles pour les
citoyens
Données géographiques par exemple
Nécessité de développer des applications pour "mettre en
scène" et/ou "mettre en action" les données
Galerie des usages et des applications
12. Créer des applications à partir du catalogue
Nécessité de mettre à disposition/publication des
applications sur les différentes places de marché pour en
faire bénéficier au quotidien le plus grand nombre de
citoyens
Besoin de s’intégrer dans le SoLoMo !
Convergence entre réseaux sociaux, géolocalisation et nouveaux
usages du mobile
13. Libérer les données intelligemment
Accompagnement des premiers lâchés de données pour
l’émergence de scénarii et services réellement innovants
Orientation, stimulation, valorisation des concours de développeurs,
des ateliers créatifs (barcamps, coding parties, etc.), etc.
Création d’un écosystème Open Data !
Nécessité d’amorcer le mouvement et de créer la dynamique
Illustration par l’usage (par ex. PowerPivot)
Mise à disposition d’applications exemples sous licence libre
(par ex. Open Intelligence)
Mise à disposition de Frameworks applicatifs sous licence libre
(par ex. Open Data Application Framework)
14. OData (Open Data Protocol)
Un protocole Web pour requêter, exposer et mettre à jour des
données de façon interopérable
2
16. Quid d’une approche commune d’accès à
l‘information via des services ?
Un film est une ressource qui prend en charge :
Des requêtes sur les propriétés, par ex. Movies where rating = 5
La navigation sur les relations, par ex. Movies->Actors
La pagination et le tri par le biais de résultats, par ex. Skip 20,
Take 10, orderby Name
Les opérations CRUD (Create, Read, Update, Delete)
17. Approche OData HTTP
Interopérabilité (dispositifs et plateformes
Métadonnées
Formats (ATOM et JSON)
Sémantique(GET/PUT/POST/DELETE)
GET ~/Movies(6)
JSON Conventions Uri et Langage de requête
POST ~/UserRatings
JSON
DELETE ~/UserRatings(5)
ATOM
PUT ~/Customers(4)
JSON
Service
HTTP
OData GET ~/Movies?$filter=Rating eq 5
GET ~/Movies(4)/Actors
Métadonnées
19. Antisèche OData ! ;-)
Syntaxe des options Limitation de la bande
$count passante utilisée
$select, $filter, $top, $skip,
$expand
$count
$filter Utilisation de la
$format compression standard
HTTP
$orderby
Limitation des allers-
$skip
retours
$top $expand
20. En quoi OData est-il ouvert et interopérable
?
Fondé sur les standards du Web
Pour une approche RESTful
Spécification du protocole publiée sous licence OSP (Open
Specification Promise)
Avec des fonctionnalités très simples donc faciles à implémenter
quel que soit l’environnement, plateforme ou dispositif ciblé
Service de validation OData (Outercurve Foundation)
Implémentée par un vaste écosystème (producteurs et
consommateurs)
Avec de très nombreuses implémentations disponibles sous license
libre sur un vaste ensemble d’environnements, de
plateformes/dispositifs/, de langages
21. OData : perspectives et évolutions
Version courante v2
OData v3 en cours de finalisation
Sémantique
Vocabulaires
Modèles riche et interaction
Support des opérateurs Any et All, propriétés complexes,
actions
Mobilité
Format JSON simplifié, types géo-spatiaux et requêtes
spatiales, données hors ligne
Extensibilité
Cf. session "OData Futures: Building the Web of Data"
26. Pourquoi adopter OData aujourd’hui ?
Entreprise
Réduction de l’effet « silo de données »
Plus largement utilisable que des interfaces personnalisées (mêmes RESTful)
Web / Editeurs
Stratégie commune pour exposer une API cohérente à travers un large ensemble
d'actifs
Simplicité et prise en charge client (applications LOB, clients BI, mobiles)
Editeurs de données
Moyen plus efficace d'exposer des données à un très large ensemble de clients
Général
API exploitable par tout langage disposant d’une pile HTTP et d’un parser XML JSON :
.NET, Java, JavaScript, PHP, Ruby, etc.
API qui fonctionne bien avec tous les mobiles : iOS, Android, Windows Phone 7, etc.
27. WCF Data Services
L’implémentation Microsoft du protocole ouvert OData
3
28. WCF Data Services
Vous avez entendu parler de…
Astoria
ADO.NET Data Services
Aujourd’hui, le nom définitif c’est…
WCF Data Services
29. WCF Data Services
OData, c’est…
…Une spécification d’un modèle de données exposé sur le Web
et consommable par des messages simples HTTP
WCF Data Services, c’est….
…Un SDK et l’implémentation de la spécification OData par
Microsoft
pour .NET
30. WCF Data Services
WCF Data Services
Business Logic/Authentication/Authorization
Entity Framework Provider Reflection Provider Custom Providers
Entity Framework .NET Types + IQueryable
Interfaçage avec n’importe quelle source de donnée locale ou distante (via
l’implémentation d’IEnumerable ou d’IQueryable
31. WCF Data Services
La CTP d’octobre supporte la spécification V3 d’OData
Nouveautés
Support Spatial
Vocabulaires
Actions
33. En guise de conclusion
OData est un protocole ouvert facile à utiliser et à mettre
en œuvre quel que soit son environnement
Que ce soit du coté producteur ou du côté consommateur
OData présente de nombreux intérêts dans le cadre du
mouvement Open Data
Venez découvrir les kits prêts à l’usage sous licence libre
proposés par Microsoft pour rentrer de plein pied dans
l’Open Data
Session INT203 aujourd’hui de 14h30 à 15h30
34. Des ressources Windows Azure gratuites
Testez Windows Azure Abonnés MSDN, vous
gratuitement pendant 90 bénéficiez de Windows
jours Azure
http://aka.ms/ http://aka.ms/
tester-azure-90j activer-azure-msdn
35. Pour aller plus loin
Chaque semaine, les DevCamps Prochaines sessions des Dev
ALM, Azure, Windows Phone, HTML5, Camps
10 février
2012
Live Meeting
Open Data - Développer des applications riches avec le protocole Open
Data
OpenData 16 février
2012
Live Meeting
Azure series - Développer des applications sociales sur la plateforme
Windows Azure
http://msdn.microsoft.com/fr- 17 février
2012
Live Meeting Comprendre le canvas avec Galactic et la librairie three.js
fr/devcamp 21 février
2012
Live Meeting La production automatisée de code avec CodeFluent Entities
2 mars Comprendre et mettre en oeuvre le toolkit Azure pour Windows Phone 7,
Live Meeting
2012 iOS et Android
6 mars
Live Meeting Nuget et ALM
Téléchargement, ressources et 2012
9 mars
Live Meeting Kinect - Bien gérer la vie de son capteur
toolkits : RdV sur MSDN 2012
13 mars
Live Meeting Sharepoint series - Automatisation des tests
2012
http://msdn.microsoft.com/fr-fr/ 14 mars
2012
Live Meeting
TFS Health Check - vérifier la bonne santé de votre plateforme de
développement
15 mars Azure series - Développer pour les téléphones, les tablettes et le cloud
Live Meeting
2012 avec Visual Studio 2010
16 mars Applications METRO design - Désossage en règle d'un template METRO
Les offres à connaître 2012
20 mars
Live Meeting
javascript
Retour d'expérience LightSwitch, Optimisation de l'accès aux données,
Live Meeting
90 jours d’essai gratuit de Windows 2012
23 mars
Intégration Silverlight
Live Meeting OAuth - la clé de l'utilisation des réseaux sociaux dans votre application
Azure www.windowsazure.fr 2012
Jusqu’à 35% de réduction sur Visual
36. Pour aller plus loin sur OData
Portail dédié au protocole OData
http://www.odata.org
Portail MSDN dédié
http://msdn.microsoft.com/odata
Channel 9
http://channel9.msdn.com/Tags/odata
Contenu dédié à la pile des technologies Web de
Microsoft
http://trainingkit.webcamps.ms/OData.htm
37. Pour aller plus loin sur WCF Data
Services
Portail MSDN dédié
http://msdn.microsoft.com/fr-fr/library/cc668792.aspx
Weblog de l’équipe produit
http://blogs.msdn.com/b/astoriateam/
Forum WCF Data Services
http://social.msdn.microsoft.com/Forums/en-
US/adodotnetdataservices/threads
Open Source OData Library for Objective-C Project Moves to Outercurve Foundation (http://blogs.technet.com/b/port25/archive/2011/12/20/open-source-odata-library-for-objective-c-project-moves-to-outercurve-foundation.aspx)