Chapitre 1-
Les services Web-Introduction
Responsables du cours :
Héla HACHICHA
Année Universitaire : 2014 - 2015
Les services Web
Objectifs
Généralités (définition, évolution)
Architecture des services web
Briques de l’architecture de base
SOAP
WSDL
UDDI
Implémentations
Les APIs Java (JAXP, JAX-RPC, JAXM, JAXR, JAXB)
Implémentation avec JAX-RPC
Apache SOAP, Apache Axis
Conclusion
2
Besoins des Applications Web
3
Le Web classique
Conçu pour les applications à interactions humaines
Partage d'information
E-commerce de type B2C
Extensions nécessaires : Nouveaux besoins
Accès à l'information depuis des programmes
Processus de e-commerce B2B automatisés
Interopérabilité entre applications
Plate-forme pour le calcul distribué
Principes des services Web
4
Proposer une plate-forme de traitement distribuée
autour d'Internet/Intranet
Permettre l'interopérabilité totale entre composants
Offrir un modèle de composants simple
Modules avec interfaces de fonctions
Permettre de découvrir dynamiquement les
services
Annuaire de services et service de recherche
Offrir des outils d'intégration de composants à
l'échelle de l'Internet ou de l'Intranet
Exemple d'applications
5
Diffusion d'information
horaires, incidents, états de stocks
cours de bourse, entrées d'annuaires, etc.
Contrôle d'information
autorisation de cartes de crédits
authentification d'un client
Mise à jour de logiciels
Documentation automatique
présentation, marketing, veille technologique
librairie électronique, manuels, maintenance, etc.
communication et "knowledge management"
Commerce électronique
présentation, sélection, transaction, médiation, etc.
Définition
6
Les Services Web sont des services offerts via le
web
Par exemple, un client demande le prix d’un article
en envoyant un message sur le web. Ce message
contient la référence de l’article. Le Service Web va
recevoir la référence, effectuer le traitement du
service et renvoyer le prix au client via un autre
message
Un Service Web, c’est quoi ?
Un service Web est une « unité logique
applicative » accessible en utilisant les
protocoles standard d’Internet
Une «librairie» fournissant des données et des
services à d’autres applications.
Un objet métier qui peut être déployé et combiné
sur Internet avec une faible dépendance vis-à-vis
des technologies et des protocoles.
Combine les meilleurs aspects du
développement à base de composants et du
Web.
7
Un Service Web, c’est quoi ?
Un Web service est un composant logiciel identifié par une
URI, dont les interfaces publiques sont définies et appelées en
XML.
Sa définition peut être découverte par d'autres systèmes
logiciels.
Les services Web peuvent interagir entre eux d'une manière
prescrite par leurs définitions, en utilisant des messages XML
portés par les protocoles Internet.
proposant diverses fonctionnalités que d’autres programmes
peuvent
découvrir dynamiquement
et utiliser grâce à des protocoles
décrits en XML
basés sur l’échange de messages
écrits en XML
transmis par HTTP, FTP, SMTP, etc.(http://www.w3.org/TR/ws-gloss/)
8
Un Service Web, c’est quoi ?
URI : Uniform Resource Identifier : Exemples
URL : http://www.w3.org/
mail : mailto:getlost@nospam.org
FTP : ftp://ftp.ufrmd.dauphine.fr/pub/docs/
Un service web est
un programme accessible par internet
par l’intermédiaire de messages XML
transmis par HTTP
Un standard pour les systèmes répartis basés sur
XML+HTTP
Une vision plus simple
9
Un Service Web, c’est quoi ?
Caractéristiques:
Réutilisable
Indépendamment de
la plate-forme (UNIX, Windows, …)
l’implémentation (VB, C#, Java, …)
l’architecture sous-jacente (.NET, J2EE,
Axis…)
10
Architectures existantes
12
Architecture 2 tiers Architecture n tiers
Client x
Serveur
Client zClient y
Client x
Serveur A
Client y Client z
Objet métier
(CORBA,DCOM,RMI…)
Serveur B
Serveur C
INTRANETINTRANET
Architectures existantes
13
• L’architecture 2 tiers fonctionnait très bien mais a
vite montré ses limitations de part l’apparition de
systèmes hétérogènes devant être interfacés
• C’est alors que l’architecture n tiers est arrivée,
permettant l’interfaçage de différents systèmes mais
entraînant un investissement en terme de puissance
serveurs et fluidité des réseaux
Architecture des Services Web
14
Client x
Serveur A
Client y
Client z
Objet
métier A
Serveur B
Serveur C
S
E
R
V
I
C
E
W
E
B
Objet
métier B
Objet
métier C
INTERNET INTRANET
Le Service Web apparaît donc ici clairement comme une interface entre les clients
disséminés sur Internet et les différents objets métiers permettant l’accès aux
serveurs de données
Le Web 3ème génération :
Architecture Web Services
16
Service
Requester
Service
Provider
Service
Provider
Service
Provider
Service
Provider
WEB-HTTP
CLIENT
Service
Registry
Request
Request
Request
Request
Publish
Publish
Publish
Publish
Find
SERVEUR
SERVEUR
SERVEUR
SERVEUR
SERVEUR
Pourquoi faire ?
Les services Web permettent d’interconnecter :
Différentes entreprises
Différents matériels
Différentes applications
Différents clients
Distribuer et intégrer des logiques métiers
Vers le Web sémantique
Les services Web sont faiblement couplés
17
Quels objectifs ?
Remplacer les protocoles actuels (RPC,DCOM,RMI)
par une approche entièrement ouverte et
interopérable, basée sur la généralisation des
serveurs Web avec scripts CGI.
Faire interagir des composants hétérogènes,
distants, et indépendants avec un protocole standard
(SOAP).
Dédiés aux applications B2B (Business to Business),
EAI (Enterprise Application Integration), P2P (Peer to
Peer).
18
Et plus concrètement ?
Une nouvelle technologie des objets distribués ?
Invocation distante des services Web : SOAP (~IIOP)
Description des services Web : WSDL (~IDL)
Enregistrement et découverte de services Web : UDDI
(~NameService)
Basés sur des standards XML
Standards du W3C : XML, SOAP, WSDL
Standards industriels : UDDI, ebXML
Propriétaires : DISCO, WSDD, WSFL, ASMX, …
Implémentations actuelles :
Microsoft .Net
Sun JavaONE : J2EE + Web services (WSDP = JAXP,JAX-
RPC,JAXM…)
Apache XSOAP / Axis, IBM WSTK
Oracle, Bea, Iona, Enhydra …
19
Architecture de base
20
Trois acteurs :
le fournisseur de service (service provider ) :
définit le service
publie sa description dans l’annuaire
réalise les opérations
l’annuaire (discovery agency, Service Registry ) :
reçoit et enregistre les descriptions de services publiées par les
fournisseurs
reçoit et répond aux recherches de services lancées par les
clients
le client (service requestor ) :
obtient la description du service grâce à l’annuaire
utilise le service
Cycle de vie d’utilisation
22
7: Réponse SOAP
5: Requête SOAP
1: Inscription2: Recherche
de service 3: Description
WSDL
4: Construction
requête 6: Traitement
UDDI
Fournisseu
r
Client
Cycle de vie complet
23
Etape 1 : Déploiement du service Web
Dépendant de la plate-forme (Apache : WSDD)
Etape 2 : Enregistrement du service Web
WSDL : description du service
Référentiels : DISCO (local), UDDI (global)
Etape 3 : Découverte du service Web
Etape 4 : Invocation du service Web par le client
Briques de l’architecture de base
SOAP (Simple Object Access Protocol) :
version 1.1 : mai 2000 (http://www.w3c.org/TR/SOAP/)
version 1.2 : CR en décembre 2002
cadre général permettant l’échange de données
structurées au format XML
protocole de transport de ces données basé sur HTTP
WSDL (Web Services Description Language) :
version 1.1 : mars 2001
(http://www.w3.org/TR/2001/NOTE-wsdl-20010315)
version 1.2 : Working Draft
dialecte XML permettant de décrire un service web
UDDI (Universal Data Description Interface) :
version 3 : juillet 2002 (http://uddi.org/pubs/uddi-v3.00-published-
20020719.htm)
annuaire permettant d’enregistrer et de rechercher des descriptions de
services web
29
Mise en œuvre de l’architecture
1. Communication : SOAP/HTTP
2. Description : WSDL
3. Publication et Recherche : UDDI
Attention : l’architecture précise
des formats (dialecte XML)
des sémantiques associées (sens de chaque
élément des documents XML)
des protocoles (e.g., utilisation de HTTP pour
transmettre des messages SOAP)
des services web standards (comme les API de
UDDI)
31