Upload
microsoft-ideas
View
810
Download
0
Embed Size (px)
DESCRIPTION
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.
Citation preview
palais des congrès Paris
7, 8 et 9 février 2012
Publication des données publiques (Open Data), WCF Data Services, OData
Philippe BERAUDSébastien BRASSEURDirection Technique et SécuritéMicrosoft France
Code Session : ARC202
http://blogs.msdn.com/ogdifrance
Sébastien PERTUSMVP SQL ServerBEWISE
Comprendre les points techniques clés pour rentrer de plein pied dans le mouvement Open DataPrésenter le protocole ouvert OData (Open Data Protocol), ses principes, ses usages et son large écosystèmeAborder WCF Data Services, l’implémentation Microsoft du protocole OData
Objectifs de la session
Open Data
1Ou la donnée publique accessible librement par tout le monde, de façon standard, compréhensible et consommable
http://fr.wikipedia.org/wiki/Open_data
Une donnée ouverte ((en) open data) est une information publique brute, qui a vocation à être librement accessible.
Caractéristiques essentielles selon l’Open Government Data1. Complètes2. Primaires3. Opportunes4. Accessibles5. Exploitables6. Non discriminatoires7. Non propriétaires8. Libres de droits
Données ouvertes
Action politique (transparence, participation, collaboration)Enrichir les analyses et les étudesOpportunités commercialesDévelopper de nouveaux produits/services innovantsNotoriété, image, différenciation
Libération des données, mais pourquoi faire ?
Entreprises et startupsCitoyensScientifiques(Data)JournalistesDéveloppeurs
Libération des données, mais pour qui ?
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
Libération des données, mais lesquelles ?
Open Data en 3 étapes
Trier les données et
créer des flux de données
Créer un catalogue Open Data
Créer des applications à partir
du catalogue
1 2 3
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
Comment publier les données ?
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
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 citoyensBesoin de s’intégrer dans le SoLoMo !
Convergence entre réseaux sociaux, géolocalisation et nouveaux usages du mobile
Créer des applications à partir du cataloguePrévisions de ventes de Smartphones en France en 2011 : 11,8 Millions d’unités
(7,7 Millions en 2010). 300 Millions de Smartphones vendus dans le monde en 2010 (hausse de 72,1% par rapport à 2009)78% des internautes français sont inscrits sur au moins un réseau social (octobre 2010 ). Il y a 38 Millions d’internautes en France
Sources : Gartner et IFOP
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)
Libérer les données intelligemment
OData (Open Data Protocol)
2Un protocole Web pour requêter, exposer et mettre à jour des données de façon interopérable
http://www.odata.org
Approche traditionnelle d’une API Web
GetMovies(rating)
GetMovies(rating, skip, take, orderby)
GetMovies(rating, skip, take)
GetMovies(genre, skip, take, orderby)
GetMovies(yearFilmed, skip, take, orderby)
GetMovies(genre, rating)
GetFormats(movieId)GetActors(movieId, roleType)
GetActors(movieId)
GetActors(movieId, releaseYear)
GetUserRatings(movieId)
GetMovies(rating, genre, skip, take, orderby)
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)
Quid d’une approche commune d’accès à l‘information via des services ?
Approche OData
Service OData
Métadonnées
HTTP
JSON
ATOM
JSON
JSON
GET ~/Movies(6)
POST ~/UserRatings
DELETE ~/UserRatings(5)
PUT ~/Customers(4)
GET ~/Movies(4)/Actors
GET ~/Movies?$filter=Rating eq 5
HTTPInteropérabilité (dispositifs et plateformes)MétadonnéesFormats (ATOM et JSON)Sémantique(GET/PUT/POST/DELETE) Conventions Uri et Langage de requête
DEMO
OData en action…avec Netflix
Antisèche OData ! ;-)
Syntaxe des options Limitation de la bande passante utilisée
$select, $filter, $top, $skip, $count
Utilisation de la compression standard HTTP
Limitation des allers-retours
$expand
$count
$expand
$filter
$format
$orderby
$skip
$top
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
En quoi OData est-il ouvert et interopérable ?
Version courante v2OData 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"
OData : perspectives et évolutions
Utilisation d’OData par Microsoft
Adoption d’OData par l’industrie
Applications Excel 2010 PowerPivot Excel DataScope (Microsoft Research), codename "Data Explorer"
(SQL Azure Labs), Power View for SQL Server 2012 LINQPad, OData Explorer, OData Sesame, Tableau
SDKs/Bibliothèques – génération de proxies en langage natif
.NET 3.5 SP1/4.0 : System.Data.Services HTML5/Web Mobile (JavaScript) : Datajs Java : Restlet, Odata4j, Google-gson Objective-C : OData Client For Objective-C PHP : ODataPHP, ODataDrupal, Extension OData for Joomla! Ruby : ruby_odata
Consommateurs OData
…Plus sur http://odata.org/consumers
DEMO
Netflix avec Pivot Silverlight 5 et Sesame
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.
Pourquoi adopter OData aujourd’hui ?
WCF Data Services
3L’implémentation Microsoft du protocole ouvert OData
Vous avez entendu parler de… Astoria ADO.NET Data Services
Aujourd’hui, le nom définitif c’est… WCF Data Services
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
WCF Data Services
Interfaçage avec n’importe quelle source de donnée locale ou distante (via l’implémentation d’IEnumerable ou d’IQueryable
WCF Data Services
WCF Data Services
Business Logic/Authentication/Authorization
Entity Framework Provider
HTTP
Reflection Provider Custom Providers
Entity Framework .NET Types + IQueryable
La CTP d’octobre supporte la spécification V3 d’OData
Nouveautés Support Spatial Vocabulaires Actions
WCF Data Services
DEMO
Nouveautés de la CTP d’octobre
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 DataVenez 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
En guise de conclusion
Des ressources Windows Azure gratuites
Testez Windows Azure gratuitement pendant 90 jours
http://aka.ms/tester-azure-90j
Abonnés MSDN, vous bénéficiez de Windows Azure
http://aka.ms/activer-azure-msdn
Chaque semaine, les DevCampsALM, Azure, Windows Phone, HTML5, OpenData
http://msdn.microsoft.com/fr-fr/devcamp
Téléchargement, ressources et toolkits : RdV sur MSDN
http://msdn.microsoft.com/fr-fr/
Les offres à connaître 90 jours d’essai gratuit de Windows Azure
www.windowsazure.fr
Jusqu’à 35% de réduction sur Visual Studio Pro, avec l’abonnement MSDN www.visualstudio.fr
Pour aller plus loin
10 février 2012
Live Meeting
Open Data - Développer des applications riches avec le protocole Open Data
16 février 2012
Live Meeting
Azure series - Développer des applications sociales sur la plateforme Windows Azure
17 février 2012
Live Meeting Comprendre le canvas avec Galactic et la librairie three.js
21 février 2012
Live Meeting La production automatisée de code avec CodeFluent Entities
2 mars 2012
Live Meeting
Comprendre et mettre en oeuvre le toolkit Azure pour Windows Phone 7, iOS et Android
6 mars 2012
Live Meeting Nuget et ALM
9 mars 2012
Live Meeting Kinect - Bien gérer la vie de son capteur
13 mars 2012
Live Meeting Sharepoint series - Automatisation des tests
14 mars 2012
Live Meeting
TFS Health Check - vérifier la bonne santé de votre plateforme de développement
15 mars 2012
Live Meeting
Azure series - Développer pour les téléphones, les tablettes et le cloud avec Visual Studio 2010
16 mars 2012
Live Meeting
Applications METRO design - Désossage en règle d'un template METRO javascript
20 mars 2012
Live Meeting
Retour d'expérience LightSwitch, Optimisation de l'accès aux données, Intégration Silverlight
23 mars 2012
Live Meeting
OAuth - la clé de l'utilisation des réseaux sociaux dans votre application
Prochaines sessions des Dev Camps
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
Pour aller plus loin sur OData
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
Pour aller plus loin sur WCF Data Services
Microsoft France39, quai du président Roosevelt
92130 Issy-Les-Moulineaux
www.microsoft.com/france