Transcript of 2003 eyrolles - services web avec j2 ee et .net
- 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