A l'occasion du numéro 13 de l'Architecture Journal - Software + Services, Pablo Castro, responsable de ADO.Net Entity Framework au sein de l'équipe SQL Serveur, présente le projet Astoria, à savoir, la problématique d'architecture reconnue sous le terme Web Data Services voir d'une façon plus large des Data Access Services.

 

A l'origine du projet au nom de code "Astoria", il y a la montée en puissance des architectures AJAX et d'une façon générale le besoin croissant d'accéder à des données à travers le Web, sans avoir recours systématiquement à des applications Web, ni des Services Web.

 

 

Les clients Riches qu'ils soient Desktop RDA (.Net, WinForms, WPF) ou bien Internet RIA (ASP.Net AJAX ou SilverLight) nécessitent cette interactivité avec les données. Par ailleurs, les réflexions du Web 2.0 qui placent les utilisateurs au cœur du logiciel vont aussi dans le sens d'un accès direct, natif aux données depuis des canaux Web.

 

Le projet Astoria est un framework d'exposition d'un modèle de données au travers d'URI, respectant la philosophie REST. En effet, le pouvoir d'expression de l'URI ainsi que les ordres GET, POST, PUT, DELETE suffisent �� requêter une source de données. Illustration avec 3 requêtes :

  • http://astoria.sandbox.live.com/northwind/northwind.rse/Customers : retourne la liste des clients
  • http://astoria.sandbox.live.com/northwind/northwind.rse/Customers[ALFKI]/Orders : retourne les commandes associées au client "ALFKI"
  • http://astoria.sandbox.live.com/northwind/northwind.rse/Customers[City eq ‘London’]$orderby=ContactName : retour la liste des clients situés sur Londres, ordonnée selon leur nom de famille

Le framework Astoria propose de formatter les données en XML ou en JSON, et une bibliothèque cliente est proposée pour mapper automatiquement ces données sous forme d'objet .Net : pour faciliter la vie du développeur dans le cas d' un client riche .Net Desktop (WPF ou WinForms) ou bien d'un client Internet (SilverLight).

 

Dans le cas d'écriture (ordre HTTP POST/PUT/DELETE), le framework Astoria propose de déléguer l'exécution de la logique métier au travers d'intercepteurs. De plus, pour aller au délà des sources de données relationnelles, le framework Astoria peut s'interfacer à tout Objet implémentant l'interface IQueryable de Linq.

 

Enfin, Pablo aborde la problématique de la sécurité, en constatant que dans le cas d'une interface gérée directement par des utilisateurs, la sécurité devra nécessairement passer par une mécanique de fédération d'identité dans la mesure où l'identité de l'utilisateur doit être transmise au Data Access Services qui peut ensuite accéder aux données (possédées par l'utilisateur dans la plupart des cas !).

Pour suivre les travaux de l'équipe, s'abonner au flux....

 

Quatre Web Data Services sont proposés en ligne pour vous permettre de tester la consommation (Northwind, AdventureWorks, Encarta, TagSpaces), et vous pouvez demander à l'équipe Astoria d'héberger pour 100 Mo de données.

 

Remarque : Si vous avez besoin d'exposer des données en REST et/ou au format JSON, vous pouvez aussi recourir aux technolologies ASP.Net AJAX 2.0, et de façon plus flexible, au framework WCF en version 3.5.