Le mythe d'un Web entièrement connecté dans lequel chaque application Web exploite les services d'autres applications Web est en voie de devenir réalité grâce aux mashups, micro-format et protocoles REST. Mais il demeurera sans doute plus proche du mythe que de la réalité tant qu'un standard de communication entre sites (et entre sites et navigateur) n'aura émergé. Aujourd'hui chaque site Web 2.0 (Netvibes, WebWag, mais aussi eBay, Google, Amazon, Facebook, etc.) propose sa propre syntaxe et sémantique pour exposer données et services. Que le format d'échange soit toujours XML ne suffit évidemment pas à créer un standard : il manque une méthode uniforme d'écriture des requêtes. Quand elle existera et qu'elle sera adoptée en masse, le nombre d'applications Web de type mashup pourrait bien exploser (Web 3.0 ?).
Le projet Astoria va dans ce sens. Issu des labos de Microsoft, propose une façon simple et puissante d'exposer les données d'un site Web à la mode REST. Quelques exemples parlent d'eux-même :
http://myserver/data.svc/Customers[1234]
Retourne le client dont l'identifiant (la clé primaire) est 1234.
http://myserver/data.svc/Customers[1234]/Orders
Retourne la liste des commandes du même client.
http://myserver/data.svc/Customers[1234]/Orders[Active eq true]
Retourne la liste des commandes actives du client susdit.
Et on peut ordonner, filtrer et trier en requêtant le serveur avec des URLs telles que :
http://myserver/data.svc/Customers[1234]/Orders[Active eq true]?$orderby=OrderDate
Les opérations de mise à jour, de création et de suppression sont définies en spécifiant le verbe PUT, POST ou DELETE du protocole http.
Et voici un exemple "live" :
http://astoria.sandbox.live.com/encarta/encarta.rse/Areas[name eq 'Geography']
L'équipe Astoria offre depuis peu aux développeurs un espace de 100Mo et une API Ajax et Silverlight. Et elle est passé du mode incubation au mode production (Cf. le blog de l'équipe http://blogs.msdn.com/astoriateam/default.aspx)
Et Google Base Data API ?
On compare parfois l'approche d'Astoria à celle de Google Base API ou d'Amazon S3 (voir liens ci-dessous). Mais il y a une différence fondamentale. Les services de stockage de Google et d'Amazon sont centrés sur eux-mêmes, ils n'ont d'autre objectif que de servir Google Base et Amazon S3. A l'inverse Astoria peut être téléchargé et installé sur votre site Web pour permettre à d'autres applications clientes (serveur ou RIA) de voir vos services et données d'une façon rationnelle et bien documentée, à défaut d'être standard.
Liens :
Introduction à Astoria (.doc) http://astoria.mslivelabs.com/Overview.doc
Page d'accueil Astoria http://astoria.mslivelabs.com/
Comparaison Google Base API / Astoria : http://www.25hoursaday.com/weblog/2007/07/13/GoogleBaseDataAPIVsAstoriaTwoApproachesToSQLlikeQueriesInARESTfulProtocol.aspx
Les commentaires récents