2003 eyrolles - services web avec j2 ee et .net

Download 2003   eyrolles - services web avec j2 ee et .net

If you can't read please download the document

Upload: nesrine-attia

Post on 26-Dec-2014

1.051 views

Category:

Documents


49 download

DESCRIPTION

 

TRANSCRIPT

  • 1. Services Web avec J2EE et .NET Conception et implmentations Libero Maesano Christian Bernard Xavier Galles Le
  • 2.
  • 3. 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.
  • 4.
  • 5. DITIONS EYROLLES 61, bd Saint-Germain 75240 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
  • 6. Mise en page : TyPAO Dpt lgal : septembre 2003 N dditeur : 6890 Imprim en France
  • 7. Isabella et Ariele-Paolo Catherine et Guillaume Florence
  • 8. 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 accompagns dencouragements sympathiques, nous ont t bien utiles. videmment, la responsabilit du contenu de 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 son impact sur les systmes dinformation nous ont permis de bncier de sa comptence et de son exprience pour conforter ou adapter notre point de vue. Claude Amenc a ds le dbut encourag moralement notre projet et uvr pour le dveloppement des services Web lorsque la signication 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 ?) enthousiaste et volontaire. Elle nous a soutenus sans faille tout au long de la tche, qui sest nalement rvle dune ampleur suprieure aux prvisions. En plus du professionnalisme, toute lquipe dEyrolles, et notamment Muriel, Anne Garcia et Sophie Hincelin, a fait preuve de beaucoup de gentillesse et de patience avec des auteurs pas toujours lheure. Enn, nos familles ont support stoquement les soires, dimanches et vacances que nous avons passs sur les claviers : cet ouvrage leur est ddi. Christian Bernard Xavier Legalles Libero Maesano
  • 9. 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 PREMIRE PARTIE Larchitecture oriente services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 CHAPITRE 2 Le contrat de service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 La relation de service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les lments du service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les rles de client et de prestataire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 20 23 Le contrat de service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les lments du contrat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Acteurs humains et agents logiciels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 27 Identication des parties, description des fonctions et de linterface . . . 29 Identication des parties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Description des fonctions du service . . . . . . . . . . . . . . . . . . . . . . . . . . . . Quel modle de service ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 25 31
  • 10. IV Services Web Le modle dimplmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le modle fonctionnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 34 Description de linterface du service . . . . . . . . . . . . . . . . . . . . . . . . . . . . Linterface abstraite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Protocoles de conversation et processus mtier abstraits . . . . . . . . . . . . . Limplmentation de linterface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Linterface concrte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La liaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dsignation des ports de rception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chanes dacheminement (routing) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 38 42 44 45 48 49 50 CHAPITRE 3 La qualit de service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 La qualit de service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Primtre de la prestation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Qualit de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Scurit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Robustesse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gestion du service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gestion du changement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La gestion du contrat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Les termes de lchange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Services payants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Services troqus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Services mixtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le contrat est un modle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modle descriptif et modle directif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Architecture oriente services et services Web . . . . . . . . . . . . . . . . . . . . . Spcications dinterface et contrats types . . . . . . . . . . . . . . . . . . . . . . . . 54 55 56 59 77 78 79 79 80 81 81 81 81 82 84 93 CHAPITRE 4 Architectures dynamiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Conception darchitectures orientes services . . . . . . . . . . . . . . . . . . . . Lapproche par agrgation de services . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lapproche par dissmination de services . . . . . . . . . . . . . . . . . . . . . . . . . Combinaison des approches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 96 98 102
  • 11. Table des matires Les architectures orientes services dynamiques . . . . . . . . . . . . . . . . . Niveau de conguration dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Relation entre degr de couplage et niveau de conguration dynamique . Le cycle de mise en uvre dune relation de service . . . . . . . . . . . . . . . . V 102 104 104 105 Les niveaux de conguration dynamique . . . . . . . . . . . . . . . . . . . . . . . . La conguration dynamique niveau 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . La conguration dynamique niveau 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . La conguration dynamique niveau 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Intermdiation lexcution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ngociation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 110 111 115 119 121 DEUXIME PARTIE Technologies des services Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 CHAPITRE 5 Fondations des services Web Les protocoles Internet . . . 129 URI, URL, URN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntaxe dun URI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . URN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 130 132 MIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description dun message MIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 HTTP 1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prsentation gnrale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description dun message HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exemple de dialogue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 SMTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transmission dun message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description du message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Commandes SMTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les protocoles SSL et TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Introduction la scurit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prsentation gnrale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les mthodes de chiffrement (cipher) . . . . . . . . . . . . . . . . . . . . . . . . . . . Le protocole de ngociation (handshake) . . . . . . . . . . . . . . . . . . . . . . . . . 132 134 135 141 143 144 144 145 146 146 147 148 149
  • 12. VI Services Web Annexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le modle de rfrence OSI de lISO . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le modle darchitecture rseau TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . Les spcications de standards Internet (RFC) . . . . . . . . . . . . . . . . . . . . . Dnition de termes et organisation de la communaut Internet . . . . . . . 150 150 153 156 156 CHAPITRE 6 Fondations des services Web Les technologies XML . . . . 159 XML 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rappel des rgles de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Un document XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 159 160 XML namespaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lattribut xmlns ou xmlns: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 Xlink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Un peu de vocabulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La syntaxe Xlink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 XML Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lattribut xml:base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 163 164 166 166 XPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les expressions XPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description dun schma XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les composants de dclaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les composants de dnition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les dnitions complmentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 167 172 173 175 180 Linterface DOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le noyau DOM2 XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 Les analyseurs syntaxiques XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 181 CHAPITRE 7 changer avec un service Format du message . . . . . . . . . . . 193 Objets, services, documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XML-RPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 194 195 Les principes du protocole SOAP 1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
  • 13. Table des matires VII La structure de la spcication SOAP 1.1 . . . . . . . . . . . . . . . . . . . . . . . . . 202 Les bases de SOAP 1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 SOAP 1.1 et XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 La structure du message SOAP 1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 Lenveloppe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Len-tte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le corps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 209 218 La gestion des erreurs en SOAP 1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 Le traitement du message en erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le signalement de lerreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Llment erreur (SOAP-ENV:fault) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les types derreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 220 222 225 CHAPITRE 8 changer avec un service Codage des donnes . . . . . . . . . 231 Le style de codage dans les messages SOAP . . . . . . . . . . . . . . . . . . . . . 232 Reprsentation littrale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reprsentation code explicite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reprsentation code implicite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Stratgies de codage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 233 234 234 Les objectifs du style de codage SOAP 1.1 . . . . . . . . . . . . . . . . . . . . . . . 235 Typage dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Srialisation de structures partages et circulaires . . . . . . . . . . . . . . . . . . 236 236 Les bases du style de codage SOAP 1.1 . . . . . . . . . . . . . . . . . . . . . . . . . 236 Le modle de donnes du style de codage SOAP 1.1 . . . . . . . . . . . . . . 238 Les valeurs et les types simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les valeurs simples plurirfrences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les valeurs et les types composites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 242 245 Les pices jointes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 Le paquet SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Libells et rfrences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rsolution des rfrences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 255 262 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
  • 14. VIII Services Web CHAPITRE 9 changer avec un service Liaison et styles dchange . . 265 La liaison SOAP/HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 Le message sens unique SOAP sur HTTP . . . . . . . . . . . . . . . . . . . . . . . La requte/rponse SOAP sur HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le message derreur SOAP sur HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . La requte HTTP pour SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La rponse HTTP pour SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La consommation du message et la gestion des erreurs . . . . . . . . . . . . . . 268 268 269 270 272 274 Lappel de procdure distante (RPC) en SOAP . . . . . . . . . . . . . . . . . . . 283 Lappel bloquant de procdure distante excution synchrone . . . . . . . . La dynamique de lappel bloquant de procdure distante excution synchrone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La mise en uvre du style RPC avec SOAP . . . . . . . . . . . . . . . . . . . . . . . 284 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 285 288 CHAPITRE 10 Dcrire un service avec WSDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 Prcurseurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 Principaux concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 Structure dun document WSDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 Exemple de document WSDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Noms et liens entre fragments de documents . . . . . . . . . . . . . . . . . . . . . . lments de dnition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Liaisons standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 307 310 319 WSDL dans le monde rel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 Outils et ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 Outil WSDL Dynamic Test Client de IONA Technologies . . . . . . . . . . . . Service Web de vrication WSDL GotDotNet . . . . . . . . . . . . . . . . . . . . 332 336 Conclusion : instrumentalisation de la gestion des documents WSDL . . 340 Sites de rfrence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 341 341
  • 15. Table des matires IX CHAPITRE 11 Dcouvrir un service avec UDDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 Les prcurseurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sun Microsystems Jini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hewlett-Packard e-Speak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . UDDI 1.0 et 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La pile de protocoles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les structures de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Laccs lannuaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Linterface de programmation (API) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les URL daccs aux implmentations IBM et Microsoft . . . . . . . . . . . . Les nouveauts introduites par UDDI 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . La recherche dun service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les lments de syntaxe communs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La fonction nd_binding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La fonction nd_business . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La fonction nd_relatedBusinesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La fonction nd_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La fonction nd_tModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La fonction get_bindingDetail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La fonction get_businessDetail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La fonction get_businessDetailExt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La fonction get_serviceDetail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La fonction get_tModelDetail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 343 344 345 346 347 348 349 350 352 354 355 355 358 374 376 379 382 384 386 388 391 CHAPITRE 12 Publier un service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395 La publication et la rplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395 La publication dun service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les fonctions dauthentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les fonctions de cration et de mise jour . . . . . . . . . . . . . . . . . . . . . . . . Les fonctions de suppression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les fonctions de gestion des assertions . . . . . . . . . . . . . . . . . . . . . . . . . . . Les modalits dutilisation des annuaires . . . . . . . . . . . . . . . . . . . . . . . Le modle dinvocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La convention dappel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lutilisation des taxonomies de classication et didentication . . . . . . . La correspondance entre WSDL et UDDI . . . . . . . . . . . . . . . . . . . . . . . . . 396 398 402 416 425 436 436 437 438 439
  • 16. X Services Web Les implmentations dannuaires UDDI . . . . . . . . . . . . . . . . . . . . . . . . Lannuaire public UBR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les implmentations disponibles de lannuaire public . . . . . . . . . . . . . . . Les annuaires privs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les annuaires de tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 441 444 447 Les nouveauts introduites par UDDI 3.0 . . . . . . . . . . . . . . . . . . . . . . . 448 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 440 TROISIME PARTIE Les plates-formes oprationnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451 CHAPITRE 13 Principes de mise en uvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 Les plates-formes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . J2EE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le choix dune plate-forme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Primaut du concept de service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Interoprabilit plutt que portabilit . . . . . . . . . . . . . . . . . . . . . . . . . . . . Support du concept de service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La description (WSDL) dun service comme pivot . . . . . . . . . . . . . . . . Description en tant que spcication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description en tant que documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . Mthodes de dveloppement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WSDL dans la pratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transformer un composant en service . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gnrer un proxy-service partir dune description . . . . . . . . . . . . . . . . . Gnrer un squelette de service partir dune description . . . . . . . . . . . . Gnrer un client de test partir dune description . . . . . . . . . . . . . . . . . . Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 454 456 457 457 458 459 459 459 460 461 463 463 480 484 490 496 CHAPITRE 14 Les plates-formes Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 Principaux acteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IBM : linitiateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hewlett-Packard : le visionnaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 498 498
  • 17. Table des matires Sun Microsystems : un retard inexplicable . . . . . . . . . . . . . . . . . . . . . . . . La communaut Open Source : acclrer le mouvement . . . . . . . . . . . . . Les start-ups : des opportunits saisir . . . . . . . . . . . . . . . . . . . . . . . . . . . Limplmentation SOAP de rfrence : Apache SOAP4J . . . . . . . . . . Analyseur syntaxique XML Xerces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Container Servlets/JSP Tomcat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Serveur SOAP Axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Loffre dIBM : Dynamic e-business . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anne 2001 : annonces de nouveaux produits . . . . . . . . . . . . . . . . . . . . . WebSphere Application Server 4.0 et 5.0 . . . . . . . . . . . . . . . . . . . . . . . . . Eclipse et WebSphere Studio (Application Developer et Site Developer) . . . Anne 2002 : nouvelles spcications et nouveaux produits . . . . . . . . . . Les efforts de normalisation de la communaut Java . . . . . . . . . . . . . Loffre de SUN Microsystems : SUN ONE . . . . . . . . . . . . . . . . . . . . . . . Implmentations de rfrence des JSR . . . . . . . . . . . . . . . . . . . . . . . . . . . JAX Pack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Java Web Services Development Pack (WSDP) . . . . . . . . . . . . . . . . . . . . Java Web Services Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Loffre de BEA systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WebLogic 6.1 et 7.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WebLogic Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ressources dveloppeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Loffre de Hewlett-Packard : Netaction . . . . . . . . . . . . . . . . . . . . . . . . . Netaction : renaissance de e-Speak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HP Web Services 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HP Web Services Registry 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HP Web Services Transactions 1.0 (HP WST) . . . . . . . . . . . . . . . . . . . . . HP Middleware : arrt partiel de l'activit . . . . . . . . . . . . . . . . . . . . . . . . . Loffre de IONA Technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Loffre de Novell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Composer : le serveur dintgration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Workbench : lenvironnement de dveloppement intgr . . . . . . . . . . . . . JBroker : lenvironnement dexcution . . . . . . . . . . . . . . . . . . . . . . . . . . . Loffre dOracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les autres technologies Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The Mind Electric Glue et Gaia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cape Clear : CapeConnect et CapeStudio . . . . . . . . . . . . . . . . . . . . . . . . . XI 499 500 500 501 501 501 502 502 502 503 504 504 505 507 507 508 509 509 510 510 511 512 512 512 513 514 514 514 515 516 517 517 518 518 519 520 521
  • 18. XII Services Web Systinet WASP Server for Java et WASP UDDI . . . . . . . . . . . . . . . . . . . . Bowstreet Business Web Factory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Collaxa Web Service Orchestration Server . . . . . . . . . . . . . . . . . . . . . . . . PolarLake Web Services Express . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AltoWeb Application Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sonic XQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522 524 524 524 525 526 Les prochaines volutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Projet Gaia (The Mind Electric) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Projet Globus (globus.org) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Projet OGSA (globus.org) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526 526 527 527 Sites de rfrence et ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Apache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BEA-WebGain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Borland . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cape Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Divers diteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IONA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Globus Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hewlett-Packard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . JCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Novell (ex-SilverStream) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PolarLake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sun Microsystems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Systinet (ex-Idoox) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The Mind Electric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528 528 528 528 528 528 529 529 529 530 530 530 530 530 531 531 531 CHAPITRE 15 La plate-forme .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533 Le framework .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le CLR (Common Language Runtime) . . . . . . . . . . . . . . . . . . . . . . . . . . La librairie objet (Framework Class Library) . . . . . . . . . . . . . . . . . . . . . . Les langages du framework et C# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ASP.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535 Le dveloppement de services Web avec Microsoft .NET . . . . . . . . . . La gnration dun service Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La gnration dun proxy en C# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536 542 548 550 569 569 580
  • 19. Table des matires XIII Guide de dveloppement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WSE (Web Service Enhancements) 1.0 pour Microsoft.NET . . . . . . . . . 584 592 .NET MyServices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597 CHAPITRE 16 Les implmentations sur le poste de travail . . . . . . . . . . . . . . . . 599 Le behavior Internet Explorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utilisation du behavior WebService . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Services Web en ECMAScript avec Mozilla . . . . . . . . . . . . . . . . . . . . . Utilisation de l'API SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utiliser Microsoft Ofce XP en tant que client SOAP . . . . . . . . . . . . . Dcouverte dun service Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Implmentation du service Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description dtaille du Web Services Toolkit 2.0 . . . . . . . . . . . . . . . . . . Macromedia Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Schma dimplmentation dun service Web . . . . . . . . . . . . . . . . . . . . . . Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Applications Web grand public . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Applications dentreprise (tendue) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le retour sur investissement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600 600 606 606 613 613 615 617 619 620 622 623 623 624 CHAPITRE 17 Le d de linteroprabilit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625 Les tests dinteroprabilit SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SOAP Builders Round I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SOAP Builders Round II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626 627 629 Les tests dinteroprabilit WSDL (et complments SOAP) . . . . . . . SOAP Builders Round III . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SOAP Builders Round IV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SOAP Builders Round V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631 632 632 Les tests dinteroprabilit UDDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633 Les tests dinteroprabilit globaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634 Le consortium industriel WS-I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Objectif de lorganisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Organisation et groupes de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Introduction du concept de prol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634 631 634 636 636
  • 20. XIV Services Web Vers une interoprabilit gnralise . . . . . . . . . . . . . . . . . . . . . . . . . . . Ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sites Internet (points daccs, tests et rsultats) . . . . . . . . . . . . . . . . . . . . Mailing-lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640 640 640 641 642 QUATRIME PARTIE Linfrastructure des services Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645 CHAPITRE 18 Fiabilit des changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les enjeux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La smantique oprationnelle des changes . . . . . . . . . . . . . . . . . . . . . . . Lchange able . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Un problme darchitecture de spcications . . . . . . . . . . . . . . . . . . . . . . HTTPR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les relations entre HTTPR et HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lidentication des serveurs et des canaux . . . . . . . . . . . . . . . . . . . . . . . . Les transactions et les agents HTTPR . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le format de lentit HTTPR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les commandes HTTPR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les transactions internes aux agents HTTPR . . . . . . . . . . . . . . . . . . . . . . Les relations entre HTTPR et le protocole de messagerie able . . . . . . . . Quelques schmas dapplications dHTTPR . . . . . . . . . . . . . . . . . . . . . . . Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WS-Reliability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prsentation gnrale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le modle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les messages et leur structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La liaison SOAP WS-Reliability/HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Avantages et inconvnients des deux approches . . . . . . . . . . . . . . . . . . 647 649 651 652 654 656 656 659 660 661 663 667 670 672 681 681 681 683 686 690 691 691 CHAPITRE 19 Gestion de la scurit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693 Larchitecture et la roadmap de la scurit pour les services Web . . Linfrastructure de scurit pour les services Web . . . . . . . . . . . . . . . . . . 699 701
  • 21. Table des matires Larchitecture des spcications de scurit . . . . . . . . . . . . . . . . . . . . . . . Le dveloppement de linfrastructure de scurit des services Web . . . . . WSS-Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XML Signature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XML Encryption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lentre de len-tte Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les jetons de scurit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les rfrences aux jetons de scurit . . . . . . . . . . . . . . . . . . . . . . . . . . . . La signature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le chiffrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La gestion de la scurit avec WSE .NET . . . . . . . . . . . . . . . . . . . . . . . La gestion des certicats X.509 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lauthentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La signature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le chiffrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Un exemple dinteroprabilit en J2EE et .NET . . . . . . . . . . . . . . . . . Serveur .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Client .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Client et serveur Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctionnement de lexemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exemple dun message SOAP sign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rfrences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Implmentations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XV 703 706 709 710 711 714 715 716 717 718 719 720 721 726 728 730 731 735 743 753 754 757 757 757 758 758 CHAPITRE 20 759 La gestion des transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759 La gestion dtat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les processus mtier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Linfrastructure de gestion de transactions . . . . . . . . . . . . . . . . . . . . . . . . Les limites de la gestion transactionnelle . . . . . . . . . . . . . . . . . . . . . . . . La viabilit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . La conance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les activits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les technologies de services Web appliques aux transactions et activits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Business Transaction Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WS-Coordination et WS-Transaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760 761 762 764 764 765 766 768 768 770
  • 22. XVI Services Web Les protocoles de mtacoordination . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le protocole dactivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le protocole de registration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le rle gnrique de coordinateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . Les protocoles de coordination spciques . . . . . . . . . . . . . . . . . . . . . . Le protocole de coordination des transactions . . . . . . . . . . . . . . . . . . . Le protocole bilatral de terminaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le protocole bilatral de terminaison avec acquittement . . . . . . . . . . . . . Le protocole bilatral de conrmation en deux tapes . . . . . . . . . . . . . . . Le protocole bilatral dtape zro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le protocole bilatral de notication dissue . . . . . . . . . . . . . . . . . . . . . . . Les relations entre les protocoles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le protocole de coordination des activits . . . . . . . . . . . . . . . . . . . . . . . La cration dun contexte de coordination dactivit . . . . . . . . . . . . . . . . Les protocoles bilatraux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Le pilotage dune tche transactionnelle . . . . . . . . . . . . . . . . . . . . . . . . . . Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 774 774 779 782 783 783 786 787 787 791 792 792 795 797 797 802 804 CHAPITRE 21 Gestion des processus mtier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807 Spcications initiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 809 Nouvelles spcications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 810 Effervescence dans le monde du BPM . . . . . . . . . . . . . . . . . . . . . . . . . . 811 Services Web, processus mtier, orchestration et chorgraphie . . . . . Processus mtier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Orchestration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chorgraphie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Positionnement des spcications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modlisation de la gestion des processus mtier . . . . . . . . . . . . . . . . . . . . Principales spcications en prsence . . . . . . . . . . . . . . . . . . . . . . . . . . . BPEL4WS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BPML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WSCI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WSCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WSFL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XLANG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vers une entreprise toujours plus tendue . . . . . . . . . . . . . . . . . . . . . . . 813 813 814 814 815 815 817 817 823 825 827 831 831 832
  • 23. Table des matires Sites de rfrence et ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Organisations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Spcications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . diteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Produits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XVII 833 833 834 835 835 836 837 837 CINQUIME PARTIE tudes de cas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 839 CHAPITRE 22 Scnarios d'architectures Implmentation des clients . . . 841 Scnario n1 (architecture statique implmentation Java) . . . . . . . Systme existant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nouveau systme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Implmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Constat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843 Scnario n2 (architecture dynamique implmentation Java) . . . . volution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nouveau systme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Implmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Constat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863 843 845 845 862 864 864 865 874 Scnario n3 (architecture dynamique implmentation .NET) . . . . volution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nouveau systme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Implmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Constat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 875 Scnario n4 (architecture en processus mtier) . . . . . . . . . . . . . . . . . . volution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nouveau systme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Implmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Constat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 880 881 881 881 897 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898 876 876 876 880
  • 24. XVIII Services Web CHAPITRE 23 Architecture statique Implmentation des services Java Implmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Produits utiliss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Apache Tomcat 4.1.12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sun Microsystems SDK Standard Edition 1.4.1 . . . . . . . . . . . . . . . . . . . . Apache SOAP 2.3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sun Microsystems JavaMail 1.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sun Microsystems JavaBeans Activation Framework 1.0.2 . . . . . . . . . . . Apache Axis 1.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Microsoft behavior WebService 1.0.1.1120 . . . . . . . . . . . . . . . . . . . . . . . Paramtrage des produits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dveloppement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Application Web de SW-Voyages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie serveur de lapplication Web de SW-Voyages . . . . . . . . . . . . . . . . . Applications Web des partenaires de SW-Voyages . . . . . . . . . . . . . . . . . . Partie serveur de lapplication Web des partenaires de SW-Voyages . . . . 901 901 901 902 902 902 902 903 903 903 903 907 908 908 918 919 CHAPITRE 24 Architecture dynamique (UDDI) Implmentation Java . . . . 925 Implmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Produits utiliss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The Mind Electric GLUE Professional 3.1 . . . . . . . . . . . . . . . . . . . . . . . . 925 Paramtrage des produits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dveloppement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Publication des modles et services destination de lannuaire UDDI . . Application Web de SW-Voyages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie serveur de l'application Web de SW-Voyages . . . . . . . . . . . . . . . . . Applications Web des partenaires de SW-Voyages . . . . . . . . . . . . . . . . . . Partie serveur de l'application Web des partenaires de SW-Voyages . . . . . 925 926 926 936 936 949 950 954 954 CHAPITRE 25 Architecture dynamique (UDDI) Implmentation .NET . . . . 955 Implmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Produits utiliss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Microsoft Internet Information Server (IIS) 5.0 . . . . . . . . . . . . . . . . . . . . 955 955 956
  • 25. Table des matires XIX Microsoft Visual Studio.NET 7.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Microsoft UDDI.NET SDK 1.76 bta . . . . . . . . . . . . . . . . . . . . . . . . . . . . 956 956 Paramtrage des produits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 956 Dveloppement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Application Web de SW-Voyages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Migration de lapplication Web de SW-Voyages vers le framework .NET Applications Web des partenaires de SW-Voyages . . . . . . . . . . . . . . . . . . Partie serveur de l'application Web des partenaires de SW-Voyages . . . . 957 957 957 973 973 CHAPITRE 26 Architecture en processus mtier (BPEL) . . . . . . . . . . . . . . . . . . . 975 Implmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 975 Produits utiliss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Apache Tomcat 4.1.12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Collaxa BPEL Orchestration Server 2.0 bta 4 . . . . . . . . . . . . . . . . . . . . . Microsoft behavior WebService 1.0.1.1120 . . . . . . . . . . . . . . . . . . . . . . . Sun Microsystems SDK Standard Edition 1.4.1 . . . . . . . . . . . . . . . . . . . . 976 976 976 977 977 Paramtrage du serveur Collaxa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977 Dveloppement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Orchestration du processus de rservation . . . . . . . . . . . . . . . . . . . . . . . . 978 978 Application Web de SW-Voyages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie serveur de l'application Web de SW-Voyages . . . . . . . . . . . . . . . . . Applications Web des partenaires de SW-Voyages . . . . . . . . . . . . . . . . . . Partie serveur de l'application Web des partenaires de SW-Voyages . . . . 984 1004 1005 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015 982 SIXIME PARTIE Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1017 Les services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1020 Lagrgation de services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1021 La question de linfrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1024 Le contrat de service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1025 La pratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1029
  • 26. XX Services Web SEPTIME PARTIE Annexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1031 Glossaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1033 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1041
  • 27. Avant-propos Quel est lobjectif de louvrage ? La premire ambition de cet ouvrage est de fournir au lecteur une prsentation approfondie des technologies de services Web et de leurs implmentations en J2EE et .Net. Louvrage couvre les technologies de base (SOAP, WSDL, UDDI), les technologies dinfrastructure (lchange able, la scurit, les transactions) et la gestion des processus mtier. La prsentation est la fois thorique et pratique. Dun ct, les spcications sont expliques et commentes en dtail. Lide est dessayer de faire comprendre la logique architecturale qui lie lensemble, mais aussi les raisons des diffrents choix techniques effectus par les auteurs des spcications : ces choix sont parfois de lordre du dtail mais ils ont des consquences importantes sur la mise en uvre des services Web. Dun autre ct, louvrage prsente la mise en uvre des technologies de services Web dans diffrents 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 aussi Internet Explorer, Mozilla, Ofce XP, Flash). La prsentation est toujours agrmente dexemples et la dernire partie de louvrage dcrit une tude de cas, au contenu fonctionnel intuitif, dcline en plusieurs variantes en termes darchitecture technique et dimplmentation, qui dmontrent les diffrentes 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 disponibles en 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 services Web, plusieurs implmentations concurrentes disponibles (J2EE, .Net, autre plate-forme). Cependant, maintenir une position de neutralit en traitant des plates-formes dimplmentation a t une de nos principales proccupations et nous avons essay de garder, dans la mesure du possible, un quilibre entre les implmentations sur les diffrentes plates-formes. Par exemple, pour linterface programmatique UDDI, cest limplmentation en Java qui est prsente, tandis que limplmentation de la scurit est prsente essentiellement en .Net (C#). Lavantage (et lobjectif) essentiel des technologies de services Web tant linteroprabilit, nous lavons dmontr dans maints cas par la mise en uvre de plusieurs exemples et de variantes de ltude de cas sur des plates-formes mixtes. Linteroprabilit empiriquement vriable est aussi une dmonstration concrte du dcouplage entre une architecture de services Web et son implmentation logicielle, cette dernire tant banalise et interchangeable.
  • 28. XXII Services Web La deuxime ambition de cet ouvrage est de prsenter concrtement les technologies de services Web comme le support dlection du modle mergent de larchitecture oriente services. Nous sommes convaincus que les technologies des services Web vont devenir un vecteur de changement et dautomation des processus mtier intra et interentreprises. Elles vont aussi changer les pratiques et le positionnement des professionnels de linformatique, lintrieur des organisations et sur le march. Nous ne nous hasardons pas traiter les consquences socio-conomiques de ladoption de la technologie qui fait lobjet de cet ouvrage. En revanche, nous essayons de montrer, par la pratique, larchitecture oriente services comme un nouveau paradigme qui implique un changement dapproche de la part des informaticiens : changement dans la relation avec les utilisateurs mais aussi changement dans la manire de penser, concevoir, dvelopper, dployer et exploiter les logiciels et les systmes rpartis. Pour mettre en vidence le nouveau paradigme, la premire partie de louvrage est consacre une prsentation circonstancie du modle de larchitecture oriente services. La deuxime partie prsente les technologies de base (SOAP, WSDL, UDDI). La troisime partie expose les diffrentes plates-formes dimplmentation (J2EE, .Net, autre). La quatrime partie approfondit les spcications et les implmentations des technologies dinfrastructure (abilit de lchange, scurit, gestion des 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 implment par agrgation de diffrents services de rservation), dclin en plusieurs variantes : dune architecture quasi-statique la mise en uvre en processus mtier BPEL, en passant par des architectures dynamiques 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 charge de services valeur ajoute ; aux tudiants des coles dingnieurs et universitaires, qui recherchent une rfrence sur ce type darchitectures.
  • 29. 1 Introduction La premire difcult laquelle on se heurte lorsquon aborde le vaste sujet des technologies de services Web est dordre terminologique. Un exemple, dsormais bien connu, du dsordre terminologique est le vrai faux acronyme SOAP, qui signierait Simple Object Access Protocol , alors quil dsigne un protocole dchange entre applications rparties o il nest nulle part question daccder des objets . Le dbat a nalement t tranch par le W3C, qui a dautorit supprim la forme dveloppe du terme SOAP , dont il a simplement fait un nom propre. Les difcults 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 au ICT World Forum (http://idg.net/ic_1211529_9677_1-5041.html) dit propos des services Web quil nest absolument pas question de services ni de Web , mais que la dnomination la plus approprie serait 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 que les deux termes juxtaposs font penser des services pour le public et les professionnels, pourvus par des sites Web, ce qui est droutant par rapport au concept de services Web. Tous ceux qui, comme les auteurs, ont anim des confrences et des prsentations sur le sujet peuvent tmoigner de la difcult articuler les messages les plus simples en raison de lusage dtourn de ces termes. Par exemple, il faut rappeler sans cesse le fait que cette technologie prside lchange direct des applications entre elles sans la participation ni lintermdiation des utilisateurs. Cela dit, mme si la proposition de George Colony a lavantage dtre claire, nous ne sommes pas entirement 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 mme produit. Or, il ny a pas de produit dployer, mais plutt des spcications de langages de description (comme WSDL) et de protocoles dinteraction (comme SOAP) que chacun peut
  • 30. 2 Services Web implmenter, dans son environnement technique, par des composants logiciels standards ou bien spciques, propritaires ou bien ouverts. Cest la conformit aux spcications de ces composants qui permet linteroprabilit des applications, objectif primaire de la technologie des services Web, et le middleware en question, autant quon puisse lappeler ainsi, est donc mis en uvre par linteraction 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 des services Web larchitecture oriente services. Larchitecture oriente services est un concept et une approche de mise en uvre des architectures rparties centre sur la notion de relation de service entre applications et sur la formalisation de cette relation dans un contrat. Larchitecture oriente services est en principe un concept indpendant de la technologie des services Web, mais cette dernire reprsente dsormais son plus important moyen dimplmentation et fournit la base technologique pour sa diffusion sur une chelle jamais exprimente auparavant. Le langage WSDL (Web Services Description Language) en est la technologie pivot qui reprsente le noyau extensible 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 le terme va rapidement se banaliser comme un nom propre (si ce nest pas dj fait). Par ailleurs, nous utiliserons aussi le terme de service Web pour dsigner une application qui joue le rle de prestataire dans 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 implmentations en J2EE et .Net, tout en offrant un approfondissement des problmes fondamentaux poss par leur dploiement et leur volution, avec la cl des exemples dapplication et une tude de cas dont limplmentation est dcline en plusieurs variantes. Louvrage, outre cette introduction et une conclusion est organis en vingt-cinq chapitres regroups en cinq parties. La premire partie (chapitres 2, 3 et 4) traite de larchitecture oriente services. La deuxime partie (chapitres 5, 6, 7, 8, 9, 10, 11 et 12), aprs un rappel des technologies Internet et XML, 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 composants disponibles 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 lchange able, 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 plusieurs architectures conguration statique et dynamique, sur plate-forme Java et .Net, ainsi que lapplication du langage de scnarios de processus mtier BPEL. Nous pensons que la matire traite est sufsante pour donner au lecteur une vision la fois large et approfondie de larchitecture oriente services et de la technologie des services Web. Par ailleurs, le dveloppement de la technologie des services Web avance grands pas et touche des domaines et des sujets qui ne sont pas traits dans cet ouvrage pour des questions despace et dunit duvre. Le chapitre de conclusion voque les axes centraux de consolidation et de dveloppement futur des services Web, et quelques ides dexploration sur des sujets non traits.
  • 31. Introduction 3 Larchitecture oriente services Nous 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 terminologie utilis dans la suite de louvrage. La technologie des services Web est donc prsente comme le moyen dimplmentation des architectures orientes services. La premire partie fournit la cl de lecture qui permet de comprendre la position et le rle fonctionnel des diffrents modules technologiques prsents dans la deuxime et la quatrime partie, ainsi que des implmentations prsentes en troisime partie. Le chapitre 2 introduit le concept darchitecture oriente services. Il introduit la relation de service et les rles de clients et de prestataires jous par les applications participantes. Il est important de noter que nous avons choisi le terme prestataire pour marquer une diffrence avec la terminologie des architectures client/serveur, qui ne sont quune forme spcique et limite des architectures client/prestataire. Il introduit galement la notion de contrat, lequel formalise les engagements du prestataire 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 diffrence entre les fonctions et linterface du service : la description des fonctions est une description abstraite de la prestation de services, tandis que linterface est une description des mcanismes et des protocoles de communication avec le prestataire de services. Naturellement, la comprhension du lien entre linterface et les fonctions dun service est capitale. Le problme de la formalisation de ce lien na pas encore de solution satisfaisante aujourdhui, tout au moins lchelle o ce problme est pos par la diffusion des technologies des services Web. Si la description fonctionnelle est abstraite et indpendante de limplmentation du prestataire, la description de linterface stend jusquaux dtails concrets comme les protocoles de transport des messages 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, abilit, disponibilit, continuit, scurit, exactitude, prcision La formalisation et la prise en charge explicite dengagements de qualit de service est de faon gnrale encore insufsamment, voire pas du tout, traite dans le cadre des technologies des services Web. La qualit de service va prendre une importance croissante avec la diffusion darchitectures orientes services de plus en plus larges et dynamiques. Les engagements de qualit de service vont constituer un facteur de diffrentiation importante entre les prestataires fournissant 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 en uvre concrte des applications clientes et prestataires agissant en conformit avec le contrat. Il tablit notamment la relation entre les diffrentes parties du contrat et les langages et protocoles des technologies de services Web. Par ailleurs, lors de la prsentation (dans les chapitres 2, 3 et 4) de chaque lment du contrat, quil soit fonctionnel, dinterface ou oprationnel, louvrage renvoie
  • 32. 4 Services Web systmatiquement la technologie de services Web cense dcrire formellement lengagement contractuel ou bien le mettre en uvre. Le chapitre 4 traite des architectures orientes services conguration dynamique. Pour introduire le sujet, il prsente tout dabord deux gures de la dmarche de conception et de mise en uvre de larchitecture oriente services : lagrgation de services ; la dissmination de services. Lagrgation est la ralisation dun service qui intgre, pour raliser sa prestation, les rsultats des prestations dautres services. La dissmination est, linverse, la mise en uvre sous forme de services modulaires des fonctions dune application monolithique. La conception dune architecture oriente services est en gnral le rsultat de la combinaison de ces deux dmarches. Laspect dynamique de la conguration de larchitecture nest ni secondaire ni accessoire, mais bien au cur mme du concept darchitecture oriente services (ce qui nempche pas par ailleurs de mettre en uvre des architectures orientes services totalement statiques). Dans une architecture dynamique, les services qui la composent, les applications prestataires qui interviennent, ainsi quun certain nombre de proprits oprationnelles des prestations de services ne sont pas dnis avant sa mise en place, mais sont composs, congurs, tablis, voire ngocis, au moment de lexcution. Ce processus peut tre itratif : il est possible de recongurer une architecture dynamique la vole lors de son fonctionnement normal, ou bien loccasion dun dysfonctionnement. Avec les technologies de services Web disponibles actuellement, on peut notamment tablir des architectures 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 plusieurs scnarios darchitectures doues de niveaux diffrents de capacit de conguration dynamique. Les technologies des services Web La 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 quun autre standard de middleware, un nouveau concurrent de DCOM ou de CORBA. linverse, certains fournisseurs qui ont un parc important de produits propritaires installs prtendent que, sur des rseaux locaux ou propritaires, il est possible de dployer des architectures de services Web qui nutilisent pas de protocoles de communication Internet, mais des middlewares patrimoniaux. Cette mouvance dnit un service Web comme une application dont linterface est dcrite par un document WSDL, indpendamment de la technologie de middleware utilise pour interagir avec elle. En revanche, le dploiement de ces mmes architectures sur Internet impose lutilisation de protocoles Internet et notamment dHTTP, qui se dtache aujourdhui comme le premier protocole de transport pour la communication avec les services Web. Le chapitre 5 rappelle les fondamentaux des concepts
  • 33. Introduction 5 et protocoles Internet (URI et URL, HTTP, SMTP, MIME, SSL, TLS) ainsi que le modle de rfrence en sept couches OSI de lInternational Standard Organisation. Le chapitre 6 est un rappel indispensable de ce que sont XML et les technologies connexes comme XML Namespaces, Xlink, Xpath, XML Base, XML Schema et DOM. Les technologies XML constituent une vritable fondation pour les technologies de services Web : XML est la base du format de message SOAP et du langage de description WSDL. XML Namespaces et XML Schema sont particulirement utilises par les services Web. XML Namespaces est loutil de gestion des versions et permet de grer sans conit lassemblage et lextension de technologies et dapplications dorigines diffrentes. Quant XML Schema, il est spci demble comme seul outil de dnition de formats XML dans les services Web. Les DTD nont pas cours dans le monde des services Web : il est mme explicitement interdit, par exemple, de vhiculer une DTD comme partie dun message SOAP. Ces rappels sont faits avec le simple objectif dpargner au lecteur, qui a dj une certaine familiarit avec la matire, la ncessit de quitter louvrage pour un rappel rapide ou un renseignement ponctuel et 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 utilis pour communiquer avec les services Web, bien quen principe il ne soit pas le seul protocole admis. Le chapitre 7 introduit les fondamentaux du protocole (le format de message, le message derreur, le style dchange message sens unique ) et prsente en outre rapidement la problmatique des chanes dacheminement (routing) : en fait, SOAP est basiquement conu pour permettre dinterposer entre lexpditeur et le destinataire une chane dintermdiaires qui sont, potentiellement, des fournisseurs de services annexes comme la scurit et la non-rpudiation. Lutilisation dune chane dacheminement reste une possibilit qui peut tre mise en uvre comme une extension propritaire du protocole SOAP (cest loption choisie par Microsoft avec la spcication WS-Routing) en attendant une spcication du mcanisme qui puisse aspirer au statut de standard. La dmarche mise en uvre pour les chanes dacheminement est typique de lapproche courante du dveloppement des spcications des technologies de services Web : les spcications de base (SOAP, WSDL) contiennent un mcanisme standard dextension ; les promoteurs dune technologie de niveau suprieur (par exemple la abilit des changes, la scurit, les transactions) utilisent les mcanismes standards dextension pour proposer des spcications : 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 unie sur la base dune ou plusieurs propositions concurrentes. La troisime tape nest videmment pas automatique, mais rsulte des ngociations conduites en coulisses 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) ;
  • 34. 6 Services Web pour pouvoir transfrer ces structures, il faut un mcanisme pour les srialiser dans un fragment XML, partie dun message SOAP ; la reprsentation linaire de ces structures ne peut pas tre dnie par lutilisation standard dXML Schema. La spcication SOAP 1.1 propose un mcanisme de codage dont le rsultat peut tre valid par un analyseur syntaxique XML standard mais demande la mise en uvre dun mcanisme spcique capable de reconstruire la structure partage ou circulaire en mmoire. La discussion dans la communaut est trs vive : lorganisme de validation dinteroprabilit des implmentations des technologies des services Web (WS-I) interdit, pour cause de dfaut dinteroprabilit, lutilisation du mcanisme de srialisation (dit style de codage SOAP) car il nest pas mis en uvre de faon homogne, et dans la spcication SOAP 1.2 (qui nest pas encore adopte comme recommandation par le W3C) la mise en uvre du style de codage est considre comme optionnelle. Le codage permettant la srialisation/dsrialisation de structures partages ou circulaires est cependant ncessaire pour coller aux applications patrimoniales des interfaces de services Web sans modier leurs API (Application Programming Interface), car ces dernires prsentent parfois des invocations de mthodes et des procdures vhiculant par valeur des structures de ce type. Le chapitre 8 prsente par ailleurs la spcication contenue dans la note W3C SOAP Messages with Attachments qui permet dinclure dans la mme requte ou rponse HTTP un message SOAP et des objets binaires (images, documents pdf, documents Word) considrs comme des pices jointes, tout en permettant de rfrencer ces pices de lintrieur du message. Nous ne prsentons pas la spcication concurrente (DIME) dorigine Microsoft, qui est postrieure mais semble rester conne dans le monde Microsoft. Le chapitre 9 dcrit plus en dtail les styles dchange propres au protocole SOAP. En fait, SOAP propose deux styles dchange : le message sens unique et la requte/rponse. Le deuxime style ne peut tre mis en uvre que sur un protocole de transport bidirectionnel comme HTTP, savoir sur un protocole de transport qui se charge lui-mme de la corrlation entre la requte et la rponse. La corrlation entre messages transfrs par des protocoles unidirectionnels (comme SMTP) peut bien entendu tre ralise, mais via des extensions, savoir lutilisation didentiants de messages contenus dans len-tte. Le chapitre 9 dcrit la liaison SOAP/HTTP, cest--dire lensemble des rgles quil faut respecter pour transfrer correctement des messages SOAP via le protocole HTTP. La prsentation de la liaison permet galement dintroduire la problmatique de lasynchronisme dans lenvoi et le traitement des messages. Le style dchange requte/rponse en SOAP se dcline en deux variantes : le style document et le style rpc. Dans le style document, la requte et la rponse SOAP nont pas une structure diffrente de celle dun message SOAP standard. En style rpc, la requte et la rponse ont une structure particulire qui permet dutiliser le message et le protocole SOAP pour srialiser lappel et le retour dappel de procdure distante. Le style rpc est notamment indispensable pour exposer comme interface de service Web lAPI dune application patrimoniale avec un minimum deffort. Le chapitre 10 prsente WSDL (Web Services Description Language). WSDL est loutil pivot de la technologie des services Web car il permet vritablement de donner une description dun service Web indpendante de sa technologie dimplmentation. Les traits principaux du langage sont prsents via
  • 35. Introduction 7 lexemple dun des services Web les plus populaires : laccs programmatique par SOAP au moteur de recherche Google (http://www.google.com/apis). Un document WSDL joue le rle dembryon de contrat de service et reprsente donc le document de rfrence pour les quipes ct client et ct prestataire . Il joue en outre un rle technique pivot car il peut tre : gnr automatiquement partir dune application par des outils souvent intgrs aux environnements de dveloppement ; dans ce cas, la formalisation du service drive directement de la concep