WS-*

Dave Heinemeier Hanson remet ça ! (après ça )

WSDL, SOAP, Schéma, UDDI, RPC, XML-Sec, WS-Sec … on empile et on ajoute des standards … et on perd l’interoperabilité (qui était déjà flageolante, cf le type date dans la pile .Net, et l’encodage DIME, tellement supérieur^Wdifférent du MIME:/ ), heureusement le comité WS-I va standardiser les standards pour garantir le I de WS-I (l’Interoperabilité, justement) .

Ce post éclaire particulièrement le problème, en plus d’être drôle et simple à lire (même pour un non-techos).

Pourtant la solution existe, et ce depuis plus longtemps que les WS eux-même : le REST (REpresentational State Transfer), qui s’appuie sur les concepts fondamentaux joyeusement piétinés par les comités qui s’occupent des standards Web Services.

Quels sont les outils fondamentaux ?

• HTTP

• Les URI

• XML

HTTP

La RFC 2616, chapitre 9 indique quelles les méthodes supportées par le protocole. Les navigateurs en utilisent deux : GET et POST.

Mais il y en deux autres : DELETE et PUT.

Soit quatres méthodes, POST, GET, PUT, DELETE, que l’on peut mettre en relation avec l’habituel CRUD : Create, Read, Update, Delete ;
ou avec le SQL : INSERT, SELECT, UPDATE, DELETE.

Beaucoup de webservices et (d’applications web en général) sont construites sur le principe du CRUD. Plus ou moins masqué, mais on peut toujours le retrouver.

Donc on a les bases ici. Il nous reste à savoir sur quoi travailler. Pour ça, on a les …

URI

Ca veut dire Universal Resource Identifier ( RFC 2396 ). Avec une URI, on identifie de manière unique une ressource sur le web.
Une URI, c’est ça (par exemple) : http://server/objet/id .
J’identifie de manière unique un object, et dessus j’utilise les méthodes HTTP pour le modifier, le lire, l’effacer.

XML

On continue à utiliser XML, pour l’échange de données. Le REST ne force pas de XML particulier, mais on peut toujours utiliser la DTD ou les schemas pour les échanges de données.

Et maintenant ?

Les navigateurs ne supportent pas le PUT et le DELETE. (J’ai testé sur Safari et Firefox, avec un formulaire avec comme méthode PUT, sans succès, je m’en doutais, mais je voulais être sûr).

Mais l’idée derrière, comme pour les webservices, c’est faire parler les machines avec les machines faire du WEB DEUX POINT ZERO !

C’est l’une nouvelles fonctionnalités de la version 1.2 de Rails. On simplifie la pile, et on redonne le pouvoir aux développeurs.

Pas comme avec les WS. Parce que les WS, sans les générateurs de code ou de WSDL, on est pas sorti de la forêt. Comme le faisait habilement remarquer un rebelle du REST (j’ai plus le lien vers son blog, dès que je le retrouve, je le mets), les concepteurs des WS sont IBM, MS, BEA, ARIBA … Des éditeurs d’outils, qui vendent des outils et des consultants pour les utiliser. Ils vont pas faire un truc trop simple … et même s’ils voulaient, ça doit être dur pour eux de se mettre d’accord.

De la lecture :

%d bloggers like this: