1087
Libero Maesano Christian Bernard Xavier Le Galles Services Web avec J2EE et .NET Conception et implémentations

Services web avec j2 ee

Embed Size (px)

Citation preview

  • Services Web

    L i b e r o M a e s a n o

    C h r i s t i a n B e r n a r d

    X a v i e r L e G a l l e s

    www.editions-eyrolles.com

    Pour faire interagir de manire fiable, souple, scurise et transactionnelle, des applicationshtrognes au sein darchitectures orientes services, il faut intgrer les notions de contrat,de processus et de conversation mtier, mais aussi matriser les environnements dexcu-tion en vitant les drives propritaires qui rduisent linteroprabilit.

    Une rfrence pour les dveloppeurs accompagne dtudes de casCet ouvrage avant tout destin aux dveloppeurs et aux architectes explique la mise en uvre darchitectures rpar-ties sur des plates-formes htrognes et mixtes, aussi bien ct serveur (J2EE, .NET) que sur le poste de travail(Internet Explorer, Mozilla, Flash, Microsoft Excel XP), en mettant laccent sur la description des processusmtier avec BPEL.

    Les techniques dinfrastructure ayant trait la scurit, la fiabilit et aux transactions telles que WS-Security,WS-Transaction, WS-Coordination, sont prsentes en dtail, non sans un rappel approfondi des normes fonda-trices (SOAP 1.1 et 1.2, WSDL et UDDI), de leurs dernires implmentations et des recommandationsdinteroprabilit WS-I.

    Au sommaireLARCHITECTURE ORIENTE SERVICES Le contrat de service La qualit de service. Fiabilit, disponibilit, continuit, performances, scurit et gestion transactionnelle Les architectures dynamiques. Agrgation etdissmination de services. Niveaux de configuration dynamique. Ngociation TECHNOLOGIES DES SERVICES WEB Protocoles Internet (URI, URN, URL, MIME, HTTP/1.1, SMTP, SSL, TLS). Technologies XML (XML, XMLNamespaces, XLink, XML Base, XPath, XML Schema, DOM) changer avec un service en SOAP. SOAP 1.1et 1.2. Structure du message. Gestion des erreurs. Mcanismes de codage : usage littral, usage cod. Picesjointes. Styles dchange : unidirectionnel, requte/rponse, RPC, document, synchrone, asynchrone Dcrire unservice avec WSDL. Liaisons SOAP, HTTP GET/POST, MIME Dcouvrir et publier un service avec UDDI 1.0 et2.0. Structure dun annuaire UDDI. API de dcouverte et de publication. Correspondance WSDL/UDDI.Implmentations : annuaire public rpliqu (UBR), annuaires privs. UDDI 3.0 PLATES-FORMES OPRATIONNELLES WSDL comme pivot. Transformer un composant en service (MS SOAP Toolkit, Cape Clear CapeStudio). Gnrerdes proxy-services (MS .NET Framework, IBM Web Services Toolkit), squelettes de service (Cape ClearCapeStudio), clients de test (Cape Clear CapeStudio, WebService Browser) Plates-formes Java. Apache SOAP4J, Xerces, Tomcat, Axis (implmentation de rfrence). IBM WebSphere. Sun ONE. BEA WebLogic, mais aussiGlue, CapeConnect, Systinet WASP, Collaxa Plate-forme .NET. WSE. Framework .NET. ASP .NET. WebForms. Visual Studio .NET Implmentations sur le poste de travail. Behavior Internet Explorer. Ecmascript avecMozilla. Office XP en client SOAP. Macromedia Flash. Le dfi de linteroprabilit. Tests SOAP, UDDI et WSDL.Le consortium WS-I INFRASTRUCTURE DES SERVICES WEB Fiabilit des changes : HTTPR, WS-Reliability Gestion de la scurit : XML Encryption. XML Signature. WS-Security. Exemple avec X.509 Gestion des transactions : WS-Coordination, WS-Transaction, BTP Gestion des processus mtier en BPEL, WSCI TUDEDE CAS Agence de voyage. Implmentation client en IE. Architecture statique : Implmentation en Java.Architecture dynamique (UDDI). Implmentation Java Implmentation mixte Java/.NET Architecture en pro-cessus mtier : orchestration de services en BPEL.

    qui sadresse cet ouvrage ? Aux dveloppeurs dapplications, en particulier ceux qui utilisent les environnements J2EE et .NET. Aux architectes des systmes dinformation, tents par les architectures orientes services (AOS). Aux dcideurs, consultants, chefs de projets et spcialistes de lintgration, qui ont besoin dtendre leur capacit

    dintervention vers lurbanisation et louverture du SI de lentreprise. Aux tudiants des coles dingnieurs et universitaires, qui recherchent une rfrence sur larchitecture oriente

    services et les technologies de services Web.

    Libero Maesano a plus de 25ans dexprience professionnelle en informatique. Ses travaux en recherche et developpementsur les systmes dexploitation,les systmes transactionnels, lacompilation, les langages objets,les systmes intelligents, lontconduit vers la direction degrands projets de systmes degestion rpartis.

    Christian Bernard est spcialisdans larchitecture et ledveloppement de systmesdinformation. Expert depuis plus de 10 ans dans lesenvironnements orients objet base de machines virtuelles(Smalltalk, Java et plusrcemment C# et J#), il sestspcialis sur les technologiesdrives dXML.

    Xavier Le Galles est expert dansles technologies Microsoft etdirige la socit Andeol, leaderdans la conception et ledveloppement de systmesdinformations pour les forces devente dans le domaine de lagrande distribution.

    L.

    Ma

    es

    an

    o

    C.

    Bern

    ard

    X.

    Le G

    all

    es

    Conc

    eptio

    n:

    Nor

    d Co

    mpo

    ServicesWeb

    avec J2EE et .NETConception et implmentations

    Ser

    vice

    s W

    ebav

    ec J

    2EE

    et.

    NET

    Poursuivez votre lecture sur le Web tlchargez le code source des exemples et tudes de cas ; tlchargez le glossaire et les mises jour.@

    11067_Web_J2EE_XP 8/07/03 9:34 Page 1

  • CHEZ LE MME DITEUR

    Ouvrages sur XML

    A. MICHARD. XML : langage et applications. N9206, 2e dition 2000, 400 pages.

    D. HUNTER, et coll. Initiation XML.N9248, 2000, 850 pages.

    K. WILLIAMS et al. XML et les bases de donnes.N9282, 2001, 1 100 pages.

    F. BERQU, S. FREZEFOND, L. SORRIAUX. Java-XML et Oracle. E-Commerce EAI Portails dentreprise Applications mobiles.N9149, 2001, 650 pages + 2 CD-Rom.

    D. CARLSON. Modlisation dapplications XML avec UML. N9297, 2002, 324 pages.

    Ouvrages Java ou .NET

    P. HARRISON, I. MC FARLAND. Tomcat par la pratique. N11270, 2003, 560 pages.

    J. GOODWILL. Jakarta Struts. N11231, 2003, 354 pages.

    E. ROMAN, S. AMBLER, T. JEWELL. EJB fondamental. N11088, 2002, 626 pages.

    K. AVEDAL, et coll. JSP professionnel.Avec sept tudes de cas combinant JavaServer Pages, JDBC, JNDI, EJB, XML, XSLT et WML.N9247, 2001, 950 pages.

    S. ALLAMARAJU et al. Programmation J2EE. Conteneurs J2EE, servlets, JSP et EJB.N9260, 2001, 1 260 pages.

    G. LEBLANC. C# et .NET.N11066, mai 2002, 800 pages.

    D. APPLEMAN. De VB6 VB.NET.N11037, mars 2002, 500 pages.

    T. PETILLON. Cahier du programmeur ASP.NET. Infrastructure Web dune PME avec ASP.NET. N11210, 2003, 200 pages.

    E. PUYBARET. Cahier du programmeur JAVA. Premires applications professionnelles en Java.N11272, 2003, 240 pages.

    O. DAHAN, P. TOTH. Delphi 7 Studio N11143, 2003, 816 pages.

  • DITIONS EYROLLES61, bd Saint-Germain75240 Paris Cedex 05

    www.editions-eyrolles.com

    Le code de la proprit intellectuelle du 1er juillet 1992 interdit en effet expressment la photocopie usage collectif sans autorisation des ayants droit. Or, cette pratique sest gnralise notamment dans les tablissements denseignement, provoquant une baisse brutale des achats de livres, au point que la possibilit mme pour les auteurs de crer des uvres nouvelles et de les faire diter correctement est aujourdhui menace.En application de la loi du 11 mars 1957, il est interdit de reproduire intgralement ou partiellement le

    prsent ouvrage, sur quelque support que ce soit, sans autorisation de lditeur ou du Centre Franais dExploitation du Droit de Copie, 20, rue des Grands-Augustins, 75006 Paris. Groupe Eyrolles, 2003, ISBN : 2-212-11067-7

  • Mise en page : TyPAODpt lgal : septembre 2003

    N dditeur : 6890Imprim en France

  • Isabella et Ariele-Paolo

    Catherine et Guillaume

    Florence

    =Bernard.Livre Page I Mardi, 24. juin 2003 2:19 14

  • Remerciements

    Nous avons eu, au cours de la rdaction de cet ouvrage, des changes fructueux avec Florian Doyon,Guillaume Dauvergne et Lionel Roche : leurs avis techniques pointus, toujours accompagnsdencouragements sympathiques, nous ont t bien utiles. videmment, la responsabilit du contenude louvrage, et des erreurs ventuelles que lon pourra y trouver, incombe uniquement aux auteurs !Les discussions amicales avec rik Bukk sur les applications possibles de la technologie et sonimpact sur les systmes dinformation nous ont permis de bnficier de sa comptence et de sonexprience pour conforter ou adapter notre point de vue.Claude Amenc a ds le dbut encourag moralement notre projet et uvr pour le dveloppement desservices Web lorsque la signification du terme tait encore inconnue de la plupart des dcideurs.Muriel Shan Sei Fan, des ditions Eyrolles, a t un diteur (devrait-on dire

    ditrice

    ?) enthousiasteet volontaire. Elle nous a soutenus sans faille tout au long de la tche, qui sest finalement rvledune ampleur suprieure aux prvisions. En plus du professionnalisme, toute lquipe dEyrolles, etnotamment Muriel, Anne Garcia et Sophie Hincelin, a fait preuve de beaucoup de gentillesse et depatience avec des auteurs pas toujours lheure.Enfin, nos familles ont support stoquement les soires, dimanches et vacances que nous avonspasss sur les claviers : cet ouvrage leur est ddi.

    Christian BernardXavier LegallesLibero Maesano

    =Bernard.Livre Page II Mardi, 24. juin 2003 2:19 14

  • Table des matires

    Avant-propos

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXI

    CHAPITRE 1

    Introduction

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    Larchitecture oriente services

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    Les technologies des services Web

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    Les plates-formes oprationnelles

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    Linfrastructure des services Web

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    Ltude de cas

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    P

    REMIRE

    PARTIE

    Larchitecture oriente services

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    CHAPITRE 2

    Le contrat de service

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

    La relation de service

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Les lments du service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Les rles de client et de prestataire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    Le contrat de service

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Les lments du contrat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Acteurs humains et agents logiciels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    Identification des parties, description des fonctions et de linterface

    . . . 29

    Identification des parties

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

    Description des fonctions du service

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Quel modle de service ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    =Bernard.Livre Page III Mardi, 24. juin 2003 2:19 14

  • Services Web

    IV

    Le modle dimplmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32Le modle fonctionnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

    Description de linterface du service

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Linterface abstraite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38Protocoles de conversation et processus mtier abstraits . . . . . . . . . . . . . 42

    Limplmentation de linterface

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Linterface concrte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45La liaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Dsignation des ports de rception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49Chanes dacheminement (routing) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

    CHAPITRE 3

    La qualit de service

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    La qualit de service

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Primtre de la prestation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54Qualit de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Scurit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56Robustesse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59Gestion du service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77Gestion du changement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

    La gestion du contrat

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

    Les termes de lchange

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79Services payants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80Services troqus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81Services mixtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

    Conclusions

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81Le contrat est un modle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81Modle descriptif et modle directif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82Architecture oriente services et services Web . . . . . . . . . . . . . . . . . . . . . 84Spcifications dinterface et contrats types . . . . . . . . . . . . . . . . . . . . . . . . 93

    CHAPITRE 4

    Architectures dynamiques

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

    Conception darchitectures orientes services

    . . . . . . . . . . . . . . . . . . . . 95Lapproche par agrgation de services . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96Lapproche par dissmination de services . . . . . . . . . . . . . . . . . . . . . . . . . 98Combinaison des approches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

    =Bernard.Livre Page IV Mardi, 24. juin 2003 2:19 14

  • Table des matires

    V

    Les architectures orientes services dynamiques

    . . . . . . . . . . . . . . . . . 102Niveau de configuration dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104Relation entre degr de couplage et niveau de configuration dynamique . 104Le cycle de mise en uvre dune relation de service . . . . . . . . . . . . . . . . 105

    Les niveaux de configuration dynamique

    . . . . . . . . . . . . . . . . . . . . . . . . 109La configuration dynamique niveau 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110La configuration dynamique niveau 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111La configuration dynamique niveau 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115Intermdiation lexcution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119Ngociation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

    Conclusion

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

    D

    EUXIME

    PARTIE

    Technologies des services Web

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

    CHAPITRE 5

    Fondations des services Web Les protocoles Internet

    . . . 129

    URI, URL, URN

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129Syntaxe dun URI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130URN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

    MIME

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132Description dun message MIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

    HTTP 1.1

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133Prsentation gnrale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134Description dun message HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135Exemple de dialogue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

    SMTP

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143Transmission dun message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144Description du message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144Commandes SMTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

    Les protocoles SSL et TLS

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146Introduction la scurit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146Prsentation gnrale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147Les mthodes de chiffrement (cipher) . . . . . . . . . . . . . . . . . . . . . . . . . . . 148Le protocole de ngociation (handshake) . . . . . . . . . . . . . . . . . . . . . . . . . 149

    =Bernard.Livre Page V Mardi, 24. juin 2003 2:19 14

  • Services Web

    VI

    Annexe

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150Le modle de rfrence OSI de lISO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150Le modle darchitecture rseau TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . 153Les spcifications de standards Internet (RFC) . . . . . . . . . . . . . . . . . . . . . 156Dfinition de termes et organisation de la communaut Internet . . . . . . . 156

    CHAPITRE 6

    Fondations des services Web Les technologies XML

    . . . . 159

    XML 1.0

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159Rappel des rgles de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159Un document XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

    XML namespaces

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162Lattribut xmlns ou xmlns:

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

    Xlink

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163Un peu de vocabulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163La syntaxe Xlink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

    XML Base

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166Lattribut xml:base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

    XPath

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167Les expressions XPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

    XML Schema

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171Description dun schma XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172Les composants de dclaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173Les composants de dfinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175Les dfinitions complmentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

    Linterface DOM

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181Le noyau DOM2 XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

    Les analyseurs syntaxiques XML

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191

    CHAPITRE 7

    changer avec un service Format du message

    . . . . . . . . . . . 193

    Objets, services, documents

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193XML-RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

    Les principes du protocole SOAP 1.1

    . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

    =Bernard.Livre Page VI Mardi, 24. juin 2003 2:19 14

  • Table des matires

    VII

    La structure de la spcification SOAP 1.1 . . . . . . . . . . . . . . . . . . . . . . . . . 202

    Les bases de SOAP 1.1

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204SOAP 1.1 et XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206

    La structure du message SOAP 1.1

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207Lenveloppe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208Len-tte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209Le corps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218

    La gestion des erreurs en SOAP 1.1

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218Le traitement du message en erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219Le signalement de lerreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220Llment erreur (SOAP-ENV:fault) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222Les types derreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225

    CHAPITRE 8

    changer avec un service Codage des donnes

    . . . . . . . . . 231

    Le style de codage dans les messages SOAP

    . . . . . . . . . . . . . . . . . . . . . 232Reprsentation littrale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232Reprsentation code explicite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233Reprsentation code implicite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234Stratgies de codage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234

    Les objectifs du style de codage SOAP 1.1

    . . . . . . . . . . . . . . . . . . . . . . . 235Typage dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236Srialisation de structures partages et circulaires . . . . . . . . . . . . . . . . . . 236

    Les bases du style de codage SOAP 1.1

    . . . . . . . . . . . . . . . . . . . . . . . . . 236

    Le modle de donnes du style de codage SOAP 1.1

    . . . . . . . . . . . . . . 238Les valeurs et les types simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239Les valeurs simples plurirfrences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242Les valeurs et les types composites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245

    Les pices jointes

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253Le paquet SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254Libells et rfrences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255Rsolution des rfrences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262

    Conclusion

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263

    =Bernard.Livre Page VII Mardi, 24. juin 2003 2:19 14

  • Services Web

    VIII

    CHAPITRE 9

    changer avec un service Liaison et styles dchange

    . . 265

    La liaison SOAP/HTTP

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266Le message sens unique SOAP sur HTTP . . . . . . . . . . . . . . . . . . . . . . . 268La requte/rponse SOAP sur HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268Le message derreur SOAP sur HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269La requte HTTP pour SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270La rponse HTTP pour SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272La consommation du message et la gestion des erreurs . . . . . . . . . . . . . . 274

    Lappel de procdure distante (RPC) en SOAP

    . . . . . . . . . . . . . . . . . . . 283Lappel bloquant de procdure distante excution synchrone . . . . . . . . 284La dynamique de lappel bloquant de procdure distante excution synchrone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285La mise en uvre du style RPC avec SOAP . . . . . . . . . . . . . . . . . . . . . . . 288

    Conclusion

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297

    CHAPITRE 10

    Dcrire un service avec WSDL

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299

    Prcurseurs

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300

    Principaux concepts

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301

    Structure dun document WSDL

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302Exemple de document WSDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303Noms et liens entre fragments de documents . . . . . . . . . . . . . . . . . . . . . . 307lments de dfinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310Liaisons standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319

    WSDL dans le monde rel

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331

    Outils et ressources

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332Outil WSDL Dynamic Test Client de IONA Technologies . . . . . . . . . . . . 332Service Web de vrification WSDL GotDotNet . . . . . . . . . . . . . . . . . . . . 336

    Conclusion : instrumentalisation de la gestion des documents WSDL

    . . 340Sites de rfrence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341Outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341

    =Bernard.Livre Page VIII Mardi, 24. juin 2003 2:19 14

  • Table des matires

    IX

    CHAPITRE 11

    Dcouvrir un service avec UDDI

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343

    Les prcurseurs

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343Sun Microsystems Jini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343Hewlett-Packard e-Speak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344

    UDDI 1.0 et 2.0

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345La pile de protocoles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346Les structures de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347Laccs lannuaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348Linterface de programmation (API) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349Les URL daccs aux implmentations IBM et Microsoft . . . . . . . . . . . . 350Les nouveauts introduites par UDDI 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . 352

    La recherche dun service

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354Les lments de syntaxe communs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355La fonction find_binding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355La fonction find_business . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358La fonction find_relatedBusinesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374La fonction find_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376La fonction find_tModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379La fonction get_bindingDetail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382La fonction get_businessDetail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384La fonction get_businessDetailExt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386La fonction get_serviceDetail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388La fonction get_tModelDetail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391

    CHAPITRE 12

    Publier un service

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395

    La publication et la rplication

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395

    La publication dun service

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396Les fonctions dauthentification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398Les fonctions de cration et de mise jour . . . . . . . . . . . . . . . . . . . . . . . . 402Les fonctions de suppression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416Les fonctions de gestion des assertions . . . . . . . . . . . . . . . . . . . . . . . . . . . 425

    Les modalits dutilisation des annuaires

    . . . . . . . . . . . . . . . . . . . . . . . 436Le modle dinvocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436La convention dappel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437Lutilisation des taxonomies de classification et didentification . . . . . . . 438La correspondance entre WSDL et UDDI . . . . . . . . . . . . . . . . . . . . . . . . . 439

    =Bernard.Livre Page IX Mardi, 24. juin 2003 2:19 14

  • Services Web

    X

    Les implmentations dannuaires UDDI

    . . . . . . . . . . . . . . . . . . . . . . . . 440Lannuaire public UBR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440Les implmentations disponibles de lannuaire public . . . . . . . . . . . . . . . 441Les annuaires privs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444Les annuaires de tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447

    Les nouveauts introduites par UDDI 3.0

    . . . . . . . . . . . . . . . . . . . . . . . 448

    Conclusion

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449

    T

    ROISIME

    PARTIE

    Les plates-formes oprationnelles

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451

    CHAPITRE 13

    Principes de mise en uvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453Les plates-formes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453

    .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454J2EE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456

    Le choix dune plate-forme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457Primaut du concept de service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457Interoprabilit plutt que portabilit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458Support du concept de service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459

    La description (WSDL) dun service comme pivot . . . . . . . . . . . . . . . . 459Description en tant que spcification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459Description en tant que documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . 460Mthodes de dveloppement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461WSDL dans la pratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463Transformer un composant en service . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463Gnrer un proxy-service partir dune description . . . . . . . . . . . . . . . . . 480Gnrer un squelette de service partir dune description . . . . . . . . . . . . 484Gnrer un client de test partir dune description . . . . . . . . . . . . . . . . . . 490

    Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496

    CHAPITRE 14

    Les plates-formes Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497Principaux acteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497

    IBM : linitiateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498Hewlett-Packard : le visionnaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498

    =Bernard.Livre Page X Mardi, 24. juin 2003 2:19 14

  • Table des matiresXI

    Sun Microsystems : un retard inexplicable . . . . . . . . . . . . . . . . . . . . . . . . 499La communaut Open Source : acclrer le mouvement . . . . . . . . . . . . . 500Les start-ups : des opportunits saisir . . . . . . . . . . . . . . . . . . . . . . . . . . . 500

    Limplmentation SOAP de rfrence : Apache SOAP4J . . . . . . . . . . 501Analyseur syntaxique XML Xerces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501Container Servlets/JSP Tomcat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501Serveur SOAP Axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502

    Loffre dIBM : Dynamic e-business . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502Anne 2001 : annonces de nouveaux produits . . . . . . . . . . . . . . . . . . . . . 502WebSphere Application Server 4.0 et 5.0 . . . . . . . . . . . . . . . . . . . . . . . . . 503Eclipse et WebSphere Studio (Application Developer et Site Developer) . . . 504Anne 2002 : nouvelles spcifications et nouveaux produits . . . . . . . . . . 504

    Les efforts de normalisation de la communaut Java . . . . . . . . . . . . . 505Loffre de SUN Microsystems : SUN ONE . . . . . . . . . . . . . . . . . . . . . . . 507

    Implmentations de rfrence des JSR . . . . . . . . . . . . . . . . . . . . . . . . . . . 507JAX Pack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508Java Web Services Development Pack (WSDP) . . . . . . . . . . . . . . . . . . . . 509Java Web Services Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509

    Loffre de BEA systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510WebLogic 6.1 et 7.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510WebLogic Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511Ressources dveloppeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512

    Loffre de Hewlett-Packard : Netaction . . . . . . . . . . . . . . . . . . . . . . . . . 512Netaction : renaissance de e-Speak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512HP Web Services 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513HP Web Services Registry 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514HP Web Services Transactions 1.0 (HP WST) . . . . . . . . . . . . . . . . . . . . . 514HP Middleware : arrt partiel de l'activit . . . . . . . . . . . . . . . . . . . . . . . . . 514

    Loffre de IONA Technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515Loffre de Novell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516

    Composer : le serveur dintgration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517Workbench : lenvironnement de dveloppement intgr . . . . . . . . . . . . . 517JBroker : lenvironnement dexcution . . . . . . . . . . . . . . . . . . . . . . . . . . . 518

    Loffre dOracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518Les autres technologies Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519

    The Mind Electric Glue et Gaia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520Cape Clear : CapeConnect et CapeStudio . . . . . . . . . . . . . . . . . . . . . . . . . 521

    =Bernard.Livre Page XI Mardi, 24. juin 2003 2:19 14

  • Services WebXII

    Systinet WASP Server for Java et WASP UDDI . . . . . . . . . . . . . . . . . . . . 522Bowstreet Business Web Factory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524Collaxa Web Service Orchestration Server . . . . . . . . . . . . . . . . . . . . . . . . 524PolarLake Web Services Express . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524AltoWeb Application Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525Sonic XQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526

    Les prochaines volutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526Projet Gaia (The Mind Electric) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526Projet Globus (globus.org) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527Projet OGSA (globus.org) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527

    Sites de rfrence et ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528Apache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528BEA-WebGain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528Borland . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528Cape Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528Divers diteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528IBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529IONA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529Globus Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529Hewlett-Packard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530JCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530Novell (ex-SilverStream) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530PolarLake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530Sun Microsystems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531Systinet (ex-Idoox) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531The Mind Electric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531

    CHAPITRE 15

    La plate-forme .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533Le framework .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535

    Le CLR (Common Language Runtime) . . . . . . . . . . . . . . . . . . . . . . . . . . 536La librairie objet (Framework Class Library) . . . . . . . . . . . . . . . . . . . . . . 542Les langages du framework et C# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548ASP.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550

    Le dveloppement de services Web avec Microsoft .NET . . . . . . . . . . 569La gnration dun service Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569La gnration dun proxy en C# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580

    =Bernard.Livre Page XII Mardi, 24. juin 2003 2:19 14

  • Table des matiresXIII

    Guide de dveloppement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584WSE (Web Service Enhancements) 1.0 pour Microsoft.NET . . . . . . . . . 592

    .NET MyServices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597

    CHAPITRE 16

    Les implmentations sur le poste de travail . . . . . . . . . . . . . . . . 599Le behavior Internet Explorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600

    Utilisation du behavior WebService . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600Services Web en ECMAScript avec Mozilla . . . . . . . . . . . . . . . . . . . . . 606

    Utilisation de l'API SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606Utiliser Microsoft Office XP en tant que client SOAP . . . . . . . . . . . . . 613

    Dcouverte dun service Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613Implmentation du service Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615Description dtaille du Web Services Toolkit 2.0 . . . . . . . . . . . . . . . . . . 617

    Macromedia Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619Schma dimplmentation dun service Web . . . . . . . . . . . . . . . . . . . . . . 620

    Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622Applications Web grand public . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623Applications dentreprise (tendue) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623Le retour sur investissement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624

    CHAPITRE 17

    Le dfi de linteroprabilit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625Les tests dinteroprabilit SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626

    SOAP Builders Round I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627SOAP Builders Round II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629

    Les tests dinteroprabilit WSDL (et complments SOAP) . . . . . . . 631SOAP Builders Round III . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631SOAP Builders Round IV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632SOAP Builders Round V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632

    Les tests dinteroprabilit UDDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633Les tests dinteroprabilit globaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634Le consortium industriel WS-I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634

    Objectif de lorganisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634Organisation et groupes de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636Introduction du concept de profil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636

    =Bernard.Livre Page XIII Mardi, 24. juin 2003 2:19 14

  • Services WebXIV

    Vers une interoprabilit gnralise . . . . . . . . . . . . . . . . . . . . . . . . . . . 640Ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640

    Sites Internet (points daccs, tests et rsultats) . . . . . . . . . . . . . . . . . . . . 640Mailing-lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642

    QUATRIME PARTIELinfrastructure des services Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645

    CHAPITRE 18

    Fiabilit des changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647Les enjeux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649

    La smantique oprationnelle des changes . . . . . . . . . . . . . . . . . . . . . . . 651Lchange fiable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652Un problme darchitecture de spcifications . . . . . . . . . . . . . . . . . . . . . . 654

    HTTPR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656Les relations entre HTTPR et HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656Lidentification des serveurs et des canaux . . . . . . . . . . . . . . . . . . . . . . . . 659Les transactions et les agents HTTPR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660Le format de lentit HTTPR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661Les commandes HTTPR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663Les transactions internes aux agents HTTPR . . . . . . . . . . . . . . . . . . . . . . 667Les relations entre HTTPR et le protocole de messagerie fiable . . . . . . . . 670Quelques schmas dapplications dHTTPR . . . . . . . . . . . . . . . . . . . . . . . 672Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681

    WS-Reliability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681Prsentation gnrale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681Le modle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683Les messages et leur structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686La liaison SOAP WS-Reliability/HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . 690Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691

    Avantages et inconvnients des deux approches . . . . . . . . . . . . . . . . . . 691

    CHAPITRE 19

    Gestion de la scurit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693Larchitecture et la roadmap de la scurit pour les services Web . . 699

    Linfrastructure de scurit pour les services Web . . . . . . . . . . . . . . . . . . 701

    =Bernard.Livre Page XIV Mardi, 24. juin 2003 2:19 14

  • Table des matiresXV

    Larchitecture des spcifications de scurit . . . . . . . . . . . . . . . . . . . . . . . 703Le dveloppement de linfrastructure de scurit des services Web . . . . . 706

    WSS-Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709XML Signature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 710XML Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711Lentre de len-tte Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714Les jetons de scurit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715Les rfrences aux jetons de scurit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716La signature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717Le chiffrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718

    La gestion de la scurit avec WSE .NET . . . . . . . . . . . . . . . . . . . . . . . 719La gestion des certificats X.509 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 720Lauthentification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721La signature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726Le chiffrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728

    Un exemple dinteroprabilit en J2EE et .NET . . . . . . . . . . . . . . . . . 730Serveur .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731Client .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735Client et serveur Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743Fonctionnement de lexemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753Exemple dun message SOAP sign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754

    Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757Rfrences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757

    Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 757Ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 758Implmentations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 758

    CHAPITRE 20 759

    La gestion des transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759La gestion dtat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760

    Les processus mtier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761Linfrastructure de gestion de transactions . . . . . . . . . . . . . . . . . . . . . . . . 762

    Les limites de la gestion transactionnelle . . . . . . . . . . . . . . . . . . . . . . . . 764La viabilit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764La confiance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765

    Les activits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766Les technologies de services Web appliques aux transactions et activits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768

    Business Transaction Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768WS-Coordination et WS-Transaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 770

    =Bernard.Livre Page XV Mardi, 24. juin 2003 2:19 14

  • Services WebXVI

    Les protocoles de mtacoordination . . . . . . . . . . . . . . . . . . . . . . . . . . . . 774Le protocole dactivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 774Le protocole de registration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779Le rle gnrique de coordinateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782

    Les protocoles de coordination spcifiques . . . . . . . . . . . . . . . . . . . . . . 783Le protocole de coordination des transactions . . . . . . . . . . . . . . . . . . . 783

    Le protocole bilatral de terminaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786Le protocole bilatral de terminaison avec acquittement . . . . . . . . . . . . . 787Le protocole bilatral de confirmation en deux tapes . . . . . . . . . . . . . . . 787Le protocole bilatral dtape zro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791Le protocole bilatral de notification dissue . . . . . . . . . . . . . . . . . . . . . . . 792Les relations entre les protocoles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 792

    Le protocole de coordination des activits . . . . . . . . . . . . . . . . . . . . . . . 795La cration dun contexte de coordination dactivit . . . . . . . . . . . . . . . . 797Les protocoles bilatraux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797Le pilotage dune tche transactionnelle . . . . . . . . . . . . . . . . . . . . . . . . . . 802

    Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804

    CHAPITRE 21

    Gestion des processus mtier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807Spcifications initiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 809Nouvelles spcifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 810Effervescence dans le monde du BPM . . . . . . . . . . . . . . . . . . . . . . . . . . 811Services Web, processus mtier, orchestration et chorgraphie . . . . . 813

    Processus mtier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813Orchestration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 814Chorgraphie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 814Positionnement des spcifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 815Modlisation de la gestion des processus mtier . . . . . . . . . . . . . . . . . . . . 815

    Principales spcifications en prsence . . . . . . . . . . . . . . . . . . . . . . . . . . . 817BPEL4WS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 817BPML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823WSCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825WSCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827WSFL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 831XLANG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 831

    Vers une entreprise toujours plus tendue . . . . . . . . . . . . . . . . . . . . . . . 832

    =Bernard.Livre Page XVI Mardi, 24. juin 2003 2:19 14

  • Table des matiresXVII

    Sites de rfrence et ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833Ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 834Organisations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835Spcifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835diteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 836Produits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 837Outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 837

    CINQUIME PARTIEtudes de cas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 839

    CHAPITRE 22

    Scnarios d'architectures Implmentation des clients . . . 841Scnario n1 (architecture statique implmentation Java) . . . . . . . 843

    Systme existant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843Nouveau systme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 845Implmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 845Constat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 862

    Scnario n2 (architecture dynamique implmentation Java) . . . . 863volution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 864Nouveau systme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 864Implmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865Constat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 874

    Scnario n3 (architecture dynamique implmentation .NET) . . . . 875volution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 876Nouveau systme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 876Implmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 876Constat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 880

    Scnario n4 (architecture en processus mtier) . . . . . . . . . . . . . . . . . . 880volution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 881Nouveau systme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 881Implmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 881Constat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 897

    Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898

    =Bernard.Livre Page XVII Mardi, 24. juin 2003 2:19 14

  • Services WebXVIII

    CHAPITRE 23

    Architecture statique Implmentation des services Java 901Implmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 901Produits utiliss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 901

    Apache Tomcat 4.1.12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 902Sun Microsystems SDK Standard Edition 1.4.1 . . . . . . . . . . . . . . . . . . . . 902Apache SOAP 2.3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 902Sun Microsystems JavaMail 1.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 902Sun Microsystems JavaBeans Activation Framework 1.0.2 . . . . . . . . . . . 903Apache Axis 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903Microsoft behavior WebService 1.0.1.1120 . . . . . . . . . . . . . . . . . . . . . . . 903

    Paramtrage des produits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903Dveloppement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 907

    Application Web de SW-Voyages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 908Partie serveur de lapplication Web de SW-Voyages . . . . . . . . . . . . . . . . . 908Applications Web des partenaires de SW-Voyages . . . . . . . . . . . . . . . . . . 918Partie serveur de lapplication Web des partenaires de SW-Voyages . . . . 919

    CHAPITRE 24

    Architecture dynamique (UDDI) Implmentation Java . . . . 925Implmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925Produits utiliss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925

    The Mind Electric GLUE Professional 3.1 . . . . . . . . . . . . . . . . . . . . . . . . 926Paramtrage des produits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 926Dveloppement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936

    Publication des modles et services destination de lannuaire UDDI . . 936Application Web de SW-Voyages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 949Partie serveur de l'application Web de SW-Voyages . . . . . . . . . . . . . . . . . 950Applications Web des partenaires de SW-Voyages . . . . . . . . . . . . . . . . . . 954Partie serveur de l'application Web des partenaires de SW-Voyages . . . . . 954

    CHAPITRE 25

    Architecture dynamique (UDDI) Implmentation .NET . . . . 955Implmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 955Produits utiliss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 955

    Microsoft Internet Information Server (IIS) 5.0 . . . . . . . . . . . . . . . . . . . . 956

    =Bernard.Livre Page XVIII Mardi, 24. juin 2003 2:19 14

  • Table des matiresXIX

    Microsoft Visual Studio.NET 7.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 956Microsoft UDDI.NET SDK 1.76 bta . . . . . . . . . . . . . . . . . . . . . . . . . . . . 956

    Paramtrage des produits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 956Dveloppement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 957

    Application Web de SW-Voyages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 957Migration de lapplication Web de SW-Voyages vers le framework .NET 957Applications Web des partenaires de SW-Voyages . . . . . . . . . . . . . . . . . . 973Partie serveur de l'application Web des partenaires de SW-Voyages . . . . 973

    CHAPITRE 26

    Architecture en processus mtier (BPEL) . . . . . . . . . . . . . . . . . . . 975Implmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 975Produits utiliss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976

    Apache Tomcat 4.1.12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976Collaxa BPEL Orchestration Server 2.0 bta 4 . . . . . . . . . . . . . . . . . . . . . 976Microsoft behavior WebService 1.0.1.1120 . . . . . . . . . . . . . . . . . . . . . . . 977Sun Microsystems SDK Standard Edition 1.4.1 . . . . . . . . . . . . . . . . . . . . 977

    Paramtrage du serveur Collaxa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977Dveloppement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 978

    Orchestration du processus de rservation . . . . . . . . . . . . . . . . . . . . . . . . 978Application Web de SW-Voyages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 982

    Partie serveur de l'application Web de SW-Voyages . . . . . . . . . . . . . . . . . 984Applications Web des partenaires de SW-Voyages . . . . . . . . . . . . . . . . . . 1004Partie serveur de l'application Web des partenaires de SW-Voyages . . . . 1005

    Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015

    SIXIME PARTIEConclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1017

    Les services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1020Lagrgation de services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1021La question de linfrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1024Le contrat de service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1025La pratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1029

    =Bernard.Livre Page XIX Mardi, 24. juin 2003 2:19 14

  • Services WebXX

    SEPTIME PARTIEAnnexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1031

    Glossaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1033

    Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1041

    =Bernard.Livre Page XX Mardi, 24. juin 2003 2:19 14

  • Avant-propos

    Quel est lobjectif de louvrage ?La premire ambition de cet ouvrage est de fournir au lecteur une prsentation approfondie des tech-nologies de services Web et de leurs implmentations en J2EE et .Net. Louvrage couvre les techno-logies de base (SOAP, WSDL, UDDI), les technologies dinfrastructure (lchange fiable, la scurit,les transactions) et la gestion des processus mtier.La prsentation est la fois thorique et pratique. Dun ct, les spcifications sont expliques etcommentes en dtail. Lide est dessayer de faire comprendre la logique architecturale qui lielensemble, mais aussi les raisons des diffrents choix techniques effectus par les auteurs des spci-fications : ces choix sont parfois de lordre du dtail mais ils ont des consquences importantes sur lamise en uvre des services Web.Dun autre ct, louvrage prsente la mise en uvre des technologies de services Web dans diff-rents langages de programmation (essentiellement Java et C#, mais aussi Visual Basic, Ecmascript,Jscript et Flash) et sur diffrentes plates-formes et outils (essentiellement J2EE et .Net, mais aussiInternet Explorer, Mozilla, Office XP, Flash). La prsentation est toujours agrmente dexemples etla dernire partie de louvrage dcrit une tude de cas, au contenu fonctionnel intuitif, dcline enplusieurs variantes en termes darchitecture technique et dimplmentation, qui dmontrent les diff-rentes facettes et usages des technologies de services Web.Tous les logiciels des exemples et de ltude de cas sont excutables et les codes source sont disponiblesen tlchargement libre sur le site des ditions Eyrolles (http://www.editions-eyrolles.com).Louvrage ne prsente pas systmatiquement, pour chaque brique de la technologie des servicesWeb, plusieurs implmentations concurrentes disponibles (J2EE, .Net, autre plate-forme). Cepen-dant, maintenir une position de neutralit en traitant des plates-formes dimplmentation a t une denos principales proccupations et nous avons essay de garder, dans la mesure du possible, un quili-bre entre les implmentations sur les diffrentes plates-formes. Par exemple, pour linterfaceprogrammatique UDDI, cest limplmentation en Java qui est prsente, tandis que limplmentationde la scurit est prsente essentiellement en .Net (C#).Lavantage (et lobjectif) essentiel des technologies de services Web tant linteroprabilit, nouslavons dmontr dans maints cas par la mise en uvre de plusieurs exemples et de variantes deltude de cas sur des plates-formes mixtes. Linteroprabilit empiriquement vrifiable est aussi unedmonstration concrte du dcouplage entre une architecture de services Web et son implmentationlogicielle, cette dernire tant banalise et interchangeable.

    =Bernard.Livre Page XXI Mardi, 24. juin 2003 2:19 14

  • Services WebXXII

    La deuxime ambition de cet ouvrage est de prsenter concrtement les technologies de services Webcomme le support dlection du modle mergent de larchitecture oriente services.Nous sommes convaincus que les technologies des services Web vont devenir un vecteur de change-ment et dautomation des processus mtier intra et interentreprises. Elles vont aussi changer les prati-ques et le positionnement des professionnels de linformatique, lintrieur des organisations et surle march.Nous ne nous hasardons pas traiter les consquences socio-conomiques de ladoption de la techno-logie qui fait lobjet de cet ouvrage. En revanche, nous essayons de montrer, par la pratique, larchi-tecture oriente services comme un nouveau paradigme qui implique un changement dapproche dela part des informaticiens : changement dans la relation avec les utilisateurs mais aussi changementdans la manire de penser, concevoir, dvelopper, dployer et exploiter les logiciels et les systmesrpartis.Pour mettre en vidence le nouveau paradigme, la premire partie de louvrage est consacre uneprsentation circonstancie du modle de larchitecture oriente services. La deuxime partieprsente les technologies de base (SOAP, WSDL, UDDI). La troisime partie expose les diffrentesplates-formes dimplmentation (J2EE, .Net, autre). La quatrime partie approfondit les spcifica-tions et les implmentations des technologies dinfrastructure (fiabilit de lchange, scurit, gestiondes transactions) ainsi que la mise en uvre des processus mtier par des langages de scnario(BPEL). La cinquime partie prsente ltude de cas (un service dagence de voyages implmentpar agrgation de diffrents services de rservation), dclin en plusieurs variantes : dune architec-ture quasi-statique la mise en uvre en processus mtier BPEL, en passant par des architecturesdynamiques avec UDDI. Une description plus dtaille du contenu de louvrage, chapitre par chapitre,est donne au chapitre 1.

    qui sadresse cet ouvrage ?Cet ouvrage sadresse : aux dveloppeurs dapplications, et plus particulirement ceux qui utilisent les environnements

    J2EE et .Net ; aux architectes des systmes dinformation, qui souhaitent comprendre les concepts cls de

    larchitecture oriente services (AOS) et de sa mise en uvre ; aux dcideurs, consultants, chefs de projets et spcialistes de lintgration, qui ont besoin

    dtendre leur capacit dintervention vers lurbanisation du SI de lentreprise et la prise en chargede services valeur ajoute ;

    aux tudiants des coles dingnieurs et universitaires, qui recherchent une rfrence sur ce typedarchitectures.

    =Bernard.Livre Page XXII Mardi, 24. juin 2003 2:19 14

  • 1Introduction

    La premire difficult laquelle on se heurte lorsquon aborde le vaste sujet des technologies deservices Web est dordre terminologique. Un exemple, dsormais bien connu, du dsordre terminolo-gique est le vrai faux acronyme SOAP, qui signifierait Simple Object Access Protocol , alors quildsigne un protocole dchange entre applications rparties o il nest nulle part question daccder des objets . Le dbat a finalement t tranch par le W3C, qui a dautorit supprim la formedveloppe du terme SOAP , dont il a simplement fait un nom propre.Les difficults commencent, vrai dire, avec le terme mme de service Web (Web service) :George Colony, fondateur et CEO de Forrester Research Inc., dans sa confrence du 10 mars 2003 auICT World Forum (http://idg.net/ic_1211529_9677_1-5041.html) dit propos des services Web quil nestabsolument pas question de services ni de Web , mais que la dnomination la plus approprieserait celle de middleware Internet qui permet de connecter les applications des entreprises celles de leurs clients et partenaires.Il est vrai que le terme de service est galvaud, que le terme Web voque les sites Web, et queles deux termes juxtaposs font penser des services pour le public et les professionnels, pourvus pardes sites Web, ce qui est droutant par rapport au concept de services Web. Tous ceux qui, comme lesauteurs, ont anim des confrences et des prsentations sur le sujet peuvent tmoigner de la difficult articuler les messages les plus simples en raison de lusage dtourn de ces termes. Par exemple, ilfaut rappeler sans cesse le fait que cette technologie prside lchange direct des applications entreelles sans la participation ni lintermdiation des utilisateurs.Cela dit, mme si la proposition de George Colony a lavantage dtre claire, nous ne sommes pasentirement daccords avec lui sur deux points : Le terme de middleware doit tre mani avec prcaution, car il voque le dploiement dans une

    architecture rpartie dun ensemble de composants technologiques cohrents, lments du mmeproduit. Or, il ny a pas de produit dployer, mais plutt des spcifications de langages dedescription (comme WSDL) et de protocoles dinteraction (comme SOAP) que chacun peut

    =Bernard.Livre Page 1 Mardi, 24. juin 2003 2:19 14

  • Services Web2

    implmenter, dans son environnement technique, par des composants logiciels standards ou bienspcifiques, propritaires ou bien ouverts. Cest la conformit aux spcifications de ces composantsqui permet linteroprabilit des applications, objectif primaire de la technologie des servicesWeb, et le middleware en question, autant quon puisse lappeler ainsi, est donc mis en uvre parlinteraction dynamique de composants dorigines diverses et dimplmentations htrognes.

    linverse, le terme de service , bien que souvent employ dans des acceptions plus prcises,reste pertinent et important. Lutilisation de ce terme permet de rattacher la technologie desservices Web larchitecture oriente services. Larchitecture oriente services est un concept etune approche de mise en uvre des architectures rparties centre sur la notion de relation deservice entre applications et sur la formalisation de cette relation dans un contrat. Larchitectureoriente services est en principe un concept indpendant de la technologie des services Web, maiscette dernire reprsente dsormais son plus important moyen dimplmentation et fournit la basetechnologique pour sa diffusion sur une chelle jamais exprimente auparavant. Le langageWSDL (Web Services Description Language) en est la technologie pivot qui reprsente le noyauextensible dun langage de formalisation de contrats de service entre applications.

    Ces prcisions faites, en conformit avec un usage dsormais assez rpandu, nous continuerons appeler les technologies prsentes dans cet ouvrage, technologies de services Web en sachant que leterme va rapidement se banaliser comme un nom propre (si ce nest pas dj fait). Par ailleurs, nousutiliserons aussi le terme de service Web pour dsigner une application qui joue le rle de prestatairedans une relation de service et est mise en uvre sur la base de la technologie des services Web.Cet ouvrage tente de prsenter un panorama large et organis de ces technologies et de leurs impl-mentations en J2EE et .Net, tout en offrant un approfondissement des problmes fondamentaux posspar leur dploiement et leur volution, avec la cl des exemples dapplication et une tude de casdont limplmentation est dcline en plusieurs variantes.Louvrage, outre cette introduction et une conclusion est organis en vingt-cinq chapitres regroupsen cinq parties. La premire partie (chapitres 2, 3 et 4) traite de larchitecture oriente services. Ladeuxime partie (chapitres 5, 6, 7, 8, 9, 10, 11 et 12), aprs un rappel des technologies Internet etXML, introduit les technologies cls SOAP, WSDL et UDDI. La troisime partie (chapitres 13, 14,15, 16 et 17) prsente les plates-formes dimplmentation J2EE et .Net, ainsi que les composantsdisponibles sur le poste de travail et traite les problmes dinteroprabilit. La quatrime partie(chapitres 18, 19, 20 et 21) introduit les technologies dinfrastructure qui garantissent lchangefiable, la gestion de la scurit et la gestion des transactions, ainsi que la gestion des processus mtier.La cinquime et dernire partie (chapitres 22, 23, 24, 25 et 26) dcline une tude de cas en plusieursarchitectures configuration statique et dynamique, sur plate-forme Java et .Net, ainsi que lapplica-tion du langage de scnarios de processus mtier BPEL.Nous pensons que la matire traite est suffisante pour donner au lecteur une vision la fois large etapprofondie de larchitecture oriente services et de la technologie des services Web. Par ailleurs, ledveloppement de la technologie des services Web avance grands pas et touche des domaines et dessujets qui ne sont pas traits dans cet ouvrage pour des questions despace et dunit duvre. Lechapitre de conclusion voque les axes centraux de consolidation et de dveloppement futur desservices Web, et quelques ides dexploration sur des sujets non traits.

    =Bernard.Livre Page 2 Mardi, 24. juin 2003 2:19 14

  • Introduction 3

    Larchitecture oriente servicesNous avons pris le parti de considrer que la dclinaison du concept darchitecture oriente services(chapitres 2, 3 et 4) tait le meilleur moyen pour introduire le cadre conceptuel et la terminologieutilis dans la suite de louvrage. La technologie des services Web est donc prsente comme lemoyen dimplmentation des architectures orientes services. La premire partie fournit la cl delecture qui permet de comprendre la position et le rle fonctionnel des diffrents modules techno-logiques prsents dans la deuxime et la quatrime partie, ainsi que des implmentations prsentesen troisime partie.Le chapitre 2 introduit le concept darchitecture oriente services. Il introduit la relation de serviceet les rles de clients et de prestataires jous par les applications participantes. Il est important denoter que nous avons choisi le terme prestataire pour marquer une diffrence avec la terminologiedes architectures client/serveur, qui ne sont quune forme spcifique et limite des architecturesclient/prestataire. Il introduit galement la notion de contrat, lequel formalise les engagements duprestataire et ventuellement du client dans la ralisation de la prestation de services.Un contrat est un document organis en plusieurs parties, dont les plus importantes sont : la description des fonctions du service ; la description de linterface du service ; la description de la qualit du service.Le chapitre 2 prsente les fonctions et linterface dans le contrat de service. Il faut bien noter la diff-rence entre les fonctions et linterface du service : la description des fonctions est une descriptionabstraite de la prestation de services, tandis que linterface est une description des mcanismes et desprotocoles de communication avec le prestataire de services. Naturellement, la comprhension dulien entre linterface et les fonctions dun service est capitale. Le problme de la formalisation de celien na pas encore de solution satisfaisante aujourdhui, tout au moins lchelle o ce problme estpos par la diffusion des technologies des services Web.Si la description fonctionnelle est abstraite et indpendante de limplmentation du prestataire, ladescription de linterface stend jusquaux dtails concrets comme les protocoles de transport desmessages et les adresses des ports de rception.Le chapitre 3 traite de la qualit de service, cest--dire de lensemble des proprits oprationnelles(non fonctionnelles) dun service : performance, accessibilit, fiabilit, disponibilit, continuit,scurit, exactitude, prcision La formalisation et la prise en charge explicite dengagements dequalit de service est de faon gnrale encore insuffisamment, voire pas du tout, traite dans le cadredes technologies des services Web. La qualit de service va prendre une importance croissante avecla diffusion darchitectures orientes services de plus en plus larges et dynamiques. Les engagementsde qualit de service vont constituer un facteur de diffrentiation importante entre les prestatairesfournissant le mme service du point de vue fonctionnel.Le chapitre 3 se termine par une discussion des relations entre le contrat de service et la mise enuvre concrte des applications clientes et prestataires agissant en conformit avec le contrat. Iltablit notamment la relation entre les diffrentes parties du contrat et les langages et protocoles destechnologies de services Web. Par ailleurs, lors de la prsentation (dans les chapitres 2, 3 et 4) dechaque lment du contrat, quil soit fonctionnel, dinterface ou oprationnel, louvrage renvoie

    =Bernard.Livre Page 3 Mardi, 24. juin 2003 2:19 14

  • Services Web4

    systmatiquement la technologie de services Web cense dcrire formellement lengagementcontractuel ou bien le mettre en uvre.Le chapitre 4 traite des architectures orientes services configuration dynamique. Pour introduirele sujet, il prsente tout dabord deux figures de la dmarche de conception et de mise en uvrede larchitecture oriente services :

    lagrgation de services ;

    la dissmination de services.Lagrgation est la ralisation dun service qui intgre, pour raliser sa prestation, les rsultats desprestations dautres services. La dissmination est, linverse, la mise en uvre sous forme de servi-ces modulaires des fonctions dune application monolithique. La conception dune architectureoriente services est en gnral le rsultat de la combinaison de ces deux dmarches.Laspect dynamique de la configuration de larchitecture nest ni secondaire ni accessoire, mais bienau cur mme du concept darchitecture oriente services (ce qui nempche pas par ailleurs demettre en uvre des architectures orientes services totalement statiques). Dans une architecturedynamique, les services qui la composent, les applications prestataires qui interviennent, ainsi quuncertain nombre de proprits oprationnelles des prestations de services ne sont pas dfinis avant samise en place, mais sont composs, configurs, tablis, voire ngocis, au moment de lexcution. Ceprocessus peut tre itratif : il est possible de reconfigurer une architecture dynamique la vole lorsde son fonctionnement normal, ou bien loccasion dun dysfonctionnement.Avec les technologies de services Web disponibles actuellement, on peut notamment tablir des archi-tectures dans lesquelles les applications participantes peuvent choisir dynamiquement les services abstraits quelles consomment, les prestataires de ces services, les ports daccs de ces prestataires.Ltude de cas prsent dans la cinquime partie articule la mme application rpartie en plusieursscnarios darchitectures doues de niveaux diffrents de capacit de configuration dynamique.

    Les technologies des services WebLa deuxime partie (chapitres 5, 6, 7, 8, 9, 10, 11 et 12), aprs un rappel des bases et des fondements(les protocoles Internet et le langage XML) prsente les trois technologies cls des services Web :SOAP, WSDL et UDDI.Il est vident que, sans Internet, lensemble des technologies de services Web ne serait encore quunautre standard de middleware, un nouveau concurrent de DCOM ou de CORBA. linverse, certainsfournisseurs qui ont un parc important de produits propritaires installs prtendent que, sur desrseaux locaux ou propritaires, il est possible de dployer des architectures de services Web quinutilisent pas de protocoles de communication Internet, mais des middlewares patrimoniaux. Cette mouvance dfinit un service Web comme une application dont linterface est dcrite par un docu-ment WSDL, indpendamment de la technologie de middleware utilise pour interagir avec elle. Enrevanche, le dploiement de ces mmes architectures sur Internet impose lutilisation de protocolesInternet et notamment dHTTP, qui se dtache aujourdhui comme le premier protocole de transportpour la communication avec les services Web. Le chapitre 5 rappelle les fondamentaux des concepts

    =Bernard.Livre Page 4 Mardi, 24. juin 2003 2:19 14

  • Introduction 5

    et protocoles Internet (URI et URL, HTTP, SMTP, MIME, SSL, TLS) ainsi que le modle de rf-rence en sept couches OSI de lInternational Standard Organisation.Le chapitre 6 est un rappel indispensable de ce que sont XML et les technologies connexes commeXML Namespaces, Xlink, Xpath, XML Base, XML Schema et DOM. Les technologies XML consti-tuent une vritable fondation pour les technologies de services Web : XML est la base du format demessage SOAP et du langage de description WSDL.XML Namespaces et XML Schema sont particulirement utilises par les services Web. XMLNamespaces est loutil de gestion des versions et permet de grer sans conflit lassemblage et lexten-sion de technologies et dapplications dorigines diffrentes. Quant XML Schema, il est spcifidemble comme seul outil de dfinition de formats XML dans les services Web. Les DTD nont pascours dans le monde des services Web : il est mme explicitement interdit, par exemple, de vhiculerune DTD comme partie dun message SOAP.Ces rappels sont faits avec le simple objectif dpargner au lecteur, qui a dj une certaine familiaritavec la matire, la ncessit de quitter louvrage pour un rappel rapide ou un renseignement ponctuelet ne remplacent en aucun cas les ouvrages spcialiss sur le sujet.SOAP, qui est lobjet des chapitres 7, 8 et 9, va invitablement devenir le protocole dchange utilispour communiquer avec les services Web, bien quen principe il ne soit pas le seul protocole admis. Lechapitre 7 introduit les fondamentaux du protocole (le format de message, le message derreur, le styledchange message sens unique ) et prsente en outre rapidement la problmatique des chanesdacheminement (routing) : en fait, SOAP est basiquement conu pour permettre dinterposer entrelexpditeur et le destinataire une chane dintermdiaires qui sont, potentiellement, des fournisseurs deservices annexes comme la scurit et la non-rpudiation. Lutilisation dune chane dacheminement resteune possibilit qui peut tre mise en uvre comme une extension propritaire du protocole SOAP(cest loption choisie par Microsoft avec la spcification WS-Routing) en attendant une spcificationdu mcanisme qui puisse aspirer au statut de standard.La dmarche mise en uvre pour les chanes dacheminement est typique de lapproche courante dudveloppement des spcifications des technologies de services Web :

    les spcifications de base (SOAP, WSDL) contiennent un mcanisme standard dextension ; les promoteurs dune technologie de niveau suprieur (par exemple la fiabilit des changes, la

    scurit, les transactions) utilisent les mcanismes standards dextension pour proposer des spci-fications : dans cette phase, on peut assister la parution de plusieurs propositions concurrentes ;

    un acteur institutionnel (W3C, OASIS) est saisi de la tche de btir une norme unifie sur la basedune ou plusieurs propositions concurrentes.

    La troisime tape nest videmment pas automatique, mais rsulte des ngociations conduites encoulisses entre les acteurs technologiques majeurs.Le chapitre 8 prsente le sujet trs controvers du codage des donnes dans un message SOAP.Le sujet est complexe pour plusieurs raisons que nous analysons en dtail dans ce chapitre : les principaux langages de programmations manipulent des structures de donnes partages et

    circulaires (par exemple des graphes dobjets) ;

    =Bernard.Livre Page 5 Mardi, 24. juin 2003 2:19 14

  • Services Web6

    pour pouvoir transfrer ces structures, il faut un mcanisme pour les srialiser dans un fragmentXML, partie dun message SOAP ;

    la reprsentation linaire de ces structures ne peut pas tre dfinie par lutilisation standard dXMLSchema.

    La spcification S