Web Services
Plan
Principes
Besoins pour assurer le web services (SOAP,
WSDL, UDDI)
Cycle de vie d’un web service Tomcat / Axis
Exemple de développement d’un Web service
Conclusion
Définition
Les Web Services 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
Web Service va recevoir la référence, effectuer
le traitement du service et renvoyer le prix au
client via un autre message.
Avantage du web service
Peut appeler à distance à travers un
réseau, indépendamment du système
d'exploitation et du langage de
programmation utilisé.
Par exemple, un client écrit en PHP
s'exécutant sur Unix peut utiliser un
service web développé en Java qui
s'exécute sur Windows et inversement.
Principes
Pourquoi proposer des
nouveaux Approches pour le
web services
Besoins pour un service
Invocation, visant à décrire la structure des
messages échangés par les applications.
Découverte, pour permettre de rechercher et de
localiser un service web particulier dans un
annuaire de services décrivant le nom de la
société, l'objectif de chaque service, etc.
Description, dont l'objectif est la description des
interfaces (paramètres des fonctions, types de
données) des services web.
4 propriétés du service à retenir
• Un Service est Autonome
et sans état (en général, c.ex
• Un Service expose un Contrat
WSRF)
Conditions Générales de Vente
Règlement Intérieur
in Vos droits/Vos devoirs
• Les Frontières entre services sont out
Explicites
• Les services communiquent
par messages
(c) 2007, Occello Audrey, SAR O2/SAR
O3 SOA -7-
Standards utilise pour le web
service
Un nouveau Protocole : SOAP = HTTP + XML
Requête/réponse = message xml
WSDL - Description de service web
Description des interfaces des services
UDDI - Découverte automatique des services
(dynamicité)
Annuaire contenant les interfaces (Pages Jaunes,
Vertes, Blanches)
SOAP (Simple Object Access
Protocol)
Protocole d’échange de messages (client /
serveur)
Protocole permettant des appels de procédures
à distances
Basé sur 2 standards
XML pour bien structure les messages
HTTP pour le transport des messages
Concepts
Message = Enveloppe ( Header + Body )
SOAP (Simple Object Access
Protocol)
Définition
SOAP envelope
Structure d’un message
SOAP Encoding rules
Règle d’encodage des types de données
SOAP RPC
Convention de représentation des appel de methodes
HTTP Extension framework
Echange de message sur http
Structure d’un Message SOAP
WSDL
Web Services Description
Language
WSDL
Langage de définition de Web Services
Basé entièrement sur XML
Standard W3C (Initiative IBM et Microsoft)
Actuellement WSDL 1.1
Définition de l’interface, de l’URL et du
port du Web Service.
Présentation
Une description WSDL :
1. Décrit le type d’un service web (méthodes, types
des paramètres)
2. Décrit les aspects techniques d’implantation d’un
service web (quel est le protocole utilisé, quel est le
l’adresse du service)
Cette description sert à se connecter concrètement
à un service web.
Structure du fichier WSDL
Un fichier WSDL contient une description de tout ce qui est
nécessaire à l'appel d'un service Web SOAP :
types: cette balise décrit les types utilisés
message: cette balise décrit la structure d’un message échangé
portType: cette balise décrit un ensemble d’opérations (interface d’un
service web)
operation: cette balise décrit une opération réalisée par le service web. Une
opération reçoit des messages et envois des messages.
binding: décrit le lien entre un protocole (http) et un portType.
service: cette balise décrit un service comme un ensemble de ports.
port: cette balise décrit un port au travers duquel il est possible d’accéder à
un ensemble d’opérations. Un port référence un Binding
Cycle de vie d’un Web
Service avec Tomcat /
Axis
Infrastructure
Apache Web Server
Serveur d’ applications TOMCAT
(Servlets, JSP)
Xerces, API Java de parsing XML
API SOAP
Introduction
Définition du Servlet (Notion)
Une Servlet est un objet Java qui fonctionne en mode
requête/reponse
Une Servlet http est une serlvet qui est capable de
traiter des requête http et qui est capable de renvoyer
des réponses http.
Un moteur (container) de Servlet est une
application qui reçoit des requêtes http et qui les
transmet aux Servlet
Tomcat (couplage avec Apache),
Axis
Axis fournit une Servlet (AxisServlet) qui reçoit
des message SOAP sur http et qui transforme
l’appel en un appel de méthode classique Java
Développer un Web Service revient alors à
développer un objet Java et à enregistrer ses
méthodes auprès de la Servlet AxisServlet.
Les clients envoient alors leurs messages SOAP
sur http à AxisServlet.
Conception du service dans le
serveur Tomcat / Axis
Annuaire UDDI
yp
wsdl
wp
Tomcat
APACHE
Client HTTP
Services
XML parser
1. Conception
Disponibilité de Service après le
déploiement
Annuaire UDDI
yp
wsdl
wp
Tomcat
APACHE
Client HTTP
Services
XML parser
Service a été
déployé donc
sera disponible
Enregistrement du fichier WSDL dans
l’annuaire UDDI pour assure la découverte
automatique
Annuaire UDDI
2. Enregistrement
yp
wsdl
wp wsdl
Tomcat
APACHE
Client HTTP
Services
XML parser
Découverte du service
Annuaire UDDI
wsdl yp
wsdl
4. Envoi fichier wp
WSDL
3. Demande service Tomcat
APACHE
Client HTTP
Services
XML parser
Client envoie le message au
serveur par le protocole SAOP
Annuaire UDDI
yp
wsdl
wp
Tomcat
4. Invocation service
APACHE
par message SOAP
Client HTTP
Services
wsdl XML parser
Traitement de la demande Génération
de la
réponse
Traitement
Annuaire UDDI du service
demande
yp
wsdl
wp
Tomcat
APACHE
Client HTTP
Services
wsdl XML parser
AxisServlet reçoit
le message du
client
Émission la réponse par
message SOAP
Annuaire UDDI
yp
wsdl
wp
Tomcat
APACHE
5. Envoie la réponse
Client HTTP
Services
wsdl XML parser
Émission
de la
réponse
Références
SOAP : http://www.w3.org/TR/SOAP/
WSDL : http://www.w3.org/TR/2001/NOTE-wsdl-
20010315
UDDI : http://www.uddi.org/
Apache SOAP : http://xml.apache.org/soap/