Introduction Le besoin en services Web Dfinition des services Web Les standards des services Web Architecture oriente Services (SOA) Bibliographie Grard-Michel Cochard cochard@u-picardie.fr Services Web Introduction gnrale Version du 14 janvier 2007 Le besoin en services Web L'change entre systme informatiques puis entre systmes d'information a considrablement t amlior par le progrs technologique en matire de rseaux. Cependant les environnements informatiques des sites censs changer des informations sont trs divers et l'obstacle majeur est l'htrognit des configurations matrielles et logicielles. Le systme UNIX et TCP/IP ont t un premier pas vers une standardisation indpendante des configurations informatiques. Par la suite RPC (Remote Procedure Call) a permis un poste client d'invoquer une procdure situe sur un ordinateur distant. La modlisation objet des donnes a entran des versions "objet" de RPC comme CORBA (Common Object Request Broker Architecture) ou DCOM (Distributed Component Object Model). Mais ces technologies supposent des environnements homognes et ferms. Internet bas sur TCP/IP, pendant ce temps, s'est impos comme communicateur universel, spcialement avec le Web qui ne suppose sur le poste client qu'une simple visionneuse : le navigateur et qui permet d'atteindre tout serveur Web par utilisation d'un protocole trs simple : HTTP (HyperText Transfer Protocol) qui fait transiter l'information sous forme de fichiers HTML dcodables par tous les navigateurs. Deux problmes restaient cependant rsoudre : le partage des donnes et le partage des applications (services). HTML n'tant suffisant, c'est XML qui a pris la suite pour le partage de donnes. Quant au partage des services, c'est la trilogie SOAP-UDDI-WSDL, base sur HTTP et XML, qui a apport les solutions les plus adquates. Dfinition des Services Web Les Services Web (en anglais Web Services) sont une technologie visant rendre les plus inter oprables possibles les applications informatiques via le Web. En gnral une application fonctionnant distance dans le mode client serveur consiste formuler une requte auprs d'un serveur et recevoir de celui-ci (ou d'autres) une rponse sous forme de rsultats. La requte comme les rsultats transitent sous forme de messages. Un service Web est un intermdiaire qui facilite l'accs au "vrai" service et permet la connexion entre applications. L'aspect important recherch dans les services Web est la communication via Internet entre applications distances indpendamment de tout langage de programmation et de toute configuration informatique. Ceci s'effectue en partie grce l'utilisation du Web (et donc du protocole HTTP bien rpandu et connu) et au langage universel XML. En effet, pour un change de donnes entre applications, il faut un encodage des donnes (XML), un mode de transport (HTTP) et une organisation des requtes et des rponses. On peut donner d'un service Web une liste (complexe) de ses caractristiques : un service Web est un module logiciel faiblement coupl ; un service Web encapsule ses fonctionnalits un service Web peut tre accessible par programme un service Web peut tre dynamiquement repr et inclus dans une application les services Web sont rpartis sur Internet les services Web sont dcrits par un langage spcifique et une dfinition rapide : Un service Web est un service logiciel dcrit dans un document de WSDL, enregistr dans UDDI et capable de transporter des documents XML utilisant SOAP et HTTP. Voir : http://www.microsoft.com/net/basics/webservicesoverview.asp 3 aspects sont, en effet, considrer pour un service Web : l'change : description de la structure des messages changs entre les applications (ou plus exactement entre le client et le service Web ; le standard SOAP (Simple Object Access Protocol) et le standard XML-RPC (XML Remote Procedure Call) concernent cet aspect qui est quelquefois appel invocation (connexion et interaction du client avec le service). la dcouverte : il s'agit de trouver le "bon" service rpondant une requte ; le standard UDDI (Universal Description Discovery and Integration) porte sur cet aspect. la description du Web Service est assure par le standard WSDL (Web Service Description Language). Ces standards sont proposs par le W3C ( http://www.w3.org/2001/01/WSWS/ ) et OASIS ( http://www.oasis-open.org ) . Exemples de services Web : demander un tarif rcuprer les caractristiques d'un produit traduire en anglais un texte en franais rcuprer les cours de la bourse les plus rcents Lorsqu'on dsire un service, il faut d'abord l'identifier et le trouver : c'est le rle d'UDDI, sorte d'annuaire, et de WSDL qui dcrit le service (y compris son cot !). Ensuite il faut y accder avec XML-RPC ou SOAP. videmment tous les services que l'on souhaite n'existent pas ncessairement, il faut d'abord regarder s'ils existent avant d'en construire un sa mesure. Citons d'ores et dj deux services "illustres" : celui de Google (http://www.google.com/apis/ - service de recherche) et celui de Amazon (http://www.amazon.com/gp/browse.html/103-5715902-3907065?node=3435361 - en fait, une panoplie de services ) Un avantage moins vident des services Web est leur possibilit de passer travers les firewalls. En effet, comme ils sont bass sur les technologies du Web (et notamment HTTP), ils peuvent atteindre le port 80 (celui du Web par dfaut) qui est toujours ouverts contrairement aux autres ports. En, fait on peut considrer que les services Web constituent la troisime gnration d'applications Web. La premire gnration correspondait aux sites Web statiques avec HTML. La deuxime gnration est celle des sites dynamiques avec ASP, PHP, JSP, .... Le mcanisme des services Web est schmatis ci-dessous de manire plous complte : 1 : Le fournisseur de service fait connatre le service qu'il propose de mettre disposition 2 : Le client recherche dans l'annuaire le service souhait avec des critres de slection 3 : L'annuaire renvoie la ou les rponses au client 4 : Le client se connecte au fournisseur pour connatre le contrat de service 5 : Le serveur renvoie le format d'change 6 : Le client demande le service 7 : le serveur renvoie les rsultats. Dans les changes, le rectangle vert indique un fichier XML. Les standards des services Web On peut reprsenter les divers standards par un modle en couches : (d'aprs M. Pontacq, Evidian) Les quatre couches de base sont Transport (HTTP), Echange (SOAP), Description (WSDL), Dcouverte (UDDI). Les quatre protocoles correspondants HTTP, SOAP, WSDL, UDDI ne sont pas uniques (par exemple XMPL-RPC est une alternative SOAP). Ils sont cependant actuellement les plus rpandus. Le tableau suivant rsume l'tat des lieux en ce qui concerne les couches de base (voir JDNet Solutions mai 2003, http://solutions.journaldunet.com/0305/030530_webservices.shtml ) : Les couches "latrales" Securit et Transactions correspondent aussi des propositions de protocoles : Pour les dtails, nous renvoyons le lecteur aux sites suivants : UDDI : http://www.uddi.org WS-Inspection : http://www.microsoft.com XRI : http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=xri WSDL : http://www.w3.org/TR/wsdl SOAP : http://www.w3.org/TR/soap/ WS-Addressing : http://www.microsoft.com BTP : http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=business-transaction WSCL : http://www.w3.org/TR/wscl10/ SAML : http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=security XACML : http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=xacml WS-Security : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwssecur/html/securitywhitepaper.asp XrML : http://www.xrml.org/ Voir aussi le site http://lists.w3.org/Archives/Public/www-ws-arch/2004Feb/0022.html pour une compilation des spcifications des services Web. Architecture oriente service SOA (Service-Oriented Architecture) dsigne une architecture de systme d'information d'entreprise, conceptualise par l'Institut Gartner, bas sur la notion de service. Les processus mtiers sont atteints par un ensemble de services indpendants et rutilisables. Ces services peuvent cooprer pour excuter un processus mtier. Les services envisags peuvent tre des services Web (ce n'est pas essentiel). Dans une SOA, un service Web est un composant encapsulant une fonction. Il consiste en l'excution d'une action par un lment "fournisseur" l'attention d'un lment "consommateur". Ce composant peut tre interrog avec une requte (comportant gnralement des paramtres) et fourni une ou plusieurs rsultats. la description des services est standardise ; le principal format de description est WSDL (sans surprise). chaque service est publi dans un annuaire (registry ou repository) dans lequel on peut rechercher un service particulier. Le principal standard utilis est UDDI (sans surprise). un service peut tre invoqu par un client par un moyen standard ; le standard principal est SOAP (sans surprise). Voir : http://solutions.journaldunet.com/dossiers/pratique/soa.shtml Les caractristiques d'une SOA sont principalement la modularit des services qui implique indpendance et facilit de maintenance la rutilisabilit des services la possibilit d'une volution par modification de services ou ajout de services Bibliographie et Webographie James SNELL, Doug TISWELL, Pavel KULCHENKO, Programming Web Services with SOAP, O'Reilly Cyril VINCENT, XML et les services Web, ENI Editions, informatique technique
http://www.commentcamarche.net/web-services/web-service.php3 , introduction trs lgre mais non inintressante http://www.w3schools.com/webservices/ws_intro.asp, un classique mais on reste souvent sur sa faim http://disc.inria.fr/perso/philippe.poulard/cours/10-xml-web-services.pdf, une introduction sympathique http://solutions.journaldunet.com/dossiers/webservices/sommaire.shtml, une introduction synthtique http://www.labri.fr/perso/pecher/Enseignements/06-07/L3InfoR/C11/cours11.pdf, un cours en diapos http://www.phptr.com/articles/article.asp?p=336265&rl=1, un panorama... Services Web Introduction gnrale Version du 14 janvier 2007 Le besoin en services Web L'change entre systme informatiques puis entre systmes d'information a considrablement t amlior par le progrs technologique en matire de rseaux. Cependant les environnements informatiques des sites censs changer des informations sont trs divers et l'obstacle majeur est l'htrognit des configurations matrielles et logicielles. Le systme UNIX et TCP/IP ont t un premier pas vers une standardisation indpendante des configurations informatiques. Par la suite RPC (Remote Procedure Call) a permis un poste client d'invoquer une procdure situe sur un ordinateur distant. La modlisation objet des donnes a entran des versions "objet" de RPC comme CORBA (Common Object Request Broker Architecture) ou DCOM (Distributed Component Object Model). Mais ces technologies supposent des environnements homognes et ferms. Internet bas sur TCP/IP, pendant ce temps, s'est impos comme communicateur universel, spcialement avec le Web qui ne suppose sur le poste client qu'une simple visionneuse : le navigateur et qui permet d'atteindre tout serveur Web par utilisation d'un protocole trs simple : HTTP (HyperText Transfer Protocol) qui fait transiter l'information sous forme de fichiers HTML dcodables par tous les navigateurs. Deux problmes restaient cependant rsoudre : le partage des donnes et le partage des applications (services). HTML n'tant suffisant, c'est XML qui a pris la suite pour le partage de donnes. Quant au partage des services, c'est la trilogie SOAP-UDDI-WSDL, base sur HTTP et XML, qui a apport les solutions les plus adquates. Dfinition des Services Web Les Services Web (en anglais Web Services) sont une technologie visant rendre les plus inter oprables possibles les applications informatiques via le Web. En gnral une application fonctionnant distance dans le mode client serveur consiste formuler une requte auprs d'un serveur et recevoir de celui-ci (ou d'autres) une rponse sous forme de rsultats. La requte comme les rsultats transitent sous forme de messages. Un service Web est un intermdiaire qui facilite l'accs au "vrai" service et permet la connexion entre applications. L'aspect important recherch dans les services Web est la communication via Internet entre applications distances indpendamment de tout langage de programmation et de toute configuration informatique. Ceci s'effectue en partie grce l'utilisation du Web (et donc du protocole HTTP bien rpandu et connu) et au langage universel XML. En effet, pour un change de donnes entre applications, il faut un encodage des donnes (XML), un mode de transport (HTTP) et une organisation des requtes et des rponses. On peut donner d'un service Web une liste (complexe) de ses caractristiques : un service Web est un module logiciel faiblement coupl ; un service Web encapsule ses fonctionnalits un service Web peut tre accessible par programme un service Web peut tre dynamiquement repr et inclus dans une application les services Web sont rpartis sur Internet les services Web sont dcrits par un langage spcifique et une dfinition rapide : Un service Web est un service logiciel dcrit dans un document de WSDL, enregistr dans UDDI et capable de transporter des documents XML utilisant SOAP et HTTP. Voir : http://www.microsoft.com/net/basics/webservicesoverview.asp 3 aspects sont, en effet, considrer pour un service Web : l'change : description de la structure des messages changs entre les applications (ou plus exactement entre le client et le service Web ; le standard SOAP (Simple Object Access Protocol) et le standard XML-RPC (XML Remote Procedure Call) concernent cet aspect qui est quelquefois appel invocation (connexion et interaction du client avec le service). la dcouverte : il s'agit de trouver le "bon" service rpondant une requte ; le standard UDDI (Universal Description Discovery and Integration) porte sur cet aspect. la description du Web Service est assure par le standard WSDL (Web Service Description Language). Ces standards sont proposs par le W3C ( http://www.w3.org/2001/01/WSWS/ ) et OASIS ( http://www.oasis-open.org ) . Exemples de services Web : demander un tarif rcuprer les caractristiques d'un produit traduire en anglais un texte en franais rcuprer les cours de la bourse les plus rcents Lorsqu'on dsire un service, il faut d'abord l'identifier et le trouver : c'est le rle d'UDDI, sorte d'annuaire, et de WSDL qui dcrit le service (y compris son cot !). Ensuite il faut y accder avec XML-RPC ou SOAP. videmment tous les services que l'on souhaite n'existent pas ncessairement, il faut d'abord regarder s'ils existent avant d'en construire un sa mesure. Citons d'ores et dj deux services "illustres" : celui de Google (http://www.google.com/apis/ - service de recherche) et celui de Amazon (http://www.amazon.com/gp/browse.html/103-5715902-3907065?node=3435361 - en fait, une panoplie de services ) Un avantage moins vident des services Web est leur possibilit de passer travers les firewalls. En effet, comme ils sont bass sur les technologies du Web (et notamment HTTP), ils peuvent atteindre le port 80 (celui du Web par dfaut) qui est toujours ouverts contrairement aux autres ports. En, fait on peut considrer que les services Web constituent la troisime gnration d'applications Web. La premire gnration correspondait aux sites Web statiques avec HTML. La deuxime gnration est celle des sites dynamiques avec ASP, PHP, JSP, .... Le mcanisme des services Web est schmatis ci-dessous de manire plous complte : 1 : Le fournisseur de service fait connatre le service qu'il propose de mettre disposition 2 : Le client recherche dans l'annuaire le service souhait avec des critres de slection 3 : L'annuaire renvoie la ou les rponses au client 4 : Le client se connecte au fournisseur pour connatre le contrat de service 5 : Le serveur renvoie le format d'change 6 : Le client demande le service 7 : le serveur renvoie les rsultats. Dans les changes, le rectangle vert indique un fichier XML. Les standards des services Web On peut reprsenter les divers standards par un modle en couches : (d'aprs M. Pontacq, Evidian) Les quatre couches de base sont Transport (HTTP), Echange (SOAP), Description (WSDL), Dcouverte (UDDI). Les quatre protocoles correspondants HTTP, SOAP, WSDL, UDDI ne sont pas uniques (par exemple XMPL-RPC est une alternative SOAP). Ils sont cependant actuellement les plus rpandus. Le tableau suivant rsume l'tat des lieux en ce qui concerne les couches de base (voir JDNet Solutions mai 2003, http://solutions.journaldunet.com/0305/030530_webservices.shtml ) : Les couches "latrales" Securit et Transactions correspondent aussi des propositions de protocoles : Pour les dtails, nous renvoyons le lecteur aux sites suivants : UDDI : http://www.uddi.org WS-Inspection : http://www.microsoft.com XRI : http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=xri WSDL : http://www.w3.org/TR/wsdl SOAP : http://www.w3.org/TR/soap/ WS-Addressing : http://www.microsoft.com BTP : http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=business-transaction WSCL : http://www.w3.org/TR/wscl10/ SAML : http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=security XACML : http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=xacml WS-Security : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwssecur/html/securitywhitepaper.asp XrML : http://www.xrml.org/ Voir aussi le site http://lists.w3.org/Archives/Public/www-ws-arch/2004Feb/0022.html pour une compilation des spcifications des services Web. Architecture oriente service SOA (Service-Oriented Architecture) dsigne une architecture de systme d'information d'entreprise, conceptualise par l'Institut Gartner, bas sur la notion de service. Les processus mtiers sont atteints par un ensemble de services indpendants et rutilisables. Ces services peuvent cooprer pour excuter un processus mtier. Les services envisags peuvent tre des services Web (ce n'est pas essentiel). Dans une SOA, un service Web est un composant encapsulant une fonction. Il consiste en l'excution d'une action par un lment "fournisseur" l'attention d'un lment "consommateur". Ce composant peut tre interrog avec une requte (comportant gnralement des paramtres) et fourni une ou plusieurs rsultats. la description des services est standardise ; le principal format de description est WSDL (sans surprise). chaque service est publi dans un annuaire (registry ou repository) dans lequel on peut rechercher un service particulier. Le principal standard utilis est UDDI (sans surprise). un service peut tre invoqu par un client par un moyen standard ; le standard principal est SOAP (sans surprise). Voir : http://solutions.journaldunet.com/dossiers/pratique/soa.shtml Les caractristiques d'une SOA sont principalement la modularit des services qui implique indpendance et facilit de maintenance la rutilisabilit des services la possibilit d'une volution par modification de services ou ajout de services Bibliographie et Webographie James SNELL, Doug TISWELL, Pavel KULCHENKO, Programming Web Services with SOAP, O'Reilly Cyril VINCENT, XML et les services Web, ENI Editions, informatique technique
http://www.commentcamarche.net/web-services/web-service.php3 , introduction trs lgre mais non inintressante http://www.w3schools.com/webservices/ws_intro.asp, un classique mais on reste souvent sur sa faim http://disc.inria.fr/perso/philippe.poulard/cours/10-xml-web-services.pdf, une introduction sympathique http://solutions.journaldunet.com/dossiers/webservices/sommaire.shtml, une introduction synthtique http://www.labri.fr/perso/pecher/Enseignements/06-07/L3InfoR/C11/cours11.pdf, un cours en diapos http://www.phptr.com/articles/article.asp?p=336265&rl=1, un panorama...