XXP

mai 2016

lun. mar. mer. jeu. ven. sam. dim.
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

« Astoria : vers le Web 3.0 ? | Accueil | Astoria : vers le Web 3.0 ? »

29 août 2007

Astoria : vers le Web 3.0 ?

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

TrackBack

URL TrackBack de cette note:
https://www.typepad.com/services/trackback/6a00d8341c871f53ef00e54ee78aa18834

Listed below are links to weblogs that reference Astoria : vers le Web 3.0 ?:

Commentaires

Je voulais juste signaler que le protocole HTTP ne définit que 2 méthodes: GET et POST.
"The method of an HTML form is limited to GET and POST. PUT and DELETE are not allowed. This isn’t some failure of browser vendors to properly implement the specification either. The HTML specification only allows GET and POST as form actions. XHTML and even XForms 1.0 don’t change this. This means it’s impossible to build a fully RESTful client application inside a web browser. Consequently everyone tunnels everything through POST, and simply ignores PUT and DELETE”


voir:
-http://www.w3.org/TR/html4/interact/forms.html#adef-method
- http://pvergain.wordpress.com/2007/07/17/une-application-web-django-get/
- http://cafe.elharo.com/web/why-rest-failed/

Patrick, vu le sous-titre de ce blog je ne pouvais laisser ton commentaire sans ergoter :-)
Le protocole HTTP définit les méthodes GET, POST, HEAD, DELETE, PUT, TRACE, CONNECT et OPTION. En revanche tu as raison les formulaires HTML ne permettent d'exploiter que POST et GET.

Le truc c'est d'utiliser depuis Javascript l'objet standardisé XmlHttpRequest qui autorise la plupart des méthodes HTTP (http://www.w3.org/TR/XMLHttpRequest/).

XmlHttpRequest est à la base d'Ajax et des applications REST, qui se portent plutôt bien (API Netvibes, Facebook, Amazon, Paypal...) contrairement à ce qu'indiquent les liens que tu cites.

L'utilisation des commentaires est désactivée pour cette note.