PRESTO, GlassFish et NetBeans (WS-\*)



J'ai passé une partie de l'été dernier à travailler sur un protoype pour la DGME d'implémentation de la spécification PRESTO ("PRotocole d’Echanges Standard et Ouvert" documenté ici). L'objectif de cette spécification est de définir un profil (à la mode WS-I) définissant un protocole basé sur des Web Services pour fournir un meilleur standard d'intéropérabilité appliqué aux communications entre ministères, collectivités locales et autres associations. En quelques mots techniques il s'agit de WS-I Basic Profile, SOAP 1.2, MTOM, WS-Addressing, WS-ReliableMessaging et de manière optionnelle OASIS WS-Security.

La liste des participants et des technologies était (est) particulièrement intéressante :

- Bull avec Apache Axis 2 intégré à JOnAS
- Zend avec la technologie Tungsten dérivée de Axis 2 en C et fournie par son partenaire WSO2 sous forme de plugin PHP
- Axway avec le serveur Web Services SSJ de Systinet/Mercury/HP
- Microsoft avec .Net 3.0 (WCF).
- Sun avec Java EE 5 (GlassFish)

Les détails sur le prototype réalisé par Sun, les technologies et les éléments différentiateurs sont tous décrits ici (en résumé: open source, outillé et une programmation affreusement simple). Toutes les briques nécessaires sont désormais dans GlassFish (à partir des builds récents de la version 2) et seront supportées dans Sun Application Server 9.1.

Parmi les absents de marque on compte IBM, Oracle, JBoss et BEA pour des raisons diverses mais surtout parce que leurs implémentations ne sont pas encore prêtes. De manière assez ironique, IBM réclame la paternité de PRESTO du fait de sa spécification WS-RAMP (elle même dérivée d'un travail de deux de leurs clients) sans pour autant pouvoir monter une implémentation. WS-RAMP semble bien positionné pour servir de base de travail pour un futur profil du WS-I qui, à terme, pourrait annuler et remplacer PRESTO.

Coté WSO2, le participant était Paul Fremantle qui est par ailleurs le patron technique du comité de standardisation de OASIS WS-ReliableMessaging et un commiter Axis 2. Paul a déjà mentionné PRESTO ici.

Le prototype consistait à travailler à partir d'une définition partagée par tous en WSDL d'opérations avec ou sans réponse en mode document/literal et à tester les différentes combinaisons (avec ou sans MTOM, WS-ReliableMessaging) entre les différents implémentations. Se mettre d'accord sur le contenu de ce contrat WSDL n'a pas été si simple et beaucoup auront découvert au passage la signification d'un style doc/lit wrapped (même si cette convention n'est pas vraiment documentée).

Les résultats sont encourageants mais pas encore parfaits si bien que le travaille de prototypage et de spécification PRESTO continue à ce jour. Les meilleurs résultats sont obtenus avec la combinaison Sun/GlassFish + Microsoft/WCF (100% des tests) ce qui démontre l'intérêt d'un travail en amont des équipe d'engineering entre Sun et Microsoft dans le cadre du projet Tango. Pour Microsoft comme pour les interactions avec les autres implémentations, je vous recommande le tunnel NetTool qui s'avère très agréable, même si du XML restera toujours du XML : difficile à lire, infernal à déboguer.

L'écriture du prototype a été pour moi simplement d'utiliser JAX-WS 2.0 (et son sous-système de binding JAXB 2.0), de comprendre l'extension GlassFish WSIT (en partie grâce à son excellent didacticiel) et d'utiliser l'extension WSIT de NetBeans qui permet de manière déclarative de spécifier la propriétés MTOM, WS-ReliableMessaging et WS-Security. L'écriture d'un client Swing suffisamment flexible a été agréable, mais plus encore l'écriture de l'extension, toujours en Swing, à  la suite OpenOffice.

PRESTO a suscité un réel intérêt dès sa première présentation publique le mois dernier au ministère de finances, à la fois auprès des 130 participants, des collectivités locales, des intégrateurs et des représentants d'autres pays européens. Le protocole de transport PRESTO répond clairement à une demande.

Comments:

Post a Comment:
Comments are closed for this entry.
About

This blog has moved

Alexis Moussine-Pouchkine's Weblog

GlassFish - Stay Connected

Search

Archives
« avril 2014
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
    
       
Today
Blogroll

No bookmarks in folder

News

No bookmarks in folder