Vous êtes sur la page 1sur 13

Module D314

Ingnierie des systmes base de services


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...