Archifecfure des Services Web Introduction uu Services Web-Z Les services web : premire upproche Le Iunguge XML Les services web : vue d'ensembIe Les services Les services web web : premire upproche : premire upproche Le Iunguge XML Le Iunguge XML Les services Les services web web : vue d'ensembIe : vue d'ensembIe Archifecfure des Services Web Introduction uu Services Web-3 Les services web : premire upproche Le Iunguge XML Les services web : vue d'ensembIe Les services Les services web web : premire upproche : premire upproche Le Iunguge XML Le Iunguge XML Les services Les services web web : vue d'ensembIe : vue d'ensembIe Snse : urchitecture rpurties Historique Principes de buse Archifecfure des Services Web Introduction uu Services Web-4 Snse Snse : urchitectures rpurties : urchitectures rpurties Aujourd'hui, I'informofique d'enfreprise esf resoIumenf reporfie Lo fechnoIogie cIienf/serveur rend direcfemenf occessibIes oux consommofeurs, Ies informofions defenues por Ies fournisseurs Por exempIe, une bonque de depf offre ses cIienfs, Io possibiIife de consuIfer Ieurs compfes por divers moyens : MobiIe (Wop-WmI) Infernef (Hffp-HfmI) MinifeI CeIo impIique une orchifecfure odopfofive ef ouverfe Une mme oppIicofion de froifemenf (i.e. gesfion du compfe) PIusieurs oppIicofions de mise en forme suivonf Ie conoI de communicofion (i.e. offichoge en WML, en HTML, ...) Archifecfure des Services Web Introduction uu Services Web- Snse Snse : urchitectures rpurties : urchitectures rpurties De Io mme foon, cerfoines informofions ou donnees peuvenf fre pubIiees pour d'evenfueIs porfenoires ofin de commercioIiser de nouveoux produifs finonciers Ceffe nouveIIe oppIicofion vocofion 8Z8 s'oppuie sur Ies oppIicofions de froifemenf exisfonfes On porIe oIors d'ogregofion oppIicofive qui repose sur I'usoge, Io combinoison d'oppIicofions exisfonfes. Archifecfure des Services Web Introduction uu Services Web- Snse Snse : urchitectures rpurties : urchitectures rpurties L'exempIe Ie pIus iIIusfre d'orchifecfure ogregee nous esf fournif por I'ogence de voyoge. En effef, un produif voyoge esf en reoIife une combinoison de pIusieurs produifs : 0esfion de reservofion des biIIefs de fronsporf 0esfion de reservofion des hfeIs 0esfion de reservofion des voifures de Iocofion ... L'eIoborofion d'un produif voyoge esf bien Ie resuIfof d'informofions recuperees ouprs de differenfs fournisseurs : Compognies oeriennes Chones hofeIIires Loueurs de vehicuIes ... Archifecfure des Services Web Introduction uu Services Web-7 Snse Snse : urchitectures rpurties : urchitectures rpurties AppIicution Web Service ProfiI CIient Service rservution h5teI Service rservution voiture Service rservution biIIet CIient Archifecfure des Services Web Introduction uu Services Web- Snse Snse : urchitectures rpurties : urchitectures rpurties Sur Ie schemo precedenf, I'oppIicofion consuIfee por Ie cIienf mef en uvre des oppIicofions reporfies pour sofisfoire so demonde Dons ceffe mise en uvre oppIicofive, on porIe : De fronsformofion, Iorsqu'iI s'ogif d'odopfer Ie dioIogue en foncfion du profiI ufiIisofeur D'ogregofion, Iorsqu'iI s'ogif de foire oppeI des oppIicofions proposees por des porfenoires ou fournisseurs Que ce soif de I'ogregofion ou de Io fronsformofion d'informofions, Ies oppIicofions reoIisonf ces fches de foon compIfemenf oufomofique ef opoque s'oppeIIenf des services web . Archifecfure des Services Web Introduction uu Services Web-9 Snse Snse : urchitectures rpurties : urchitectures rpurties Une oppIicofion web communiconfe resuIfe oIors d'un ossembIoge de services web. Cerfoins sonf infernes ef d'oufres exfernes ef fournis por divers porfenoires ef fournisseurs Les deux exfremifes de cef ossembIoge sonf : Le fouf inferne : enfiremenf compose de services infernes, on porIe oIors d'infegrofion d'oppIicofions d'enfreprise ou EAI Le fouf exferne : enfiremenf compose de services exfernes, on porIe oIors de porfoiI d'enfreprises. Archifecfure des Services Web Introduction uu Services Web-10 Historique Historique Mois qu'esf-ce qui differencie un service web d'une oppIicofion disfonfe frodifionneIIe 7 L'hisfoire des orchifecfures reporfies esf poncfuee d'evoIufions Iiees oux : profocoIes d'echonges ef d'occs (Corbo, DCOM, PMI) Iongoges d'impIemenfofion (C++, Jovo, SmoIIfoIk, efc.) inferfoces (d'inferocfion ef de presenfofion) Ces evoIufions sonf foujours pIus riches, pIus sophisfiquees, ef souvenf pIus compIexes EIIes imposenf de foif, des configurofions cIienfes suffisommenf robusfes opfes recevoir de feIIes orchifecfures Archifecfure des Services Web Introduction uu Services Web-11 Historique Historique A confrorio, Ie web impose des moyens de communicofion beoucoup pIus sommoires : debif pIus foibIe corocferisfiques profocoIoires de HTTP bien inferieures Corbo ou PMI inferocfion ef presenfofion bien moins riches (hfmI) Les configurofions cIienfs sonf frs Iegres (un simpIe novigofeur) Aujourd'hui, Ie profocoIe du web esf universeIIemenf mis en uvre. Le profocoIe du web devienf Ie moyen d'echonge inconfournobIe ds Iors que I'on desire inferogir ovec oufrui (fonf en inferne qu'en exferne) Archifecfure des Services Web Introduction uu Services Web-1Z Historique Historique Lo quesfion essenfieIIe esf de sovoir si I'on peuf combiner : Les corocferisfiques des orchifecfures disfribuees comme corbo ou rmi. Ce fype d'orchifecfure esf devenue indispensobIe pour repondre oux besoins en ferme compIexife des oppIicofions d'enfreprise Les confroinfes imposees por Ie web, sovoir : cIienf Ieger ef souvenf reduif un simpIe novigofeur mise en uvre du profocoIe HTTP Les services web permeffenf d'offeindre cef objecfif Archifecfure des Services Web Introduction uu Services Web-13 Principes de buse Principes de buse Le modIe des services web repose sur Ie fronsporf d'une demonde de service enfre un cIienf ef un serveur. Le fronsporf esf ossure por Io suife de profocoIes infernef/web consfifuee de TCP/IP ef HTTP cIient serveur chunge support pur HTTP Archifecfure des Services Web Introduction uu Services Web-14 Principes de buse Principes de buse HTTP ne soif fronsporfer que du fexfe (Ies poges HTML) Les echonges (requfes ef reponses) enfre Ie cIienf ef Ie serveur sonf donc ou formof fexfe Le formof fexfe (represenfofion de bose porfobIe sur foufe pIofe- forme, ou codoge de corocfres prs) de represenfofion des informofions esf XML Les messoges fronsporfes sonf donc ou formof XML cIient serveur Messuges XML Archifecfure des Services Web Introduction uu Services Web-1 Principes de buse Principes de buse Les services web moferioIise deux percepfions dons I'evoIufion des orchifecfures. Pussuge du web cIient uu web muchines Adopfofion des orchifecfures disfribuees ou monde Web Web UtiIisuteur cuructris pur : Nuviguteur HTML Contenu dynumique sur Ie serveur Web muchine cuructris pur : Communicution directe entre uppIicutions Archifecfure des Services Web Introduction uu Services Web-1 Principes de buse Principes de buse Les services web moferioIise deux percepfions dons I'evoIufion des orchifecfures. Possoge du web cIienf ou web mochines Aduptution des urchitectures distribues uu monde Web Architectures distribues suvoir : RPC RMI Corbu DCOM JRMP Nouveuu contete suvoir : Web {HTTP} XML Archifecfure des Services Web Introduction uu Services Web-17 Les services web : premire upproche Le Iunguge XML Les services web : vue d'ensembIe Les services Les services web web : premire upproche : premire upproche Le Iunguge XML Le Iunguge XML Les services Les services web web : vue d'ensembIe : vue d'ensembIe Limites de HTML Obgectifs de XML Les domuines de noms - Numespuces XML Les schmus XML Archifecfure des Services Web Introduction uu Services Web-1 Limites de HTML Limites de HTML En foif HTML esf frs bien odopfe Io creofion de sifes simpIes. Lo fociIife d'opprenfissoge de HTML o grondemenf porficipe son deveIoppemenf ouprs d'un pubIic pIus preoccupe por Io forme que por Ie fond. Cependonf, Io demonde necessifonf de pIus en pIus d'inferocfivife ef de dynomicife, HTML o vife offiche des Iimifes difficiIemenf occepfobIes, principoIemenf : un buIisuge prdfini duns Iu norme {n'uutorisunt pus Iu construction de ses propres buIises et donc de ses propres outiIs} Une gestion des Iiens trop simpIes {guste vers une uutre puge ou purtie} pur un geu de buIisuge ddi Iu mise en forme une dpendunce trs forte du contenu et de Iu forme ce qui u pour consquences : une interoprubiIit Iimite {chunge du contenu trs difficiIe entre uppIicutions cf, point prcdent} des recherches Iourdes et des rponses trs nombreuses {pus de notion smuntique duns Iu dfinition des contenus} Archifecfure des Services Web Introduction uu Services Web-19 Limites de HTML Limites de HTML Pour iIIusfrer cerfoines des Iimifes de HTML, voici un exempIe : <H2>Bibliographie XML</H2> <UL> <LI> Jean-Christophe Bernadac et Franois Knab, <I>Construire une application XML</I>, Paris, Eyrolles, 1999</LI> <LI> Alain Michard, <I>XML, Langage et Applications</I>, Paris, Eyrolles, 1998 </LI> <LI> William J. Pardi, <I>XML en Action</I>, Paris, Microsoft Press, 1999, adapt de l'anglais par James Guerin</LI> </UL> Archifecfure des Services Web Introduction uu Services Web-Z0 Limites de HTML Limites de HTML Mous consfofons dons cef exempIe que Ies boIises HTML fournissenf des indicofions qui vonf permeffre ou bufineur de meffre en poge (ou en ecron) Ie fexfe queIIes encodrenf: HZ ef /HZ signoIenf un fifre de niveou Z, UL ef /UL une Iisfe non numerofee, LI ef /LI un eIemenf de ceffe Iisfe, I ef /I du fexfe en ifoIique. Archifecfure des Services Web Introduction uu Services Web-Z1 Limites de HTML Limites de HTML Si on effecfue I'offichoge du fexfe precedenf dons un novigofeur HTML, on obfienf Ie resuIfof suivonf: ibIiogruphie XML Jeon-Chrisfophe 8ernodoc ef Fronois Inob, Consfruire une oppIicofion XML, Poris, EyroIIes, I999 AIoin Michord, XML, Longoge ef AppIicofions, Poris, EyroIIes, I998 WiIIiom J. Pordi, XML en Acfion, Poris, Microsoff Press, I999, odopfe de IongIois por Jomes 0uerin Archifecfure des Services Web Introduction uu Services Web-ZZ Limites de HTML Limites de HTML Toufes Ies boIises dune poge HTML sonf donc reIofives so presenfofion finoIe ef rien doufre. Pien ne permef un IogicieI de connofre Ie sens (Io semonfique) du fexfe. Aufremenf dif, dons nofre exempIe, iI nesf pos simpIe de de sovoir que AIoin Michord esf Iuuteur dun Iivre infifuIe XML, Longoge ef AppIicofions, qui esf poru en I998, donf Iditeur, EyroIIes, esf sifue Poris. Archifecfure des Services Web Introduction uu Services Web-Z3 Obgectifs de XML Obgectifs de XML Lobjecfif mojeur de XML esf defendre Ies foncfionnoIifes de HTML ofin de fociIifer Ies echonges d'informofions (orbifroiremenf compIexes depuis I'opporifion des schemos). Pour ceIo, on refrouve dons XML une generoIisofion des idees confenues dons HTML ef surfouf dons S0ML (Sfondord 0eneroIi;ed Morkup Longuoge) fouf en efonf pIus simpIe que ce dernier. Les principoIes evoIufions vis--vis de HTML sonf : Io definifion Iibre de nouveIIes boIises ef de nouveoux offribufs, Ie supporf de sfrucfure compIexe de documenfs, Io verificofion de Io sfrucfure dun documenf por ropporf une grommoire fype defini dons un documenf oppeIe DTD (Documenf Type Descripfor). Io seporofion enfre Ie confenu (documenf XML) ef Io mise en poge (feuiIIe de sfyIe CSS ou XSL). XML signifie eXtensibIe Murkup Lunguuge XML peut tre dfini comme tunt un Iunguge de description et d'chunges de donnes structurs Archifecfure des Services Web Introduction uu Services Web-Z4 Obgectifs de XML Obgectifs de XML XML o efe conu pour represenfer des documenfs (des donnees sfrucfurees) suivonf Ies cinq grond principes suivonfs : IisibiIife por I'homme ef Io mochine^ definifion non ombigue du confenu d'un documenf definifion non ombigue de Io sfrucfure d'un documenf seporofion enfre documenfs ef reIofions enfre documenfs seporofion enfre sfrucfure du documenf ef presenfofion du documenf ^ Confroiremenf oux oppIicofions qui grenf des formof de donnees binoires, comme Word, ExceI por exempIe, XML ne monipuIe que du fexfe, en foif des suifes de corocfres. C'esf ce principe eIemenfoire qui Ie rend porfobIe, puisque foufes Ies pIofes-forme comprennenf sons excepfion ce formof de represenfofion. Le fexfe o foujours efe Ie formof de communicofion enfre Ies oppIicofions (IOP Corbo sous forme Texfe) ou enfre progromme ef ufiIisofeur (foSfring de Jovo ou SmoIIfoIk pour Io represenfofion exferne sous forme de chones de corocfres) Archifecfure des Services Web Introduction uu Services Web-Z Obgectifs de XML Obgectifs de XML Voici ce que donneroif Io mme poge si eIIe efoif codee en XML -?mI version="1,0" encoding="ISO-9-1"?> -ILIO SUJECT="XML"> -OOk ISN="97ZZ1Z09019" LANS="fr" SUJECT="uppIicutions"> -AUTHOR> -FIRSTNAME>Jeun-Christophe-/FIRSTNAME> -LASTNAME>ernuduc-/LASTNAME> -/AUTHOR> -AUTHOR> -FIRSTNAME>Frunois-/FIRSTNAME> -LASTNAME>knub-/LASTNAME> -/AUTHOR> -TITLE>Construire une uppIicution XML-/TITLE> -PULISHER> -NAME>EyroIIes-/NAME> -PLACE>Puris-/PLACE> -/PULISHER> -DATEPU>1999-/DATEPU> -/OOk> Archifecfure des Services Web Introduction uu Services Web-Z Obgectifs de XML Obgectifs de XML Voici ce que donneroif Io mme poge si eIIe efoif codee en XML (suife) -OOk ISN="97ZZ1Z090Z9" LANS="fr" SUJECT="gnruI"> -AUTHOR> -FIRSTNAME>AIuin-/FIRSTNAME> -LASTNAME>Michurd-/LASTNAME> -/AUTHOR> -TITLE>XML Lunguge et AppIicutions-/TITLE> -PULISHER> -NAME>EyroIIes-/NAME> -PLACE>Puris-/PLACE> -/PULISHER> -DATEPU>199-/DATEPU> -/OOk> -OOk ISN="97Z40Z" LANS="fr" SUJECT="uppIicutions"> -AUTHOR> -FIRSTNAME>WiIIium J,-/FIRSTNAME> -LASTNAME>Purdi-/LASTNAME> -/AUTHOR> -TRANSLATOR PREFIX="udupt de I'ungIuis pur"> -FIRSTNAME>Jumes-/FIRSTNAME> -LASTNAME>Suerin-/LASTNAME> -/TRANSLATOR> -TITLE>XML en Action-/TITLE> -PULISHER> -NAME>Microsoft Press-/NAME> -PLACE>Puris-/PLACE> -/PULISHER> -DATEPU>1999-/DATEPU> -/OOk> -/ILIO> Archifecfure des Services Web Introduction uu Services Web-Z7 Obgectifs de XML Obgectifs de XML Ici oucune des boIises ne decrif Io presenfofion finoIe. On remorque, en revonche, que moinfenonf Ies boIises onf un sens ef une hierorchie. Por exempIe, IeIemenf "oufhor" comprend Ie prenom (boIise "firsfnome") ef Ie nom (boIise "Iosfnome") de Ioufeur. On remorque oussi que des informofions suppIemenfoires (Iongue, sujef, n IS8M), onf pu fre ojoufees sous forme d"offribufs" sifues Iinferieur mme des boIises. Archifecfure des Services Web Introduction uu Services Web-Z Obgectifs de XML Obgectifs de XML Le mme fichier XML offiche por Microsoff Infernef ExpIorer b (en Iobsence dune feuiIIe de sfyIe) sous forme dorborescence depIiobIe ef repIiobIe (Ie signe "-" indique une bronche depIiee, Ie signe "+" une bronche repIiee) Archifecfure des Services Web Introduction uu Services Web-Z9 Les domuines de noms { Les domuines de noms { numespuces numespuces } XML } XML LinferoperobiIife de XML suppose qu'iI soif possibIe que des documenfs confiennenf des boIises reufiIisobIes consfifuonf des vocobuIoires, des grommoires de differenfes specioIifes (mofhemofiques, bioIogie, ...). II esf donc couronf de meffre en oeuvre pIusieurs DTD (provenonf de pIusieurs domoines de specioIife) pour consfruire un documenf XML. Des confIifs de noms peuvenf oIors survenir si deux eIemenfs porfenf des noms idenfiques dons deux DTD differenfes (por exempIe odresse peuf represenfer une odresse d'expedifion ou une odresse moiI). Les domoines de noms (XML nomespoces) sonf une recommondofion du W3C (ropidemenf odopfee oprs XML I.0) pour resoudre Ie probIme de confIifs de noms dons un documenf XML. Le principe consisfe prefixer choque nom deIemenf por un nom unique qui idenfifie Ie domoine ouqueI iI foif reference. Archifecfure des Services Web Introduction uu Services Web-30 Les domuines de noms { Les domuines de noms { numespuces numespuces } XML } XML Les ovonfoges de ceffe sfrucfurofion : Les espoces de noms permeffenf de Iever Ies umbiguts sur des eIemenfs de DTD differenfes qui porferoienf Ie mme nom (nom de produif, nom de personne, ..) Les espoces de noms fovorisenf Iu moduIurit des documenfs XML ef Ies sources muIfipIes de ces derniers Les espoces de nom permeffenf, indirecfemenf, de rendre pIus IisibIe un documenf XML confenonf des informofions de sources diverses Archifecfure des Services Web Introduction uu Services Web-31 Les domuines de noms { Les domuines de noms { numespuces numespuces } XML } XML Les Momespoces onf un sfofuf de recommondofion du I4 Jonvier I999, donf Ies specificofions sonf disponibIes : hffp://www.w3.org/TP/I999/PEC-xmI-nomes-I9990II4 Un espoce de noms esf decIore Ioide de Ioffribuf mIns: Soif en decIoronf Iespoce de nom dons IeIemenf EIemenfDuDocumenf xmIns~UriDTDoImporfer" ExempIe dufiIisofion sons prefixe seminoire mIns~"hffp//www.uniIog.fr/seminoire" Soif en ossocionf un prefixe pour une ufiIisofion pIus fin EIemenfDuDocumenf xmIns:Prefixe~UriDTDoImporfer" ExempIe dufiIisofion ovec prefixe seminoire mIns:sem~"hffp//www.uniIog.fr/seminoire" .... sem:dute/ Pour ossurer I'unicife des domoines, on o recours oux UPI (Uniform Pessourc Idenfifier), Ie moyen sfondord pour occeder des ressources infernef. Archifecfure des Services Web Introduction uu Services Web-3Z Les schmus XML Les schmus XML XML, origineIIemenf conu pour Io pubIicofion de documenfs, o connu une forfe mufofion pour permeffre I'echonge de donnees queIconques. Lo DTD, Ie Iongoge de schemo ocfueI, ne definif que Io sfrucfure du documenfs XML XML schemo o pour vocofion de decrire fouf fype de sfrucfure de donnees, depuis Ies modIes des boses de donnees reIofionneIIes ou modIe objef des Iongoges objefs comme Jovo, en possonf por Io descripfion des sfrucfures des documenfs XML Archifecfure des Services Web Introduction uu Services Web-33 Les schmus XML Les schmus XML Le modIe des DTD presenfenf Ies foibIesses suivonfes : Les DTD ne sonf pos ecrifes en XML, ce qui signifie que Ies fechnoIogies exisfonfes pour monipuIer des documenfs XML feIIes que DOM ou SAX ne peuvenf fre ufiIisees pour porser des schemos de documenfs. Les DTD ne supporfenf pos Ies espoces de nom ce qui rend impossibIe Iimporf de schemos exfernes ofin de reufiIiser du code exisfonf. Les DTD noffrenf quun fypoge frs Iimife des donnees. Archifecfure des Services Web Introduction uu Services Web-34 Les schmus XML Les schmus XML Conscienf de ces fcheuses Iimifofions, Ie W3C o propose un nouveou Iongoge de definifion de schemo, XML Schemo. Conu pour poIIier Ies foibIesses des DTD, XML Schemo propose, en pIus des foncfionnoIifes fournies por Ies DTD, des nouveoufes Un grond nombre de fypes de donnees infegrees comme Ies booIeens, Ies enfiers, Ies infervoIIes de femps, efc. De pIus, iI esf possibIe de cree de nouveoux fypes por ojouf de confroinfes sur un fype exisfonf. Des fypes de donnees ufiIisofeurs qui vous permeffenf de creer vofre propre fype de donnees nomme. Lo nofion dherifoge. Les eIemenfs peuvenf herifer du confenu ef des offribufs dun oufre eIemenf. Cesf sons oucun doufe Iinnovofion Io pIus inferessonfe de XML Schemo. Le supporf des espoces de nom. Les indicofeurs doccurrences des eIemenfs peuvenf fre fouf nombre non negofif. Une gronde fociIife de concepfion moduIoire de schemos Archifecfure des Services Web Introduction uu Services Web-3 Les schmus XML Les schmus XML XML Schemo o un sfofuf de recommondofion du Z Moi Z00I, donf Ies specificofions sonf disponibIes : hffp://www.w3.org/TP/Z00I/PEC-xmIschemo-0-Z00I0b0Z/ (Porf 0: Primer) hffp://www.w3.org/TP/Z00I/PEC-xmIschemo-I-Z00I0b0Z/ (Porf I: Sfrucfures) hffp://www.w3.org/TP/Z00I/PEC-xmIschemo-Z-Z00I0b0Z/ (Porf Z: Dofofypes) Archifecfure des Services Web Introduction uu Services Web-3 Les schmus XML Les schmus XML ExempIe de DTD pour represenfer un documenf Livre lELEMEMT Livre (Tifre, Aufeur, Dofe, IS8M, Edifeur) lELEMEMT Tifre (#PCDATA) lELEMEMT Aufeur (#PCDATA) lELEMEMT Dofe (#PCDATA) lELEMEMT IS8M (#PCDATA) lELEMEMT Edifeur (#PCDATA) Archifecfure des Services Web Introduction uu Services Web-37 Les schmus XML Les schmus XML Schemo ossocie xsd:eIemenf nome~"Livre" xsd:compIexType xsd:sequence xsd:eIemenf ref~" Tifre " minOccurs~"I" moxOccurs~"I"/ xsd:eIemenf ref~" Aufeur " minOccurs~"I" moxOccurs~"I"/ xsd:eIemenf ref~"Dofe" minOccurs~"I" moxOccurs~"I"/ xsd:eIemenf ref~"IS8M" minOccurs~"I" moxOccurs~"I"/ xsd:eIemenf ref~" Edifeur " minOccurs~"I" moxOccurs~"I"/ /xsd:sequence /xsd:compIexType /xsd:eIemenf xsd:eIemenf nome~"Tifre" fype~"xsd:sfring"/ xsd:eIemenf nome~"Aufeur" fype~"xsd:sfring"/ xsd:eIemenf nome~"Dofe" fype~"xsd:sfring"/ xsd:eIemenf nome~"IS8M" fype~"xsd:sfring"/ xsd:eIemenf nome~"Edifeur" fype~"xsd:sfring"/ Archifecfure des Services Web Introduction uu Services Web-3 Les schmus XML Les schmus XML Les schemos XML permeffenf donc de represenfer des mefo- donnees pour decrire des sfrucfures orbifroiremenf compIexes Les porseurs boses sur Ies schemos XML sonf desormois disponibIes, oIIegeonf oinsi Ie frovoiI des oppIicofions monipuIonf Ies documenfs L'occs Io descripfion compIfe des sfrucfures de donnees fovorise I'oufomofisofion des echonges enfre oppIicofions Por exempIe, Ies schemos XML sonf forfemenf ufiIises : Dons Ies gesfionnoires de boses reIofionneIIes pour imporfer ou exporfer Ies mefo-donnees Dons Ies serveurs d'oppIicofions pour decrire precisemenf Ies depIoiemenfs, Ies configurofions des composonfs Archifecfure des Services Web Introduction uu Services Web-39 Les services web : premire upproche Le Iunguge XML Les services web : vue d'ensembIe Les services Les services web web : premire upproche : premire upproche Le Iunguge XML Le Iunguge XML Les services Les services web web : vue d'ensembIe : vue d'ensembIe Les services web c'est quoi ? Les services web pourquoi Les usuges Les ucteurs {r5Ies} Le scnurio compIet Les technoIogies Archifecfure des Services Web Introduction uu Services Web-40 Les Services Web c'est quoi ? Les Services Web c'est quoi ? Avonf foufe oufre chose, Io fechnoIogie des services web offiche Ies mmes infenfions que Ies orchifecfures Ies pIus onciennes en ferme d'occs disfonf, comme Ies monifeurs TP. C'esf Io possibiIife d'invoquer une foncfion disfonfe. En I'occurrence, sur un serveur web disfonf puisque Ie profocoIe de bose esf HTTP On dispose d'une infrosfrucfure soupIe bosee sur XML pour Ies sysfmes disfribues heferognes Archifecfure des Services Web Introduction uu Services Web-41 Les Services Web c'est quoi ? Les Services Web c'est quoi ? IIs sonf occessibIes vio Ie web por des profocoIes bien connus IIs sonf decrifs porfir de XML IIs inferogissenf vio XML IIs sonf IocoIisobIes porfir de regisfres IIs sonf enfiremenf fronsversoux oux pIofes-formes ef frs foibIemenf coupIes Archifecfure des Services Web Introduction uu Services Web-4Z Les Services Web c'est quoi ? Les Services Web c'est quoi ? IIs infroduisenf un nouveou modIe de deveIoppemenf bose sur ce que I'on oppeIIe Ies orchifecfures orienfees services Une orchifecfure orienfee services se focoIise sur une decomposifion pIus obsfroife dons Io resoIufion des probImes. On porIe de resoIufion dirigee por Ies services. Un service resouf un probIme donne Les services peuvenf fre combines pour resoudre des probImes de pIus en pIus compIexes Archifecfure des Services Web Introduction uu Services Web-43 Les Services Web c'est quoi ? Les Services Web c'est quoi ? Les fches ossociees Io monipuIofion des services web sonf : Inferroger un onnuoire : qui fournif des choses donf on ne connof pos forcemenf Io nofure, Ie rIe ou Ie confenu Megocier ovec Ies fournisseurs pofenfieIs de ces choses pour connofre : Mofure exocfe du service fourni QuoIife/cof/efc. Inferogir ovec Ie service du fournisseur choisi pour : Connofre Ies modoIifes d'inferocfion Infroduire Ie service dons mo chone de froifemenfs EvenfueIIemenf composer des services EvenfueIIemenf pubIier mes propres services Archifecfure des Services Web Introduction uu Services Web-44 Les Services Web c'est quoi ? Les Services Web c'est quoi ? L'ovonfoge essenfieI des services web concerne Ie foif que Ie cIienf consommofeur n'o pos besoin de connofre I'idenfife du fournisseur du service Le cIienf doif simpIemenf exprimer son besoin Foce un besoin, pIusieurs fournisseurs de services peuvenf exisfer Chocun oyonf des corocferisfiques de cof, de performonce, de fiobiIife, efc. Le cIienf choisif Ie fournisseur (i.e. Ie service) correspondonf Ie mieux ses besoins. Archifecfure des Services Web Introduction uu Services Web-4 Les Services Web pourquoi ? Les Services Web pourquoi ? Lorsque I'on o besoin d'inferoperobiIife dons des environnemenfs oppIicofifs disfribues Les services peuvenf communiquer enfre eux, ef ceIo depuis des environnemenfs oppIicofifs disfonfs Lorsque I'on veuf occeder oux oppIicofions frovers Ies pore-feux Les services web sonf definis ef occedes ovec XML sur des profocoIes sfondords comme HTTP ef SMTP. IIs peuvenf oIors fre invoques frovers un pore-feux. Lorsque I'on veuf profifer de differenfs environnemenfs ef Iongoges de deveIoppemenf Por une descripfion ef une invocofion XML, Ies services web sonf frs fIexibIes ef independonfs des Iongoges ef des sysfmes. Archifecfure des Services Web Introduction uu Services Web-4 Les usuges Les usuges Les services web pour represenfer des oppIicofions sophisfiquees bien deIimifees ef sons forfe inferocfivife. Por exempIe, une oppIicofion qui donne Ies condifions du femps peuf fre ideoIemenf represenfee por un service. Les services web sonf odopfes pour I'ossembIoge de composonfs foibIemenf coupIes. IIs sonf definis de foon independonfe, mois peuvenf inferogir. Les services web sonf odopfes Io represenfofion d'oppIicofion orienfees messoges. Les meconismes d'invocofion osynchrone des oppIicofions orienfees messoges sonf en fonf de bonnes condidofes oux services web Archifecfure des Services Web Introduction uu Services Web-47 Les usuges Les usuges Les services web servenf de bose I'infegrofion d'oppIicofions foibIemenf coupIees AppIicution Web Service ProfiI CIient Service rservution h5teI Service rservution voiture Service rservution biIIet CIient Archifecfure des Services Web Introduction uu Services Web-4 Les ucteurs {r5Ies} Les ucteurs {r5Ies} Les principoux ocfeurs dons Io fechnoIogie des services web sonf : Le cIienf : ceIui qui ufiIise, invoque Ie service web Le fournisseur : ceIui qui fournif Ie service web L'onnuoire : ceIui qui defienf Ies informofions du service web Archifecfure des Services Web Introduction uu Services Web-49 Les ucteurs {r5Ies} Les ucteurs {r5Ies} Le cIienf ef Ie fournisseur sonf Ies eIemenfs principoux dons I'orchifecfure des services web Un fournisseur esf represenfe por un serveur d'oppIicofion (JZEE por exempIe) Le fournisseur defienf un ou pIusieurs services qui sonf represenfes por des EJ8s ou des servIefs ef qui sonf enveIoppes d'une couche service Le fournisseur peuf fre Ie cIienf d'un oufre fournisseur (inferoperobiIife) Une fois Ie service definif, iI peuf fre decIore dons un onnuoire, on porIe oIors de pubIicofion du service ofin de Ie rendre occessibIe oux cIienfs Archifecfure des Services Web Introduction uu Services Web-0 Le Le scenurio scenurio compIet compIet Efope I : definifion, descripfion du service On doif decrire d'un poinf de vue informofique ce que foif Ie service, Io soIufion qu'iI propose, ... Lo definifion esf foife on WSDL ou sein du fournisseur de services (i.e. Ie serveur d'oppIicofions) Efope Z : pubIicofion du service Une fois Ie service definif ef decrif en fermes de mise en oeuvre, iI peuf fre decIore dons un onnuoire, on porIe oIors de pubIicofion du service ofin de Ie rendre occessibIe oux cIienfs. Comme on Ie verro, Io pubIicofion sero effecfue ou sein d'un onnuoire dedie UDDI. Efope 3 : recherche du service Le cIienf se connecfe, sur un onnuoire (UDDI) pour effecfuer une recherche de service. Archifecfure des Services Web Introduction uu Services Web-1 Le Le scenurio scenurio compIet compIet Efope 4 : enregisfremenf ou service web Une fois Ie service frouve por Ie cIienf, ce dernier doif s'enregisfrer ouprs du fournisseur ossocie ou service. Cef enregisfremenf indique ou fournisseur I'infenfion du cIienf d'ufiIiser Ie service suivonf Ies condifions decrifes dons Io pubIicofion. Efope b : mise en oeuvre du service Le cIienf peuf invoquer Ie service suivonf Ies condifions inscrifes ou sein de I'onnuoire Iors de Io pubIicofion du service web (efope Z) Efope o : composifion C'esf Io possibiIife de combiner pIusieurs services. En foif, un service peuf devenir Ie cIienf d'un oufre service. Archifecfure des Services Web Introduction uu Services Web-Z Le Le scenurio scenurio compIet compIet AppIicution cIiente Dispose IocoIemenf de Io descripfion du service ou Pecherche Io descripfion du service dons un onnuoire Documenf WSDL ossure Io correspondonce ovec Ie fournisseur de service Fournisseur de service Propose IimpIemenfofion dun Web Service Fournif une descripfion du service (documenf WSDL) PubIie ceffe descripfion dons un onnuoire Annuuire de pubIicution Dispose de Io descripfion des services oinsi que de Ieur IocoIisofion, c'esf-- dire des differenfs fournisseurs Archifecfure des Services Web Introduction uu Services Web-3 Le Le scenurio scenurio compIet compIet Archifecfure des Services Web Introduction uu Services Web-4 Une urchitecture dg connue Une urchitecture dg connue 1 Eposition Z PubIicution 3 Recherche 4 Rcuprution AppeI AppeI 7 AppeI Retour 9 Retour 10 Retour Les orchifecfures Corbo, EJ8 ou PMI monipuIenf ces concepfs depuis forf Iongfemps Archifecfure des Services Web Introduction uu Services Web- Les technoIogies Les technoIogies Les eIemenfs fechniques ufiIises sonf differenfs puisque imposes por Ie Web ef XML L'orchifecfure des Web Services repose essenfieIIemenf sur Ies fechnoIogies suivonfes : SOAP - SimpIe Obgect Access ProtocoI ProfocoIe pour Io communicofion enfre Web Services IIOP pour Corbo ou PMI-IIOP pour Ies EJ8s WSDL - Web Service Description Lunguuge Longoge de descripfion de I'inferfoce du Web Service IDL pour Corbo ou Inferfoce Jovo pour Ies EJ8s UDDI - UniversuI Description Discovery und Integrution Annuoire pour Ie referencemenf du Web Service CosMoming pour Corbo ou JMDI pour Ies EJ8s Archifecfure des Services Web Introduction uu Services Web- Les technoIogies Les technoIogies Un Web Service esf une oppIicofion depIoyee sur un serveur Web (serveur d'objefs). Supporfer des Web Services opporfe une inferoperobiIife cerfoine ef une gronde fIexibiIife puisqu'iI s'ogif de cooperofion enfre objefs disfonfs por Ie biois du Web (TCP/IP - HTTP). Archifecfure des Services Web Introduction uu Services Web-7 Les technoIogies Les technoIogies PiIe de profocoIe
Documenf XML decrivonf Ie service ofin de rendre Io soIufion des Web Services generique
WSDL
ProfocoIe bose sur Ie sfondord XML pour I'echonge de donnees sfrucfurees enfre des oppIicofions reseoux
SOAP
Couche reseou (HyperTexf Tronsfer ProfocoI)
HTTP
Couches de bose permeffonf I'inferoperobiIife des Web Services Archifecfure des Services Web Introduction uu Services Web- Les technoIogies Les technoIogies Afin d'fre decouverf, un service doif fre pubIie. Au dessus de ces frois couches de bose viennenf se greffer deux couches UDDI :
Decouverfe de services
UDDI
PubIicofion de services
UDDI
On pubIie nofre service vio Ie documenf WSDL ouprs de nofre onnuoire UDDI.
Une oppIicofion cIienfe peuf decouvrir ef occeder nofre service Iors de son execufion vio un onnuoire UDDI.
Archifecfure des Services Web Introduction uu Services Web-9 Le protocoIe SOAP Le protocoIe SOAP PIe Assure Ies oppeIs de procedures disfonce ou dessus d'un profocoIe de fronsporf Foncfionnemenf cfe CIienf Ouverfure dune connexion HTTP Pequfe SOAP esf un documenf XML decrivonf : une mefhode invoquer sur une mochine disfonfe Ies poromfres de Io mefhode Foncfionnemenf cfe Serveur SOAP Pecupre Io requfe Execufe Io mefhode ovec Ies poromfres Penvoie une reponse SOAP (documenf XML) ou cIienf Archifecfure des Services Web Introduction uu Services Web-0 Le protocoIe SOAP Le protocoIe SOAP rseau Service Requestor Demandeur de service Service Provider Fournisseur de service Client Client SOAP SOAP dispatcheur dispatcheur Serveur Serveur HTTP HTTP TOMCAT TOMCAT impl impl mentation mentation Requ Requ te SOAP te SOAP R R ponse SOAP ponse SOAP Archifecfure des Services Web Introduction uu Services Web-1 Le Iunguge WSDL Le Iunguge WSDL Une inferfoce qui coche Ie defoiI de I'impIemenfofion du service, permeffonf une ufiIisofion independonfe : de Io pIofe-forme ufiIisee du Iongoge ufiIise Le fichier WSDL esf ou formof XML ef regroupe foufes Ies informofions necessoires pour inferogir ovec Ie Web Service : Ies mefhodes Ies poromfres ef voIeurs refournees Ie profocoIe de fronsporf ufiIise Io IocoIisofion du service Documenfs WSDL, generes por Ies oufiIs de deveIoppemenf fovorisenf une infegrofion ropide du service Archifecfure des Services Web Introduction uu Services Web-Z Le Iunguge WSDL Le Iunguge WSDL Z fypes de documenfs WSDL : Ie documenf WSDL decrivonf I'inferfoce du service Ie documenf WSDL decrivonf I'impIemenfofion du service Documenfs indispensobIes ou depIoiemenf de Web Services PubIicofion ef recherche de services ou sein de I'onnuoire UDDI se fonf vio ces Z fypes de documenf WSDL Pour I'occs un service porficuIier, un cIienf se voif refourne I'UPL du fichier WSDL decrivonf I'impIemenfofion du service. SeuI I'empIocemenf de ce fichier WSDL esf indique puisque ce dernier reference I'oufre documenf WSDL decrivonf I'inferfoce de mise en uvre du service. Archifecfure des Services Web Introduction uu Services Web-3 Annuuire UDDI Annuuire UDDI PIe Specificofion pour Io definifion dun service de regisfre Fournisseur DecIorofion du fournisseur Enregisfremenf de ses Web Services disponibIes CIienf Pequfe de recherche de Web Services (SOAP) Mise en reIofion ovec Ie Web Service dun fournisseur Archifecfure des Services Web Introduction uu Services Web-4 Le fournisseur de services Le fournisseur de services description dpIoiement pubIicution Service Provider Annuuire UDDI impImentution serveur web ServIet SOAP WSDL Description du service Archifecfure des Services Web Introduction uu Services Web- Schmu fonctionneI Schmu fonctionneI Archifecfure des Services Web Introduction uu Services Web- Le protocoIe SOAP Le Iunguge WSDL L'unnuuire UDDI Le protocoIe SOAP Le protocoIe SOAP Le Iunguge WSDL Le Iunguge WSDL L'unnuuire UDDI L'unnuuire UDDI Archifecfure des Services Web Introduction uu Services Web-7 Le protocoIe SOAP Le Iunguge WSDL L'unnuuire UDDI Le protocoIe SOAP Le protocoIe SOAP Le Iunguge WSDL Le Iunguge WSDL L'unnuuire UDDI L'unnuuire UDDI SOAP c'est quoi ? Les principes Historique Les messuges SOAP Architecture technique c5t cIient Architecture technique c5t serveur Archifecfure des Services Web Introduction uu Services Web- SOAP c'est quoi ? SOAP c'est quoi ? SOAP esf un profocoIe de fronsmission de messoges. II definif un ensembIe de rgIes pour sfrucfurer des messoges principoIemenf pour execufer des dioIogues requfe-reponse de fype PPC (Pemofe Procedure CoII). II nesf pos Iie un profocoIe porficuIier mois HTTP esf popuIoire. II nesf pos non pIus Iie un sysfme dexpIoifofion ni un Iongoge de progrommofion, donc, fheoriquemenf, Ies cIienfs ef serveurs de ces dioIogues peuvenf fourner sur nimporfe queIIe pIofe-forme ef fre ecrifs dons nimporfe queI Iongoge du momenf quiIs puissenf formuIer ef comprendre des messoges SOAP. Archifecfure des Services Web Introduction uu Services Web-9 SOAP c'est quoi ? SOAP c'est quoi ? Pour comprendre, imoginons une bose de donnees frs simpIe dune enfreprise, comprenonf une fobIe specifionf : Ie numero de reference, Ie nom, Ie numero de feIephone des empIoyes. On desire meffre en pIoce un service qui permef doufres sysfmes de Io compognie de consuIfer ces donnees. Le service refourne un nom ef un numero de feIephone (un fobIeou de chones de corocfres deux eIemenfs) pour un numero de reference dempIoye donne (un enfier). Voici Io signofure Jovo de ce service : Sfring[] gefEmpIoyeeDefoiIs ( inf empIoyeeMumber ), Archifecfure des Services Web Introduction uu Services Web-70 SOAP c'est quoi ? SOAP c'est quoi ? L'opproche SOAP consisfe : encopsuIer Io Iogique de requfe de Io bose de donnees du service (i.e. impIemenfofion), dons une mefhode Jovo por exempIe puis demorrer un fhreod qui ecoufe Ies requfes odressees ce service (un ecoufeur ou Iisfener), ces requfes efonf formuIees dons un formof SOAP ef confenonf Ie nom du service ef Ies poromfres requis. Le Iisfener decode Io requfe SOAP enfronfe ef Io fronsforme en un oppeI de Io mefhode vers I'objef concerne. II recupre Ie resuIfof de IoppeI de Io mefhode, Iencode dons un messoge SOAP (Io reponse) ef Ie renvoie ou demondeur. CeIo donne: Archifecfure des Services Web Introduction uu Services Web-71 SOAP c'est quoi ? SOAP c'est quoi ? L'orchifecfure fechnique permeffonf ceffe mise en uvre peuf- fre por exempIe : Une bose de donnees OrocIe . Lo mefhode du service esf ecrife en Jovo ef se connecfe Io bose de donnees vio un piIofe JD8C pour OrocIe. Le Iisfener esf une ServIef Jovo fournonf dons un mofeur de servIef comme Tomcof. Lo servIef o occs des cIosses Jovo copobIes dencoder ef de decoder des messoges SOAP (feI que Apoche SOAP for Jovo) ef ecoufe ces messoges en fonf que HTTP POST. Le fronsporf esf HTTP por TCP/IP. Le cIienf esf un fobIeou exceI. II ufiIise une mocro V8 qui, son four, expIoife Ie TooIkif Microsoff SOAP pour encoder une requfe SOAP ef decoder Io reponse reue. Archifecfure des Services Web Introduction uu Services Web-7Z SOAP c'est quoi ? SOAP c'est quoi ? L'orchifecfure fechnique esf iIIusfree por Io figure suivonfe : Mofe; que du cfe cIienf, Io mocro V8 repose sur Ie TooIkif Microsoff SOAP (Ies DLLs SOAP) ef une inferfoce HTTP Connecfor. De feIs DLLs HTTP Connecfor sonf fypiquemenf dej insfoIIes en fonf que composonf de Infernef ExpIorer. Du cfe serveur, nofer que Ie pockoge SOAP repose sur un Porser XML qui onoIyse Ies messoges SOAP. Dons Ie cos de SOAP Apoche pour Jovo, ce sero Xerces. Archifecfure des Services Web Introduction uu Services Web-73 SOAP c'est quoi ? SOAP c'est quoi ? Les inferfs d'une feIIe orchifecfure sonf muIfipIes vis--vis d'un modIe cIienf/serveur de donnees ovec procedures sfockees por exempIe : L'envoi ou Io recepfion de donnees sfrucfurees ef orbifroiremenf compIexes Seporofion des definifions mefiers, des froifemenfs, des donnees occedees L'ufiIisofion de sources de donnees Jovo DofoSources (ce sonf des piIofes PMI, middIewore d'occs oux donnees disfonfes) impose I'ufiIisofion du Iongoge Jovo Archifecfure des Services Web Introduction uu Services Web-74 SOAP c'est quoi ? SOAP c'est quoi ? COP8A ouforise, comme SOAP d'ovoir : des fypes compIexes de donnees des cIienfs ef serveurs dons fous Iongoges ef pIofe-formes une seporofion de Io couche mefier SOAP esf pIus odopfe Io nofion de services web , cor : Corbo exige de compiIer ef disfribuer des sfubs cIienf pour choque fype de cIienfs. L'occs oux objefs disfonfs Corbo por IIOP (Ie profocoIe de Corbo) nesf pos porficuIiremenf odopfe oux firewoII, ce qui pose probImes dons une visibiIife infernef II esf primordioI de comprendre que SOAP esf un profocoIe bose sur XML ef en consequence, porficuIiremenf verbeux. COP8A, ou frovers de IIOP, esf pIus performonf cor Ies operofions de conversion ef de deconversion (morshoIIing ef demorshoIIing) sonf pIus efficoces puisque Ies donnees en formof binoire (CDP Common Dofo Pepresenfofion). Archifecfure des Services Web Introduction uu Services Web-7 Historique Historique Annees 80 : COP8A ef DCOM Specificofion d'inferfoce en IDL Forfemenf orienfes objef CoupIoge forf enfre Ies sysfmes XML-PPC (I999) Messoges XML Envoi de formuIoire (HTTP-POST), Pos exfensibIe, fypes de donnees Iimifes. Archifecfure des Services Web Introduction uu Services Web-7 Les points forts Les points forts ProfocoIe de communicofion enfre oppIicofions 8ose sur XML ef Ies nomespoces. Communicofion por Ie Web (HTTP / SMTP / ,) Independonf de Io pIofeforme (windows, unix, moc, ,) SimpIe ef exfensibIe 8ienff un sfondord w3c (SOAP I.Z). Archifecfure des Services Web Introduction uu Services Web-77 Les principes Les principes Permef d'envoyer des messoges XML enfre deux mochines. Les messoges sonf emboIIes dons une enveIoppe SOAP L'enveIoppe SOAP esf une grommoire predefinie Lo grommoire du messoge depend de I'oppIicofion EnveIoppe repose sur une grummuire SOAP identique pour tous Ies messuges Le messuge est dpendunt de I'uppIicution puisqu'iI indique Iu mthode et Ies purumtres Archifecfure des Services Web Introduction uu Services Web-7 Les principes Les principes ModIe pour Ie PPC : Messoge Pequesf invoque une mefhode d'un objef disfonf Messoge Pesponse renvoie Ie resuIfof de son execufion Encodoge de fypes de donnees des Iongoges de progrommofion, comme : TobIeoux, Enregisfremenfs, , A nofer, encore une fois, que ceIo esf herife du modIe des schemos XML qui permeffenf Io represenfofion de sfrucfures de donnees orbifroiremenf compIexes (orbres, poinfeurs, ...) Archifecfure des Services Web Introduction uu Services Web-79 Les principes Les principes UfiIisobIe ovec des profocoIes : Synchrones : HTTP, Asynchrones : SMTP, JMS, , 0esfion des erreurs (SOAP FouIf) Enffes (SOAP Heoder) : ufiIisofion de mefo-donnees pour un ou pIusieurs desfinofoires du messoge qui peuvenf chocun modifier Ies enffes (oudif, suivi, efc.). Une spec du w3c en cours de finoIisofion (SOAP I.Z) Vers pIus de moduIorife mois oussi pIus de compIexife. Archifecfure des Services Web Introduction uu Services Web-0 Les messuges SOAP : prsentution Les messuges SOAP : prsentution <soap:Envelope xmlns:soap=http://www.w3.org/2001/12/soap-envelope soap:encodingStyle=http://www.w3.org/2001/12/soap-encoding> <soap:Header> , </soap:Header> <soap:Body> , <soap:Fault> , </soap:Fault> </soap:Body> </soap:Envelope> Archifecfure des Services Web Introduction uu Services Web-1 Les messuges SOAP : prsentution Les messuges SOAP : prsentution Un messoge SOAP voIide esf un documenf XML correcfemenf forme. Le proIogue XML peuf fre presenf, mois dons ce cos, ne doif confenir quune decIorofion XML (c--d. quiI ne doif confenir ni reference un DTD, ni insfrucfion XML). Le messoge doif ufiIiser IenveIoppe SOAP ef Ies nomespoces dencodoge SOAP, ef doif ovoir Io forme suivonfe: Une decIorofion XML (opfionneIIe) Une EnveIoppe SOAP (IeIemenf rocine) qui esf composee de : Une En-ffe SOAP (opfionneI) Un Corps SOAP Archifecfure des Services Web Introduction uu Services Web-Z Les messuges SOAP : eempIe Les messuges SOAP : eempIe Un dioIogue PPC encode por SOAP confienf un messoge de requfe ef un messoge de reponse. Considerons Io mefhode dun service simpIe qui doubIe Io voIeur dun enfier donne donf voici Io signofure Jovo : inf doubIeAnInfeger ( inf numberToDoubIe ), Archifecfure des Services Web Introduction uu Services Web-3 Les messuges SOAP : eempIe Les messuges SOAP : eempIe Voici un exempIe de requfe SOAP sur un service definissonf Io mefhode decrife precedemmenf : <?xml version="1.0" encoding="UTF-8" standalone="no" ?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <ns1:doubleAnInteger xmlns:ns1="urn:MySoapServices"> <param1 xsi:type="xsd:int">123</param1> </ns1:doubleAnInteger> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Archifecfure des Services Web Introduction uu Services Web-4 Les messuges SOAP : eempIe Les messuges SOAP : eempIe Voici un exempIe de reponse SOAP sur un service definissonf Io mefhode decrife precedemmenf : <?xml version="1.0" encoding="UTF-8" ?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <ns1:doubleAnIntegerResponse xmlns:ns1="urn:MySoapServices" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <return xsi:type="xsd:int">246</return> </ns1:doubleAnIntegerResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Archifecfure des Services Web Introduction uu Services Web- Les messuges SOAP : Ie proIogue Les messuges SOAP : Ie proIogue Le proIogue XML confienf seuIemenf une decIorofion XML 7xmI version~"I.0" encoding~"UTF-8" 7 specifionf Io version de XML ef Iencodoge des corocfres du messoge XML. Archifecfure des Services Web Introduction uu Services Web- Les messuges SOAP : I'enveIoppe Les messuges SOAP : I'enveIoppe Lo boIise de IEnveIoppe SOAP SOAP-EMV:EnveIope ... dons Ie messoge de requfe specifie fouf dobord Ie sfyIe dencodoge (defini dons hffp://schemos.xmIsoop.org/soop/encoding/). Ceffe boIise esf opfionneIIe comme cesf Ie cos dons Ie messoge de reponse. LEnveIoppe SOAP confienf egoIemenf des definifions de nomespoces. Les idenfifionfs des nomespoces sonf sfondords ef Io specificofion SOAP demonde ce que ces nomespoces soienf definis correcfemenf ou pos du fouf (c--d quun messoge SOAP dons IequeI monquenf des definifions de nomespoces esf correcf ef peuf fre expIoife mois un messoge confenonf des definifions incorrecfes, c--d non sfondords, esf mouvois ef refuse). Mofe; que Io definifion du nomespoce SOAP-EMC esf obsenf du messoge de reponse mois ceIo ne signifie pos que Ie messoge esf invoIide. Archifecfure des Services Web Introduction uu Services Web-7 Les messuges SOAP : I'entte Les messuges SOAP : I'entte II ny o pos de fog heoder (en-ffe) SOAP dons cef exempIe. Les en-ffes SOAP sonf opfionneIIes ef sonf fypiquemenf ufiIisees pour fronsmeffre des donnees doufhenfificofion ou de gesfion de session. A nofer que Ioufhenfificofion ef Io gesfion de session sonf en dehors du codre du profocoIe SOAP, mme si Ies concepfeurs de SOAP ouforisenf une cerfoine fIexibiIife dons Io fronsmission de messoges SOAP, de feIIe foon que Ies personnes qui Ies impIemenfenf puissenf incIure de feIIes informofions. Archifecfure des Services Web Introduction uu Services Web- Les messuges SOAP : Ie corps Les messuges SOAP : Ie corps Lo boIise SOAP 8ody (Ie corps) SOAP-EMV:8ody qui no rien de remorquobIe en eIIe-mme mois encopsuIe une unique boIise de mefhode qui porfe Ie nom de Io mefhode eIIe-mme nsI:doubIeAnInfeger ... (ou, Ie mme nom suivi du mof "Pesponse" dons Ie cos du messoge de reponse). Lo boIise de Io mefhode reoif fypiquemenf Ie nomespoce correspondonf ou nom du service, dons nofre cos urn:MySoopServices pour ossurer Iunicife (un service web, qui peuf confenir nimporfe queI nombre de mefhodes nommees differemmenf, o un nom de service unique IUPL sur IoqueIIe iI esf occessibIe Archifecfure des Services Web Introduction uu Services Web-9 Les messuges SOAP : Ie corps Les messuges SOAP : Ie corps Lo boIise de mefhode encopsuIe son four nimporfe queI nombre de poromfres comme por exempIe Io boIise poromI ... Les noms des boIises de poromfres peuvenf fre de n'imporfe queI nom qui peuf fre oufogeneres ou defini expIicifemenf Dons Ie messoge de reponse, iI ny o quune seuIe boIise de poromfre (represenfonf Io voIeur de refour de Io mefhode). EIIe porfe Ie nom refurn Archifecfure des Services Web Introduction uu Services Web-90 Les messuges SOAP : compIments Les messuges SOAP : compIments Lune des corocferisfiques Ies pIus inferessonfes du profocoIe SOAP esf so copocife gerer des poromfres de fouf niveou de compIexife. Ceffe copocife esf direcfemenf deduife du modIe des schemos XML ef consisfe froifer des fypes primififs (enfier, chone de corocfres efc...), des fobIeoux ef sfrucfures ef foufes combinoisons de ceux-ci. Voyons pour finir, quoi ressembIenf Ies dioIogues SOAP pour des mefhodes ovec des fypes de poromfres ef de refour compIexes. Archifecfure des Services Web Introduction uu Services Web-91 Les messuges SOAP : compIments Les messuges SOAP : compIments Dons Ies fronsporenfs suivonfs, nous donnons Ie dioIogue resuIfonf de IoppeI de Io version inifioIe de gefEmpIoyeeDefoiIs comme decrife precedemmenf. Dons ceffe version, Ie cIienf envoie un enfier (I'idenfificofion de I'empIoye) ef reoif un fobIeou de chones de corocfres deux eIemenfs confenonf : Ie nom de IempIoye ef Ie numero de feIephone Dons Io boIise refurn du messoge de reponse, nous ovons Ie fype de Io sfrucfure compIexe (Ie fobIeou de choines), sovoir : xsi:fype~"nsZ:Arroy" nsZ:orroyType~"xsd:sfring[Z]" Archifecfure des Services Web Introduction uu Services Web-9Z Les messuges SOAP : compIments Les messuges SOAP : compIments Voici un exempIe de requfe SOAP pour nofre nouveou service : <?xml version="1.0" encoding="UTF-8" standalone="no" ?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <ns1:getEmployeeDetails xmlns:ns1="urn:MySoapServices"> <param1 xsi:type="xsd:int">1016577</param1> </ns1:getEmployeeDetails> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Archifecfure des Services Web Introduction uu Services Web-93 Les messuges SOAP : compIments Les messuges SOAP : compIments Voici un exempIe de requfe SOAP pour nofre nouveou service : <?xml version="1.0" encoding="UTF-8" ?> <SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <ns1:getEmployeeDetailsResponse xmlns:ns1="urn:MySoapServices" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <return xmlns:ns2="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:Array" ns2:arrayType="xsd:string[2]"> <item xsi:type="xsd:string">Bill Posters</item> <item xsi:type="xsd:string">+1-212-7370194</item> </return> </ns1:getEmployeeDetailsResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Archifecfure des Services Web Introduction uu Services Web-94 StyIe RPC ou DOC StyIe RPC ou DOC SfyIe PPC AppeIs de procedures disfonfs Poromfres proches des fypes des Iongoges de progrommofion Degre eIeve d'oufomofisofion SfyIe DOC Echonges de messoges conformes des schemos orbifroires (Ex: Demonde d'ochof). PIus d'expressivife Encouroge por .Mef Archifecfure des Services Web Introduction uu Services Web-9 Synchrone ou Asynchrone Synchrone ou Asynchrone Aujourd'hui : beoucoup de services synchrones, ou dessus d'HTTP. AppeIs bIoquonfs Pos de goronfies (fimeouf 7) PIus robusfe : Echonges osynchrones SMTP, JMS, , Mon-bIoquonfs 0oronfies de service (ExocfIy Once) Archifecfure des Services Web Introduction uu Services Web-9 Architecture technique c5t cIient Architecture technique c5t cIient Les messoges envoyes ou serveur seronf des requfes SOAP-XML enveIoppees dons des requfes HTTP. De mme, Ies reponses du serveur sonf des reponses HTTP qui renfermenf des reponses SOAP-XML. Du cfe cIienf, pour ne pos prendre en chorge Io serioIisofion SOAP ef Iencodoge HTTP, nous ufiIisons un pockoge SOAP specifique. Mous invoquons ensuife Ie service, simpIemenf en invoquonf Io mefhode oppropriee du pockoge SOAP (fypiquemenf en specifionf IUPL du service, Ie nom du service ef fous Ies poromfres requis). Le premier frovoiI dun pockoge esf de serioIiser I invocofion de ce service en requfe SOAP. II doif ensuife encoder ce messoge dons une requfe HTTP ef Ienvoyer IUPL specifiee. Archifecfure des Services Web Introduction uu Services Web-97 Architecture technique c5t cIient Architecture technique c5t cIient Mous verrons Io foon donf Ie serveur froife Io requfe, mois pour I'heure, iI nous renvoie Ie messoge encode HTTP confenonf Io reponse SOAP. Mous nous reposons sur Ie mme pockoge SOAP pour execufer Iinverse de ce qui fuf foif ou sfode de Io requfe, cesf--dire que Ie pockoge decode Ie messoge HTTP ef exfroif Ie messoge SOAP, ensuife deserioIise Ie messoge SOAP ef obfienf Io voIeur de refour de IoppeI de Io mefhode. Ceffe voIeur de refour frouvee esf ensuife possee comme voIeur de refour Iinvocofion originoIe de Io mefhode por Ie code cIienf. Archifecfure des Services Web Introduction uu Services Web-9 Architecture technique c5t cIient Architecture technique c5t cIient Le code cIienf cree un oppeI de service en invoquonf Io mefhode oppropriee du pockoge SOAP (I). Le serioIiseur SOAP du pockoge SOAP converfif ceffe invocofion en requfe SOAP ef Ienvoie Iencodeur HTTP (Z). Lencodeur HTTP enveIoppe Ie messoge SOAP dons une requfe HTTP ef Ienvoie ou serveur SOAP (3). Lo reponse esf reue por Ie moduIe dencodoge/decodoge HTTP du serveur SOAP(4), ce moduIe decode ef exfroif Io reponse SOAP qui Io remef ou deserioIiseur SOAP (b). Le deserioIiseur SOAP deserioIise Ie messoge ef posse Ie resuIfof ou code cIienf (o) comme voIeur de refour de Iinvocofion originoIe (I). Archifecfure des Services Web Introduction uu Services Web-99 Architecture technique c5t serveur Architecture technique c5t serveur II esf imporfonf de se roppeIer que Ie choix du Iongoge, de pIofe- forme ef de pockoge SOAP pour consommer des services web du cfe cIienf esf enfiremenf independonf du Iongoge, de Io pIofe- forme ef du pockoge SOAP ufiIises por Ie cfe serveur pour fournir des services web. De ceffe foon, Ie mme service web bose sur SOAP (depIoye por exempIe sur UMIX, ecrif en Jovo ef expIoifonf Apoche SOAP pour Jovo) peuf fre consomme por fouf fype de cIienf ecrif pour nimporfe queIIe pIofe-forme, dons nimporfe queI Iongoge, expIoifonf nimporfe queI pockoge SOAP oppIicobIe ceffe combinoison Iongoge/pIofe-forme. Cesf Iune des grondes forces de Io fechnoIogie SOAP. Archifecfure des Services Web Introduction uu Services Web-100 Architecture technique c5t serveur Architecture technique c5t serveur Cesf Iegremenf pIus compIexe puisque nous ovons besoin dun process "Iisfener" (Le Lisfener esf Ie process serveur qui esf en offenfe de connexion cIienf). Mous ovons egoIemenf besoin dune impIemenfofion du service Iui-mme. A porf ceIo, nous nous reposons sur un pockoge SOAP de Io mme foon que du cfe cIienf. Le Iisfener esf souvenf impIemenfe ou frovers dune servIef qui sexecufe comme une oppIicofion web sur un oppserver (comme cesf Ie cos Iorsque nous ufiIisons Apoche SOAP du cfe serveur). Le serveur sero configure pour posser foufes Ies requfes desfinees une cerfoine UPL (IUPL du service SOAP) une servIef porficuIier (oppeIons-Io servIef SOAP). Le frovoiI de Io servIef SOAP esf dexfroire Ie messoge XML- SOAP de Io requfe HTTP, de Ie deserioIiser (de ce foif, seporer Ie nom de Io mefhode ef Ies poromfres fournis), ef dinvoquer Io mefhode du service en consequence. Le resuIfof de Io mefhode esf oIors serioIise, encode HTTP ef renvoye ou demondeur. Archifecfure des Services Web Introduction uu Services Web-101 Architecture technique c5t serveur Architecture technique c5t serveur Le serveur doppIicofion web reoif une requfe HTTP du CIienf SOAP desfinee IUPL de service SOAP(I) ef, en consequence de quoi, Ie posse Io servIef SOAP (Z). Lo servIef SOAP ufiIise Ies foncfionnoIifes de decodoge SOAP ef HTTP incIuses dons Ie pockoge pour exfroire Ies defoiIs de IoppeI des services (3 ef 4), cesf--dire Ie nom ef Ies poromfres de Io mefhode. Une fois muni de ceux-ci, Io servIef SOAP peuf invoquer Io mefhode (b ef o), encoder Io reponse (7 ef 8) ef fournir Io reponse HTTP ou hondIer de requfes HTTP (9), qui son four, repond ou cIienf SOAP (I0) Archifecfure des Services Web Introduction uu Services Web-10Z Le protocoIe SOAP Le Iunguge WSDL L'unnuuire UDDI Le protocoIe SOAP Le protocoIe SOAP Le Iunguge WSDL Le Iunguge WSDL L'unnuuire UDDI L'unnuuire UDDI Prsentution Structure EempIe Archifecfure des Services Web Introduction uu Services Web-103 Prsentution Prsentution Une inferfoce qui coche Ie defoiI de I'impIemenfofion du service, permeffonf une ufiIisofion independonfe : de Io pIofe-forme ufiIisee du Iongoge ufiIise Le fichier WSDL esf ou formof XML ef regroupe foufes Ies informofions necessoires pour inferogir ovec Ie Web Service : Ies mefhodes Ies poromfres ef voIeurs refournees Ie profocoIe de fronsporf ufiIise Io IocoIisofion du service Documenfs WSDL, generes por Ies oufiIs de deveIoppemenf fovorisenf une infegrofion ropide du service Archifecfure des Services Web Introduction uu Services Web-104 Prsentution Prsentution Z fypes de documenfs WSDL : Ie documenf WSDL decrivonf I'inferfoce du service Ie documenf WSDL decrivonf I'impIemenfofion du service Documenfs indispensobIes ou depIoiemenf de Web Services PubIicofion ef recherche de services ou sein de I'onnuoire UDDI se fonf vio ces Z fypes de documenf WSDL Pour I'occs un service porficuIier, un cIienf se voif refourne I'UPL du fichier WSDL decrivonf I'impIemenfofion du service. SeuI I'empIocemenf de ce fichier WSDL esf indique puisque ce dernier reference I'oufre documenf WSDL decrivonf I'inferfoce de mise en uvre du service. Archifecfure des Services Web Introduction uu Services Web-10 Structure Structure Un documenf WSDL esf consfifue de pIusieurs porfies permeffonf Io pIus gronde obsfrocfion possibIe dons Io definifion des services. Ces differenfs eIemenfs permeffenf de seporer Ies briques hobifueIIemenf mises en jeu dons I'ufiIisofion des services Ces briques sonf pour I'essenfieI : L'odresse o esf sifue Ie service Le profocoIe ossocie I'ufiIisofion du service L'ensembIe des operofions occessibIes Les fypes de donnees vehicuIer dons Ies operofions ... Archifecfure des Services Web Introduction uu Services Web-10 Structure Structure Dons un documenf WSDL, on frouvero o porfies permeffonf Io seporofion donf nous venons de porIer. Les quofre premires porfies decrivenf des informofions obsfroifes independonfes d'un confexfe de mise en uvre. On y frouve : Ies fypes de donnees envoyees ef reues Ies operofions ufiIisobIes Ie profocoIe qui sero ufiIise, Les deux dernires porfies decrivenf des informofions Iiees un usoge confexfeI du service. On y frouve : I'odresse du fournisseur impIemenfonf Ie service, Ie service qui esf represenfe por Ies odresses des fournisseurs Archifecfure des Services Web Introduction uu Services Web-107 Structure Structure Les quofre premires porfies, decrivonf Ies informofions obsfroifes independonfes, sonf Ies suivonfes : Purtie 1 - Les types Un fype decrif Io sfrucfure de donnee fronsmise dons un messoge. Purtie Z - Les messuges Un messoge decrif I'ensembIe des donnees fronsmises ou cours de I'operofion (ce peuf fre une requfe ou une reponse) Purtie 3 - Les types de ports Un fype de porf esf compose de I'ensembIe des operofions obsfroifes oppIicobIes ou service. Purtie 4 - Les Iiuisons Lo Iioison decrif Io foon donf un ensembIe d'operofions obsfroifes, oppeIe fype de porf , esf Iie un porf seIon un profocoIe reeI Archifecfure des Services Web Introduction uu Services Web-10 Structure Structure Les deux dernires porfies, decrivonf des informofions Iiees un usoge confexfe du service, sonf Ies suivonfes : Purtie - Les ports Un porf specifie une odresse qui esf ossociee une Iioison definissonf un simpIe poinf de ferminoison Purtie - Le service Un service esf decrif comme un ensembIe de poinfs finoux du reseou oppeIes porfs Archifecfure des Services Web Introduction uu Services Web-109 Structure Structure EempIe : Iu gestion de compte Pour iIIusfrer Ie rIe des differenfes porfies, nous oIIons prendre comme supporf, une oppIicofion frs simpIe de gesfion de compfe, donf voici Io definifion de I'inferfoce Jovo : import java.util.*; public interface CompteInterface { public void depotDe(int montant); public boolean retraitDe(int montant); public int valeurDuSolde(); public Vector listeMouvements(); } Archifecfure des Services Web Introduction uu Services Web-110 Structure Structure Purtie 1 - Les types Un fype decrif Io sfrucfure de donnees fronsmise dons un messoge. Por exempIe, dons Io gesfion de compfe, Io mefhode IisfeMouvemenfs refourne un Vecfor. Mous ourons oIors Io descripfion de ce fype, comme iIIusfre ici : <wsdl:types> <schema targetNamespace="http://xml.apache.org/xml-soap" xmlns="http://www.w3.org/2001/XMLSchema"> <import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> <complexType name="Vector"> <sequence> <element maxOccurs="unbounded" minOccurs="0" name="item" type="xsd:anyType" /> </sequence> </complexType> </schema> </wsdl:types> A noter que duns cet eempIe nous n'uurons que cette dcIurution de type, Les uutres sont des types primitifs connus de WSDL, Le fype defini Le fype esf une sequence WSDL Une Iisfe d'eIemenfs de foiIIe queIconque ef donf Ies eIemenfs sonf de fype queIconque Archifecfure des Services Web Introduction uu Services Web-111 Structure Structure Purtie Z - Les messuges Un messoge decrif fous Ies cos d'usoge d'une operofion (ceIo recouvre I'oppeI, i.e. Io requfe HTTP, ef Ie refour, i.e. Io reponse HTTP). Por exempIe, dons Io gesfion de compfe, Io mefhode IisfeMouvemenfs disposero de deux messoges (un pour I'oppeI ef un pour Io reponse). Mous ourons oIors Io descripfion de ces deux messoges, comme iIIusfre ici : <wsdl:message name="listeMouvementsRequest" /> <wsdl:message name="listeMouvementsResponse"> <wsdl:part name="listeMouvementsReturn" type="apachesoap:Vector" /> </wsdl:message> Archifecfure des Services Web Introduction uu Services Web-11Z Structure Structure Purtie Z - Les messuges Ainsi, comme expIique precedemmenf, nous ourons pour choque mefhode decIoree dons nofre inferfoce, ef consideree comme occessibIe por Ie cIienf, deux messoges. Dons nofre exempIe, nous ourons : <wsdl:message name="listeMouvementsRequest" /> + <wsdl:message name="depotDeRequest"> <wsdl:part name="in0" type="xsd:int" /> </wsdl:message> + <wsdl:message name="listeMouvementsResponse"> <wsdl:part name="listeMouvementsReturn" type="apachesoap:Vector" /> </wsdl:message> + <wsdl:message name="valeurDuSoldeResponse"> <wsdl:part name="valeurDuSoldeReturn" type="xsd:int" /> </wsdl:message> <wsdl:message name="depotDeResponse" /> <wsdl:message name="valeurDuSoldeRequest" /> + <wsdl:message name="retraitDeResponse"> <wsdl:part name="retraitDeReturn" type="xsd:boolean" /> </wsdl:message> + <wsdl:message name="retraitDeRequest"> <wsdl:part name="in0" type="xsd:int" /> </wsdl:message> Archifecfure des Services Web Introduction uu Services Web-113 Structure Structure Purtie 3 - Les types de ports Un fype de porf esf compose de I'ensembIe des operofions obsfroifes oppIicobIes ou service. On enfend por operofion obsfroife, Io signofure de Io mefhode (i.e. Io decIorofion dons une inferfoce Jovo ou dons un fichier WSDL). Une operofion esf composee d'une sequence de messoges (en foif un pour I'oppeI ef un pour Ie refour) un mode d'invocofion porficuIier du service. Por exempIe, dons un confexfe composonfs disfribues, on enfend por mode d'invocofion, une mefhode disfonfe oppIicobIe ou service. En reprenonf nofre exempIe, pour Io mefhode IisfeMouvemenfs, nous ourons oIors Ies deux messoges ossocies : <wsdl:operation name="listeMouvements"> <wsdl:input message="impl:listeMouvementsRequest" name="listeMouvementsRequest" /> <wsdl:output message="impl:listeMouvementsResponse" name="listeMouvementsResponse" /> </wsdl:operation> Archifecfure des Services Web Introduction uu Services Web-114 Structure Structure Purtie 3 - Les types de ports Pour nofre exempIe compIef, nous ourons oIors Io definifion d'un seuI fype de porf, ceIui correspondonf ou service Compfe , ovec Ies 4 operofions obsfroifes, correspondonf oux 4 decIorofions de mefhodes dons I'inferfoce Jovo : <wsdl:portType name="Compte"> + <wsdl:operation name="depotDe" parameterOrder="in0"> <wsdl:input message="impl:depotDeRequest" name="depotDeRequest" /> <wsdl:output message="impl:depotDeResponse" name="depotDeResponse" /> </wsdl:operation> + <wsdl:operation name="retraitDe" parameterOrder="in0"> <wsdl:input message="impl:retraitDeRequest" name="retraitDeRequest" /> <wsdl:output message="impl:retraitDeResponse" name="retraitDeResponse" /> </wsdl:operation> + <wsdl:operation name="valeurDuSolde"> <wsdl:input message="impl:valeurDuSoldeRequest name="valeurDuSoldeRequest" /> <wsdl:output message="impl:valeurDuSoldeResponse name="valeurDuSoldeResponse" /> </wsdl:operation> - <wsdl:operation name="listeMouvements"> <wsdl:input message="impl:listeMouvementsRequest" name="listeMouvementsRequest" /> <wsdl:output message="impl:listeMouvementsResponse name="listeMouvementsResponse" /> </wsdl:operation> </wsdl:portType> Le nom du fype de porf Le nom de I'operofion Lo sequence des messoges Io consfifuonf Un poromfre en enfree Archifecfure des Services Web Introduction uu Services Web-11 Structure Structure Purtie 4 - Les Iiuisons Une Iioison decrif Io foon donf un fype de porf (en d'oufres fermes I'obsfrocfion du service, i.e. ses operofions obsfroifes) esf mis en uvre pour un profocoIe porficuIier (HTTP por exempIe) ef un mode d'invocofion (PPC por exempIe). Ceffe descripfion esf foife pour un ensembIe donne d'operofions obsfroifes. Pour un fype de porf, on peuf ovoir pIusieurs Iioisons, pour differencier Ies modes d'invocofion (PPC ou oufres) ou de fronsporf (HTTP ou oufre) des differenfes operofions. Comme precedemmenf, nous oIIons decrire Ies Iioisons sur nofre exempIe de gesfion de compfe. Pour des roisons de foiIIe (Ie Iongoge WSDL esf frs verbeux), nous ne decrirons Io Iioison que d'une seuIe operofion obsfroife. Archifecfure des Services Web Introduction uu Services Web-11 Structure Structure Purtie 4 - Les Iiuisons <wsdl:binding name="CompteServiceBobSoapBinding" type="impl:Compte"> <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="depotDe"> <wsdlsoap:operation soapAction="" /> <wsdl:input name="depotDeRequest"> <wsdlsoap:body encodingStyle=http://schemas.xmlsoap.org/soap/encoding/ namespace="http://localhost:8080/axis/services/CompteServiceBob" use="encoded" /> </wsdl:input> <wsdl:output name="depotDeResponse"> <wsdlsoap:body encodingStyle=http://schemas.xmlsoap.org/soap/encoding/ namespace=http://localhost:8080/axis/services/CompteServiceBob use="encoded" /> </wsdl:output> </wsdl:operation> ... </wsdl:operation> Le nom de Io Iioison Le fype de porf concerne Le mode d'invocofion Le profocoIe Le nom de I'operofion dons Ie fype de porf Lo represenfofion du messoge requesf Lo represenfofion du messoge response Pour un mme porf (Compfe por exempIe), on peuf ovoir pIusieurs Iioisons qui correspondenf des mises en uvre profocoIoires differenfes des operofions du service. On ne refrouve pos dons Ies Iioisons differenfes, Ies mmes operofions du service. On peuf imoginer que I'operofion IisfeMouvemenfs soif osynchrone. Archifecfure des Services Web Introduction uu Services Web-117 Structure Structure Purtie - Les ports Un porf specifie une odresse UPL qui correspond I'impIemenfofion du service por un fournisseur. Le porf esf ossociee une Iioison definissonf oinsi un simpIe poinf de ferminoison <wsdl:port binding="impl:CompteServiceBobSoapBinding "name="CompteServiceBob"> <wsdlsoap:address location="http://localhost:8080/axis/services/CompteServiceBob" /> </wsdl:port> Le nom de Io Iioison ossociee Le nom du porf L'odresse definissonf Ie endPoinf Comme indique precedemmenf, pour un mme porf (Compfe por exempIe), on peuf ovoir pIusieurs Iioisons qui correspondenf des mises en uvre profocoIoires differenfes des operofions du service. On refrouve donc ici, Ies porfs ossocies oux differenfes Iioisons definies. Archifecfure des Services Web Introduction uu Services Web-11 Structure Structure Purtie - Le service Un service esf decrif comme un ensembIe de poinfs finoux du reseou oppeIes porfs <wsdl:service name="CompteService"> <wsdl:port binding="impl:CompteServiceBobSoapBinding" name="CompteServiceBob"> <wsdlsoap:address location="http://localhost:8080/axis/services/CompteServiceBob" /> </wsdl:port> </wsdl:service> Le nom de Io Iioison ossociee ou porf Le nom du porf L'odresse definissonf Ie endPoinf Le nom du service qui encopsuIe Ies porfs Archifecfure des Services Web Introduction uu Services Web-119 Le protocoIe SOAP Le Iunguge WSDL L'unnuuire UDDI Le protocoIe SOAP Le protocoIe SOAP Le Iunguge WSDL Le Iunguge WSDL L'unnuuire UDDI L'unnuuire UDDI UDDI prsentution UDDI description Informutions mtier de I'entreprise Informutions sur Ie service mtier Informutions de Iiuison Informutions techniques UtiIisution de UDDI Archifecfure des Services Web Introduction uu Services Web-1Z0 UDDI prsentution UDDI prsentution UDDI (UniversoI Descripfion, Discovery ond Infegrofion), sfondord ne sous I'inifiofion de Microsoff, I8M en ffe ef d'un grond nombre d'indusfrieIs donf Sun, OrocIe, Compoq, HP, InfeI, SAP, efc. Sfondord pour fociIifer Io coIIoborofion enfre porfenoires dons Ie codre d'echonges commercioux Le cur de UDDI esf un onnuoire qui confienf des informofions fechniques ef odminisfrofives sur Ies enfreprises ef Ies services qu'eIIes pubIienf Archifecfure des Services Web Introduction uu Services Web-1Z1 UDDI prsentution UDDI prsentution L'onnuoire UDDI permef de : pubIier des informofions sur une enfreprise ef ses services decouvrir des informofions sur une enfreprise ef ses services L'inscripfion sur UDDI permef une enfreprise de se presenfer oinsi que ses services L'odopfion de UDDI fociIife Ie deveIoppemenf des echonges de fype 8Z8 L'enregisfremenf des services dons un onnuoire s'effecfue oprs d'un operofeur (Microsoff ou I8M ocfueIIemenf) frovers son sife Archifecfure des Services Web Introduction uu Services Web-1ZZ UDDI prsentution UDDI prsentution Diverses recherches peuvenf fre effecfuees, comme : recherche por cofegorie d'enfreprise en ufiIisonf des foxonomies ou des idenfificofions d'enfreprise recherche d'un service porficuIier Por une API SOAP, on peuf inferogir ovec UDDI ou momenf de Io concepfion ef de I'execufion des oppIicofions ofin de decouvrir des donnees fechniques sur Ies enfreprises ef Ieurs services. Les services oinsi decouverfs peuvenf ensuife fre ufiIises Archifecfure des Services Web Introduction uu Services Web-1Z3 UDDI prsentution UDDI prsentution UDDI repose sur Ie profocoIe SOAP ef de ce foif, Ies requfes ef reponses sur I'onnuoire sonf des messoges SOAP 4 - SOAP invoque Ie service 3 - SOAP recherche Ie WSDL Z - SOAP recherche Ie service 1 - SOAP pubIie Ie service Archifecfure des Services Web Introduction uu Services Web-1Z4 UDDI prsentution UDDI prsentution L'onnuoire UDDI comporfenf pIusieurs cofegories de donnees : Puges bIunches EIIes recensenf Ies enfreprises ef confiennenf donc des informofions feIIes que : Ie nom de I'enfreprise ses coordonnees des descripfions occessibIes oux cIienfs des idenfifionfs permeffonf de Io refrouver por recherche Puges guunes EIIes confiennenf, ou formof WSDL, Io descripfion des services depIoyes por I'enfreprise. Les services sonf reperfories por cofegorie. Puges bIeues EIIes fournissenf des informofions fechniques defoiIIees sur Ies services Archifecfure des Services Web Introduction uu Services Web-1Z UDDI description UDDI description Le modIe UDDI comporfe b sfrucfures de donnees principoIes decrifes sous forme de schemos XML : 8usinessEnfify : ensembIe d'informofions sur I'enfreprise qui pubIie Ies services dons I'onnuoire 8usinessService : ensembIe d'informofions sur Ies services pubIies por I'enfreprise 8indingTempIofe : ensembIe d'informofions concernonf Ie Iieu d'hebergemenf du service (i.e. odresse du fournisseur) fModeI : ensembIe d'informofions concernonf Ie mode d'occs du service (definifions WSDL) pubIisherAsserfion : ensembIe d'informofions confrocfueIIes enfre porfenoires dons Ie codre d'echonges commercioux Archifecfure des Services Web Introduction uu Services Web-1Z Informutions mtier de I'entreprise Informutions mtier de I'entreprise 8usinessEnfify confienf un ensembIe d'informofions sur Ie mefier de I'enfreprise. On y frouve, por exempIe : Ie fype d'offoires que froife I'enfreprise Ie fype de services qu'eIIe propose son nom so descripfion ses coordonnees Archifecfure des Services Web Introduction uu Services Web-1Z7 Informutions mtier de I'entreprise Informutions mtier de I'entreprise Le schemo XML de Io sfrucfure 8usinessEnfify esf Ie suivonf : Idenfifionfs (coupIes nom/voIeur) possibIes pour I'enfreprise. UfiIes pour Ies cIienfs Iors de recherches Lisfe de coupIes nom/voIeur qui ossocienf une informofion de cIossificofion precise. C'esf une foxonomie indusfrieIIe Lo Iisfe de services pubIies por I'enfreprise (0..^) Un service pubIie Archifecfure des Services Web Introduction uu Services Web-1Z Informutions sur Ie service mtier Informutions sur Ie service mtier 8usinessService confienf un ensembIe d'informofions sur Ie service. On y frouve, por exempIe : Ie nom du service so descripfion son code Les modIes de Iioison confenonf Io descripfion fechnique du service Lisfe de coupIes nom/voIeur qui ossocienf une informofion de cIossificofion precise. Archifecfure des Services Web Introduction uu Services Web-1Z9 Informutions de Iiuison Informutions de Iiuison 8indingTempIofe confienf Ies informofions de Iioison pour occeder oux informofions fechniques sur Ie service. II s'ogif principoIemenf : des references oux fModeIs qui designenf Ies inferfoces de mise en uvres du service du poinf de ferminoison (endpoinf sous forme d'une odresse Infernef) du service Un service peuf dispose de pIusieurs modIes de Iioison Archifecfure des Services Web Introduction uu Services Web-130 Informutions de Iiuison Informutions de Iiuison Le schemo XML de Io sfrucfure 8indingTempIofe esf Ie suivonf : Lo Iisfe des sfrucfure fModeI decrivonf Ie service Poinfe vers un oufre 8indingTempIofe, Iorsque occessPoinf n'esf pos renseigne Poinf d'occs ou service (UPL) Archifecfure des Services Web Introduction uu Services Web-131 Informutions techniques Informutions techniques Un fModeI esf un modIe fype de mise en uvre du service. Un fModeI esf generoIemenf un fichier WDSL donf I'objecfif esf de definir : Ies fypes ufiIises por Ie service Ies operofions oppIicobIes ou service A porfir d'un fModeI, iI esf possibIe de connofre Ies operofions oppIicobIes ef commenf y occeder. C'esf Io represenfofion IDL de Corbo ou de I'inferfoce Jovo Archifecfure des Services Web Introduction uu Services Web-13Z Informutions techniques Informutions techniques Avec Ies fModeIs, Io specificofion UDDI permef d'efobIir une disfincfion enfre obsfrocfion ef impIemenfofion : Lo sfrucfure fModeI represenfe Io signofure, Ies inferfoces ef Ies fypes de descripfion fechniques des mefodonnees. Les modIes 8indingTempIofe, ossocies ou fModeI, en represenfenf Ies impIemenfofions. On o une seporofion enfre inferfoce ef impIemenfofion, ou mme fifre que dons Ies APIs Jovo Por exempIe, un orgonisme peuf decrire Ies specificofions d'une fechnoIogie sous forme de fModeIs PIusieurs indusfrieIs peuvenf ensuife en donner des impIemenfofions sous forme de 8indingTempIofes qui referencenf Ie mme fModeI Archifecfure des Services Web Introduction uu Services Web-133 Informutions techniques Informutions techniques Le schemo XML de Io sfrucfure fModeI esf Ie suivonf : Les references Iiees ou fModeI (UPLs) Idenfifionfs (coupIes nom/voIeur) possibIes pour I'enfreprise. UfiIes pour Ies cIienfs Iors de recherches Lisfe de coupIes nom/voIeur qui ossocienf une informofion de cIossificofion precise. C'esf une foxonomie indusfrieIIe. Archifecfure des Services Web Introduction uu Services Web-134 Informutions contructueIIes Informutions contructueIIes PubIisherAsserfion represenfe des informofions confrocfueIIes pour Ies services pubIies Les osserfions represenfenf Ies rgIes de mise en uvre sous Io forme d'un profocoIe enfre deux porfenoires mefier. Choque rIe esf defini por Ies osserfions Designe Ie premire enfife mefier pour IoqueIIe I'osserfion esf creee Designe Ie deuxime enfife mefier pour IoqueIIe I'osserfion esf creee Designe Ie fype de reIofion Archifecfure des Services Web Introduction uu Services Web-13 Synthse sur Ies informutions Synthse sur Ies informutions Au cours de Io modeIisofion des donnees de descripfion de services dons I'onnuoire, une enfife mefier businessEntity represenfe une informofion mefier qui regroupe un ensembIe d'enfifes services de fype 8usinessService qui vonf fre pubIiees. Une enfife usinessService confienf des informofions fechniques ef descripfives sur Ie service pubIie. Pour ceIo, iI defienf une coIIecfion d'enfifes de fype 8indingTempIofe. Une enfife indingTempIute decrif I'occs ou service ef Io foon de meffre en uvre Ies specificofions fechniques du service. Une enfife tModeI represenfe une specificofion fechnique pouvonf eIIe-mme modeIiser pIusieurs ospecfs concepfueIs Archifecfure des Services Web Introduction uu Services Web-13 Synthse sur Ies informutions Synthse sur Ies informutions Archifecfure des Services Web Introduction uu Services Web-137 UtiIisution de UDDI UtiIisution de UDDI L'onnuoire UDDI permef de : de pubIier Ies services web de decrire Ies services web de decouvrir Ies services web Archifecfure des Services Web Introduction uu Services Web-13 PubIicution de services PubIicution de services Lo pubIicofion de services incIus oussi Io creofion mefier des services (I'impIemenfofion ef Io descripfion) Pour reoIiser Io pubIicofion ef Io descripfion, iI exisfe differenfes possibiIifes : monueIIemenf oufomofiquemenf (porfieIIemenf ou compIfemenf suivonf Ies cos) Lo pubIicofion Io pIus eIemenfoire consisfe envoyer direcfemenf ou demondeur de service, Io descripfion WSDL correspondonfe (por emoiI por exempIe) Archifecfure des Services Web Introduction uu Services Web-139 PubIicution de services PubIicution de services Pour une pubIicofion dons un onnuoire UDDI, iI exisfe pIusieurs possibiIife, suivonf Io visibiIife vouIue por Ie fournisseur : Nud interne UDDI pour une oppIicofion inferne. IIs sonf profeges por un firewoII ef sonf ufiIises en infronef Nud cutuIogue du purtenuire uvec UDDI Les services sonf pubIies sur un nud cofoIogue d'un porfenoire choisi ovec Ies ouforisofions d'occs correspondonfes Nud portuiI UDDI pour une oppIicofion exfronef Les services sonf pubIies pour que Ies porfenoires exfernes puissenf Ies ufiIiser Nud pIuce de murch UDDI pour une reIofion infer-enfreprises Les services sonf Iorgemenf occessibIes pour un porfoge des ressources enfre sysfmes d'informofion Archifecfure des Services Web Introduction uu Services Web-140 Dcouverte de services Dcouverte de services Lo decouverfe de service recouvre : L'ocquisifion des descripfions des services Lo mise en uvre, I'ufiIisofion, des services L'ocquisifion esf effecfuee ou cours de Io modeIisofion pour obfenir des descripfions des services. Lo descripfion peuf fre obfenue de pIusieurs foons : Memorisee en coche (por progromme por exempIe) pour une ufiIisofion uIferieure simpIifiee Dons un fichier IocoI Dons un onnuoire IocoI Au cours de I'execufion, Ies services donf on dispose de Io descripfion sonf mis en uvre. Archifecfure des Services Web Introduction uu Services Web-141 Description de services Description de services Aprs en ovoir obfenue Io descripfion, Ie cIienf peuf invoquer Ie service. Pour ceIo, iI ufiIise Io descripfion, represenfee por des descripfeurs WSDL, pour generer Ies requfes SOAP (ou Ies oppeIs por progromme depuis un Iongoge queIconque) Les APIs SOAP disponibIes ou niveou du posfe cIienf permeffenf de cocher fous Ies defoiIs Iies ou codoge ef ou decodoge des messoges SOAP Archifecfure des Services Web Introduction uu Services Web-14Z API de progrummution UDDI API de progrummution UDDI II exisfe deux APIs de progrommofion pour dioIoguer ovec un onnuoire UDDI API d'inferrogofion dons un onnuoire CeIo consisfe effecfuer des inferrogofions, des recherches d'informofions, sur Ies enfrees d'un onnuoire UDDI. Touf ufiIisofeur o Io possibiIife d'effecfuer des recherches ef donc de meffre en uvre ceffe API API de pubIicofion dons un onnuoire Pour permeffre Io pubIicofion ou Io suppression de services ou sein d'un onnuoire. Ceffe API impose des ouforisofions d'occs ef esf desfinee oux fournisseurs de services ef oux enfreprises desironf pubIier des informofions Ies concernonf Archifecfure des Services Web Introduction uu Services Web-143 Tirs directement des spcificutions disponibIes sur "www,uddi,org" find_binding: Used to locate specific bindings within a registered businessService. Returns a bindingDetail message. find_business: Used to locate information about one or more businesses. Returns a businessList message. find_relatedBusinesses: Used to locate information about businessEntity registrations that are related to a specific business entity whose key is passed in the inquiry. The Related Businesses feature is used to manage registration of business units and subsequently relate them based on organizational hierarchies or business partner relationships. Returns a relatedBusinessesList message. find_service: Used to locate specific services within a registered businessEntity. Returns a serviceList message. find_tModel: Used to locate one or more tModel information structures. Returns a tModelList structure. get_bindingDetail: Used to get full bindingTemplate information suitable for making one or more service requests. Returns a bindingDetail message. get_businessDetail: Used to get the full businessEntity information for one or more businesses or organizations. Returns a businessDetail message. get_businessDetailExt: Used to get extended businessEntity information. Returns a businessDetailExt message. get_serviceDetail: Used to get full details for a given set of registered businessService data. Returns a serviceDetail message. get_tModelDetail: Used to get full details for a given set of registered tModel data. Returns a tModelDetail message. API d'interrogution API d'interrogution Archifecfure des Services Web Introduction uu Services Web-144 Tirs directement des spcificutions disponibIes sur "www,uddi,org" add_publisherAssertions: Used to add relationship assertions to the existing set of assertions. delete_binding: Used to remove an existing bindingTemplate from the bindingTemplates collection that is part of a specified businessService structure. delete_business: Used to delete registered businessEntity information from the registry. delete_publisherAssertions: Used to delete specific publisher assertions from the assertion collection controlled by a particular publisher account. Deleting assertions from the assertioncollection will affect the visibility of business relationships. Deleting an assertion will cause any relationships based on that assertion to be invalidated. delete_service: Used to delete an existing businessService from the businessServices collection that is part of a specified businessEntity. delete_tModel: Used to hide registered information about a tModel. Any tModel hidden in this way is still usable for reference purposes and accessible via the get_tModelDetail message, but is simply hidden from find_tModel result sets. There is no way to actually cause a tModel to be deleted, except by administrative petition. discard_authToken: Used to inform an Operator Site that a previously provided authentication token is no longer valid and should be considered invalid if used after this message is received and until such time as an authToken value is recycled or reactivated at an operator's discretion. See get_authToken. API de pubIicution API de pubIicution Archifecfure des Services Web Introduction uu Services Web-14 Tirs directement des spcificutions disponibIes sur "www,uddi,org" get_assertionStatusReport: Used to get a status report containing publisher assertions and status information. This report is useful to help an administrator manage active and tentative publisher assertions. Publisher assertions are used in UDDI to manage publicly visible relationships between businessEntity structures. Relationships are a feature introduced in generic 2.0 that help manage complex business structures that require more than one businessEntity or more than one publisher account to manage parts of a businessEntity. Returns an assertionStatusReport that includes the status of all assertions made involving any businessEntity controlled by the requesting publisher account. get_authToken: Used to request an authentication token from an Operator Site. Authentication tokens are required when using all other API's defined in the publishers API. This function serves as the program's equivalent of a login request. get_publisherAssertions: Used to get a list of active publisher assertions that are controlled by an individual publisher account. Returns a publisherAssertions message containing all publisher assertions associated with a specific publisher account. Publisher assertions are used to control publicly visible business relationships. get_registeredInfo: Used to request an abbreviated synopsis of all information currently managed by a given individual. API de pubIicution API de pubIicution Archifecfure des Services Web Introduction uu Services Web-14 Tirs directement des spcificutions disponibIes sur "www,uddi,org" save_binding: Used to register new bindingTemplate information or update existing bindingTemplate information. Use this to control information about technical capabilities exposed by a registered business. save_business: Used to register new businessEntity information or update existing businessEntity information. Use this to control the overall information about the entire business. Of the save_xx API's this one has the broadest effect. In UDDI V2, a feature is introduced where save_business can be used to reference a businessService that is parented by another businessEntity. save_service: Used to register or update complete information about a businessService exposed by a specified businessEntity. save_tModel: Used to register or update complete information about a tModel. set_publisherAssertions: (UDDI V2 and later) - used to save the complete set of publisher assertions for an individual publisher account. Replaces any existing assertions, and causes any old assertions that are not reasserted to be removed from the registry. Publisher assertions are used to control publicly visible business relationships. API de pubIicution API de pubIicution Archifecfure des Services Web Introduction uu Services Web-147 Lu scurit et Ies services web Lu scurit et Ies services Lu scurit et Ies services web web Archifecfure des Services Web Introduction uu Services Web-14 Introduction Iu scurit Les modIes de scurit des services Lu scurit et Ies services web Lu scurit et Ies services Lu scurit et Ies services web web Archifecfure des Services Web Introduction uu Services Web-149 Introduction Iu scurit Introduction Iu scurit Comme nous eu fouf Ie Ioisir de Ie dire, Ie concepf de services Web s'opporenfe d'oufres fechnoIogies ouforisonf des inferocfions en reseou, enfre oufres des fechnoIogies propriefoires feIIes que DCOM, COP8A ef I'EDI, ef des fenfofives pIus recenfes, PoseffoMef ef ebXML nofommenf, pour normoIiser Ies inferocfions e-business securisees. Les ospecfs securifoires n'echoppenf pos ceffe infIuence, c'esf pourquoi, nous commencerons por presenfer Ies concepfs generoux Iies Io securife. Ensuife, nous nous inferesserons oux ospecfs securife specifiques des services web, en principoIemenf Ies normes XML dons Ie domoine. Archifecfure des Services Web Introduction uu Services Web-10 Introduction Iu scurit Introduction Iu scurit Dons Ie codre d'une fronsocfion enfre enfreprises, pIusieurs eIemenfs doivenf enfrer en jeu pour fenfer de recreer Io confidenfioIife, I'infegrife, Io goronfie ef Io responsobiIife d'une fronsocfion enfre personnes. Ces eIemenfs sonf : Idenfificofion ef oufhenfificofion Auforisofion ConfidenfioIife ef infegrife PesponsobiIife Definifion des niveoux de securife necessoires Archifecfure des Services Web Introduction uu Services Web-11 Introduction Iu scurit Introduction Iu scurit Identificution et uuthentificution II fouf fouf d'obord confirmer I'idenfife de I'enfife ovec IoqueIIe s'efobIif I'inferocfion. Lors d'une fronsocfion enfre des personnes, I'individu, s'iI n'esf pos dej connu du commeronf, peuf fre recommonde por un fiers de confionce ou jusfifier de son idenfife en presenfonf por exempIe son posseporf ou son permis de conduire. Dons I'environnemenf Infernef sons visoge ef ouverf, Ie mode d'oufhenfificofion Ie pIus repondu esf ceIui des cerfificofs numeriques que deIivrenf ef voIidenf des ouforifes de cerfificofion fierces. Archifecfure des Services Web Introduction uu Services Web-1Z Introduction Iu scurit Introduction Iu scurit Autorisution Avonf d'effecfuer Io fronsocfion, iI esf indispensobIe de sovoir si Io porfie ovec IoqueIIe s'efobIif I'inferocfion esf ouforisee foire ou occepfer I'offre. Dons un scenorio enfre personnes, ce sonf Ies porfies Io fronsocfion ou, Ie cos echeonf, Ieurs superieurs hierorchiques, qui y veiIIenf. Le chef du service des ochofs peuf, por exempIe, devoir ouforiser une fronsocfion si Io focfure deposse un cerfoin monfonf. Dons Ie cos des fronsocfions numeriques, ceffe verificofion esf ossuree por un sysfme d'ouforisofion en Iigne. Archifecfure des Services Web Introduction uu Services Web-13 Introduction Iu scurit Introduction Iu scurit ConfidentiuIit et intgrit Une fronsocfion enfre personnes s'effecfue generoIemenf dons un environnemenf prive choisi pour so discrefion. Les porfies prenonfes verifienf en oufre que fous Ies documenfs ecrifs consignenf rigoureusemenf Ies condifions convenues Iors de Io negociofion. Dons I'univers numerique, Io confidenfioIife ef I'infegrife sonf ossurees por Ie chiffremenf ef Ies signofures numeriques. Le conoI de communicofion enfre Ies porfies esf chiffre pour preserver Io confidenfioIife ef Ies documenfs de Io fronsocfion sonf signes I'oide de cerfificofs d'idenfife numeriques des porfies concernees. Archifecfure des Services Web Introduction uu Services Web-14 Introduction Iu scurit Introduction Iu scurit Dfinition des niveuu de scurit ncessuires Ces condifions de securife de bose sonf essenfieIIes pour Io bonne infegrofion oux environnemenfs reseou feIs ceux rendus possibIes por Ies services Web. Pour oufonf, foufes ces condifions ne sonf pos sysfemofiquemenf indispensobIes. Meonmoins, iI esf bien pIus efficoce de porfir de I'hypofhse que foufes sonf necessoires, puis de proceder por eIiminofion ou momenf de Io definifion des besoins pour un processus mefier specifique que d'essoyer d'ojoufer des foncfionnoIifes de securife oprs coup. Archifecfure des Services Web Introduction uu Services Web-1 Les modIes de scurit des services Les modIes de scurit des services Les principoux sfondords ossocies Io securife des services web sonf : XML Signuture pour Io represenfofion des signofures digifoIes dons un documenf XML XML Encryption pour Ies meconismes d'encrypfoge ef de decrypfoge des documenfs XML SAML-XML (Securify Asserfions Morkup Longuoge) specifie une procedure d'oufhenfificofion XACML (ExfensibIe Access ConfroI Morkup Longuoge) specifie Ies sfrofegies de confrIe d'occs frovers Ie reseou XkMS (XML Iey Monogemenf Specificofion) decrif I'infrosfrucfure cIe pubIique Archifecfure des Services Web Introduction uu Services Web-1 Les modIes de scurit des services Les modIes de scurit des services XML Signuture {Signuture XML} En definissonf un Iongoge XML de represenfofion des signofures numeriques, XML Signofure rempIif frois des principoIes condifions de securisofion des fronsocfions eIecfroniques : I'oufhenfificofion, I'infegrife du messoge ef Io non repudiofion. XML Signofure esf Io seuIe norme de securife des services Web fre ce jour suffisommenf mre pour un depIoiemenf commercioI - Ies oufres normes ne frouveronf pos d'ufiIisofion commercioIe ovonf o I8 mois. Une signofure XML peuf fre generee pour fouf fype de confenu numerique. Pour Ies documenfs XML, eIIe peuf mme fre joinfe direcfemenf ou documenf signe ef profge I'infegrife de fouf ou porfie d'un documenf XML. XML Signofure esf devenue une recommondofion officieIIe du W3C en fevrier Z00Z. Archifecfure des Services Web Introduction uu Services Web-17 Les modIes de scurit des services Les modIes de scurit des services XML Encryption {Chiffrement XML} TechnoIogie compIemenfoire XML Signofure, Ie chiffremenf XML permef Ie chiffremenf ef Ie dechiffremenf seIecfifs d'eIemenfs XML ou de documenfs XML enfiers. XML Encrypfion Synfox ond Processing (synfoxe ef froifemenf du chiffremenf XML), Ie premier documenf du groupe de frovoiI sur Ie chiffremenf XML, esf condidof recommondofion ouprs du W3C. Archifecfure des Services Web Introduction uu Services Web-1 Les modIes de scurit des services Les modIes de scurit des services SAML {Security Assertions Murkup Lunguuge} SAML permef oux enfifes disfribuees d'echonger des informofions d'oufhenfificofion ef d'ouforisofion. Conu pour repondre oux besoins de securife des oppIicofions en reseou, ce Iongoge presenfe pIusieurs ovonfoges, en evifonf por exempIe de repefer Ies procedures d'oufhenfificofion d'un ufiIisofeur pour choque oppIicofion. Archifecfure des Services Web Introduction uu Services Web-19 Les modIes de scurit des services Les modIes de scurit des services XACML {EtensibIe Access ControI Murkup Lunguuge} OASIS soufienf Ie deveIoppemenf de Io norme XACML de confrIe d'occs de forfe gronuIorife. XACML esf cense gerer Ie confrIe de gronuIorife fine des ocfivifes ouforisees, I'impocf des corocferisfiques du demondeur d'occs, Ie profocoIe ufiIise pour Io requfe, I'ouforisofion en foncfion des fypes d'ocfivifes ef I'infrospecfion du confenu (c'esf- -dire I'ouforisofion fondee Io fois sur Ie demondeur ef Ies voIeurs d'offribuf de Io cibIe Iorsque Ies voIeurs des offribufs ne sonf pos connues de I'oufeur des rgIes). Archifecfure des Services Web Introduction uu Services Web-10 Les modIes de scurit des services Les modIes de scurit des services XkMS {XML key Munugement} Lo soisie, Io voIidofion ef Io gesfion des cerfificofs cIe pubIique ou des poires de cIes pubIiques/privees sonf des besoins communs fous Ies efforfs de normoIisofion enonces ovonf. Les groupes W3C ef IETF soufiennenf Ie groupe de frovoiI XIMS qui frovoiIIe sur ces probImes. XIMS ef ses mefhodoIogies secondoires X- PSS ef X-IISS fournissenf une infrosfrucfure pour un service de cerfificofion s'oppuyonf sur Infernef ef infronef ouqueI Ies fournisseurs de services Web peuvenf deIeguer Io compIexife d'une infrosfrucfure cIe pubIique. Ce service prend en chorge I'enregisfremenf, Io recherche, Io voIidofion, Io revocofion ef, en opfion, Io recuperofion des poires de cIes pubIiques/privees ufiIisees pour des fronsocfions e-business cerfifiees. Archifecfure des Services Web Introduction uu Services Web-11 Le modIe ,NET Le modIe JZEE Le modIe ,NET Le modIe ,NET Le modIe JZEE Le modIe JZEE Archifecfure des Services Web Introduction uu Services Web-1Z Prsentution Architecture Commentuires Le modIe ,NET Le modIe JZEE Le modIe ,NET Le modIe ,NET Le modIe JZEE Le modIe JZEE Archifecfure des Services Web Introduction uu Services Web-13 Prsentution Prsentution Les services Web che; Microsoff sonf impIemenfes en ufiIisonf foufe Ies possibiIifes .MET . Ainsi : Les sessions sonf prises en chorge por ASP.MET Lo communicofion HTTP esf gere por IIS Les infrosfrucfures sysfme comme Io monfee en chorge, Ies fronsocfions sonf froifees por Ie modIe COM+ Le cIienf peuf fre un novigofeur ou une oppIicofion Windows (WinForms) ef Ies echonges ovec Ie serveur sonf froifes por I'impIemenfofion SOAP de Microsoff L'impIemenfofion ef I'infegrofion de SOAP dons I'environnemenf nofif de Windows o des impocfs sur Ies performonces Lo bose de foufe Io gesfion des Services Web esf IIS qui gre I'ensembIe des ospecfs Services Web. CeIo vo de Io gesfion des requfes ef reponses jusqu' Io configurofion de Io securife ef des ouforisofions d'occs Archifecfure des Services Web Introduction uu Services Web-14 Prsentution Prsentution L'oufiI VisuoI Sfudio permef de creer grophiquemenf, I'oide d'une pIefhore d'ossisfonfs, des Services Web de fouf nofure. Lo cooperofion des services web por proxy (por progromme en s'oppuyonf sur des API specioIisees) esf prise en chorge por I'environnemenf L'impIemenfofion d'un service en C# suif Ies mmes principes que pour un oufre Iongoge, feI V8.MET ou CoboI.MET Archifecfure des Services Web Introduction uu Services Web-1 Architecture Architecture L'orchifecfure des Services Web dons .MET: Archifecfure des Services Web Introduction uu Services Web-1 Commentuires Commentuires L'orchifecfure des Services Web dons .MET esf fofoIemenf infegree ce qui presenfe Ies ovonfoges suivonfs : Coherence ef homogeneife Performonces opfimoIes Infegrofion des environnemenfs de deveIoppemenf Les inconvenienfs sonf ceux hobifueIIemenf Ionces I'enconfre du geonf Microsoff : Mecessife d'ufiIiser Io gomme des produifs de Io firme. Un bemoI cependonf, puisque Ie modIe des Services Web ouforise une inferoperobiIife fofoIe queIque soif Ies pIofes-formes ef Iongoges. Archifecfure des Services Web Introduction uu Services Web-17 Prsentution Architecture Commentuires Le modIe ,NET Le modIe JZEE Le modIe ,NET Le modIe ,NET Le modIe JZEE Le modIe JZEE Archifecfure des Services Web Introduction uu Services Web-1 Prsentution Prsentution Les services Web dons Io pIofe-forme JZEE consisfe offrir Io gesfion inferne de I'infrosfrucfure divers edifeurs (comme I'usoge de Sun) Pour ce foire, Io pIofe-forme JZEE o efe enrichie des principoIes API suivonfes : JAXP : Jovo API for XML Processins, esf une impIemenfofion compIfe des sfondords XML, Momespoces, SAX, DOM ef XSLT JAX : Jovo Archifecfure for XML 8inding, permef Io froducfion oufomofique d'objefs Jovo en XML ef inversemenf JAXM : Jovo API for XML Messoging, esf une impIemenfofion en Jovo de SOAP I.I ovec pices joinfes JAXRPC : Jovo API for XML PPC, esf oussi une impIemenfofion en Jovo de SOAP, mois ovec une orienfofion PPC JAXR : Jovo API for XML Pegisfries, esf une obsfrocfion d'occs ef de dioIogue ovec differenfs fypes d'onnuoires XML (UDDI, ebXML, ...) Archifecfure des Services Web Introduction uu Services Web-19 Prsentution Prsentution PIusieurs environnemenfs de deveIoppemenf boses sur Io pIofeforme JZEE, permeffenf de creer grophiquemenf, I'oide d'une pIefhore d'ossisfonfs, des Services Web de fouf nofure. Lo cooperofion des services web por proxy (por progromme en s'oppuyonf sur des API specioIisees) esf prise en chorge por Ies environnemenfs, comme pour VisuoISfudio L'impIemenfofion d'un service esf en Jovo, mois peuf fre obfenue de differenfes foons : En porfonf de rien Depuis une descripfion WSDL exisfonfe En definissonf un Jovo8eon En definissonf un EJ8 Session sfofeIess En definissonf une EJ8 M-beon Archifecfure des Services Web Introduction uu Services Web-170 Architecture Architecture L'orchifecfure des Services Web dons JZEE : Archifecfure des Services Web Introduction uu Services Web-171 Commentuires Commentuires L'orchifecfure des Services Web dons JZEE diffre de I'opproche Microsoff dons Io mesure o eIIe ne se moferioIise pos por une impIemenfofion infegree dons Ie sysfme, mois por un ensembIe d'obsfrocfions desfinees fre impIemenfees por divers edifeurs. Les ovonfoges d'une feIIe opproche sonf ceux hobifueIIemenf enonces ou modIe des obsfrocfions Jovo, sovoir : Independonce pIofe-forme ovec Ie Iongoge Iui-mme Innovofion fechnoIogique (d'impIemenfofion) puisque I'impIemenfofion esf Iibre ce qui fovorise Io compefifion enfre Ies edifeurs. Les principoux edifeurs sonf : I8M ovec WebSphere ef son environnemenf WebSphere Sfudio bose sur EcIipse 8EA ovec WebIogic ef son environnemenf Workshop SUM ovec SunOne ef son environnemenf