Developpement d'un web service cours avancé
Du XML au Services Web Services Web
Samir Tata
Département INFormatique
GET/INT
2005-2006
1
Services Web
Origines
Définition et architecture
WSDL
SOAP
UDDI
2005-2006
2
Orientation Service : les origines
• Programmation orientée structure
– procédures, fonctions et données structurées
– applications monolithiques, applications serveurs isolées
• Programmation orientée objet
– classes (fonctions et données structurées)
– applications monolithiques, applications c/s isolées
• Programmation orientée composant
– composant (groupe d’interfaces)
– implémentation agnostique
– interaction application-application fonctionne
2005-2006
3
Orientation Service : les origines
• POS, POO, POC : pourquoi on veut améliorer ?
– Paradigmes ?
• On parle du code et non de l’architecture
• l’architecture suit le modèle de programmation
– et alors ?
• Concepts abstrait et mapping concret
– mapping vers Java, C++, CORBA, COM …
– Réutilisation entre domaines différents difficile sinon
impossible
• Besoins ?
– Support de l’hétérogénéité : plusieurs plate-formes
logicielles et matérielles
– Accéder et manipuler des données partout
2005-2006
4
Orientation Service : les origines
• C’est quoi alors un service
– un block avec des propriétés fonctionnelles et non
fonctionnelles
• Localisations, plate-forme et code sont peu important
• implications sur
– le service qui peut être
• destinataire d’un message (application)
• manipulateur d’un message (infrastructure)
• transporteur d’un message (protocole)
– l'utilisation d’un service qui
• est toujours supposée distante
• passe toujours au dessus des plate-formes
• ignore l’implémentation
2005-2006
5
Service Web : les origines
• Le Web d’aujourd’hui
– conçu pour une interaction client-application
– développé autour de 2 standards http et html
– permet de supporter le e-commerce
• Le Web de demain ?
– Le Web est partout. Que peut-on faire avec ?
• les places de marché électronique (E-marketpalces)
• intégration des procédés métiers
• partage des ressources
– Les approches existantes sont ad hoc
• e.g. interactions application-application avec des
formulaires html
– But: permettre une interaction application-application
2005-2006
6
Services Web
Origines
Définition et architecture
WSDL
SOAP
UDDI
2005-2006
7
Service Web : définition
A Web service is a software application identified by a URI, whose
interfaces and binding(1) are capable of being defined, described
and discovered by XML artefacts and supports direct interactions
with other software applications using XML based messages via
Internet-based protocols. (W3C definition)
Un service Web est une application logicielle identifiée
par un URI dont les interfaces et les liaisons sont
définies, décrites et découvertes en XML et supporte
une interaction directe avec les autres applications
logicielles en utilisant des messages XML via un
protocole Internet.
(1) An association between an Interface, a concrete protocol and a data format
2005-2006
8
Service Web : défintion
• Les caractéristiques:
– Les services Web sont réutilisables
– Indépendamment de :
• la plate-forme (UNIX, Windows,…)
• leur implémentation (Java, C++, Visual Basic,…)
• l’architecture sous-jacente (.NET, J2EE,…)
2005-2006
9
Architecture orientée service
2005-2006
10
Architecture orientée service
• Les partenaires
– Le fournisseur de service crée le service Web, puis publie son
interface ainsi que les informations d'accès au service, dans un
annuaire de services Web.
– L'annuaire de service rend disponible l'interface du service
ainsi que ses informations d'accès, pour n'importe quel
demandeur potentiel de service.
– Le demandeur de service accède à l'annuaire de service pour
effectuer une recherche afin de trouver les services désirés.
Ensuite, il se lie au fournisseur pour invoquer le service.
• Les standars
– Langage XML : Décrit les informations
– Protocole SOAP : Exécute les services à distance
– Langage WSDL : Décrit l’ interface des services
– Norme UDDI : Trouve les services dont on a besoin
2005-2006
11
Services Web
Origines
Définition et architecture
WSDL : Web Service description Language
SOAP
UDDI
2005-2006
12
Rôle du langage WSDL
• WSDL est un langage qui permet de décrire :
– un service Web,
– comment invoquer un service Web
• Objectif :
– Décrire les services comme un ensemble d’opérations et de messages
abstraits relié à des protocoles et des serveurs réseaux
• Permet de décharger les utilisateurs des détails techniques de réalisation
d’un appel
• WSDL est un langage qui standardise les schémas XML utilisés pour
établir une connexion entre émetteurs et récepteurs.
2005-2006
13
Web service description using WSDL
WSDL Specification of Web services
Web services 1
Web services 2
Operati o n Port WSDL
Operati o n Port WSDL
Operation n°1
Operation n°2
Binding WSDL
Binding WSDL
The binding define
SOAP, HTTP,
SOAP, HTTP,
the concrete
1 service = 1 or
I/O messages
MIME
MIME
elements of the
several ports
(request/response)
message
1 port = 1 or
constitute a WSDL
several operations
operation
HTTP/SOAP Response
Port WSDL n°1
HTTP/SOAP Request
Web services 1
HTTP/SOAP Response
Port WSDL n°2
HTTP/SOAP Request
Web services 2
Server
2005-2006
14
Structure d’un document WSDL
définition des types
définition des messages
définition des opérations
définition des bindings
définition de endpoint
2005-2006
15
Exemple: annuaire (1/4)
Opérations :
– Ajouter une entrée:
• Name : INT
• Address :
– city: Evry
– number : 9
– road : rue Charles Fourier
– telephone:
• code: 33
• number : 1 60 76 00 00
– Chercher une entrée:
• Entrée:
– Name : INT
• Sortie:
– Address
• Classes:
– Directory
– Address
– Phone
2005-2006
16
Exemple: annuaire (1/3)
package directory;
import .Hashtable;
public class Directory {
private Hashtable entries;
public Directory (){
entries = new Hashtable();
}
public void addEntry (String name, Address address){
(name, address);
}
public Address lookup(String name){
return (Address) (name);
}
}
2005-2006
17
Exemple: annuaire (2/3)
package directory;
public class Phone {
int code ;
String number ;
public Phone (int codep, String numberp){
code = codep;
number = numberp;
}
public int getCode(){
return code;
}
public void setCode(int codep){
code = codep;
}// … getter and setter of number
}
2005-2006
18
Exemple: annuaire (3/3)
package directory;
public class Address {
String road ;
int number;
String city;
Phone telephone;
public Address ( String roadp, int numberp, String cityp, Phone telephonep){
road=roadp; number=numberp; city=cityp;
telephone=new Phone(telephonep.getCode(), telephonep.getNumber());
}
public String getRoad(){
return road;
}
public void setRoad(String roadp){
road = roadp;
}
//… getter and setter of number, city, and telephone
}
2005-2006
19
WSDL :
targetNamespace="http://localhost:8081/axis/services/DirectoryService"
xmlns=";
xmlns:apachesoap=";
xmlns:impl="http://localhost:8081/axis/services/DirectoryService"
xmlns:intf="http://localhost:8081/axis/services/DirectoryService"
xmlns:soapenc=";
xmlns:tns1="urn:DirectoryServiceTypes"
xmlns:wsdl=";
xmlns:wsdlsoap=";
xmlns:xsd=";>
2005-2006
20
WSDL :
xmlns=";>
2005-2006
21
WSDL :
2005-2006
22
WSDL :
• Les types de port (port Type) décrivent un ensemble
d’opérations. Peuvent être comparés à une interface
Java
– One-way
• le service reçoit un message en entrée ().
– Request-response
• le service reçoit un message en entrée () et renvoie un
message en sortie ou un ou plusieurs messages
d’erreur ()
– Solicit-response
• Le service envoie un message () et reçoit un
message corrélé () ou un ou plusieurs messages
d’erreur ().
– Notification
• le service envoie un message de notification ()
2005-2006
23
WSDL :
2005-2006
24
WSDL :
transport=";/>
encodingStyle=";
use="encoded"/>
2005-2006
25
WSDL :
• Le port est un point de terminaison identifié de manière unique par la
combinaison d'une adresse Internet et d'une liaison
• Un Service est une collection de points d’entrée (endpoint) relatifs
binding="impl:DirectoryServiceSoapBinding"
name="DirectoryService">
location="http://inf-6820:8081/axis/services/DirectoryService"/>
2005-2006
26
WSDL : Conclusion
• Avantages
– Description de services assez simple
– Facile à interroger sur l’Internet
– Extensible
• Inconvénient
– Peu de fonctionnalitésoffertes
2005-2006
27
Services Web
Origines
Définition et architecture
WSDL
SOAP: Simple Object Access Protocol
UDDI
2005-2006
28
Structure d’un message SOAP
SOAP Message
Le message SOAP Complet
Entête standard HTTP
HTTP Headers
et entête SOAP HTTP
SOAP Envelope
Enveloppe
SOAP Header
Entête
Headers
Entête individuelle
Corps qui contient les
SOAP Body
appels de méthodes SOAP
Method Call & Data
Appel de méthode et description
en XML de données
2005-2006
29
SOAP : Message
entête
Corps du message
Erreurs éventuelles
2005-2006
30
L’enveloppe et l’entête
• L’enveloppe : définit le document XML comme étant un
message SOAP
<soap:Envelope
xmlns:soap="
"
soap:encodingStyle="
encoding/">
• L ’entête : contient des éléments définis par l’utilisateur
fr
Euro
2005-200
< 6/soap:Header>
31
Le corps : Appel
xmlns:soapenv=" >
" >
INT
Evry
9
Rue Charles Fourier33
160760000
2005-2006
32
Le corps : Appel
xmlns:soapenv=";
xmlns:xsd=";
xmlns:xsi=";>
soapenv:encodingStyle="; >
INT
2005-2006
33
Le corps : réponse
soapenv:encodingStyle="; >
Evry
9
Rue Charles Fourier33
160760000
2005-2006
34
Services Web
Origines
Définition et architecture
WSDL
SOAP
UDDI : Universal Description, Discovery and Integration
2005-2006
35
UDDI
• UDDI
– Annuaire mondial d'entreprises basé sur le Web
– Il permet d'automatiser les communications entre
prestataires, clients, etc..
– Très orienté « affaires » (vente, prestation)
– Accessible grâce à SOAP
• Structure de données
Intégrant toutes sortes d'entrées (nom, carte d'identité des
sociétés, description des produits et des services, etc.),
• Qui : Le nom de l’entreprise, les contacts
• Quoi : Les classes, les noms des services
• Où : Les adresses d’accès aux services
• Comment : Les informations concernant les interfaces, les
propriétés
2005-2006
36
Les pages de UDDI
• Pages blanches
– Pour trouver un service par contact, nom et
adresse
• Pages jaunes
– Pour trouver un service par sujet (domaine)
basé sur une taxonomie des services publiés
dans l’annuaire
• Pages vertes
– Pour trouver un service par ses
caractéristiques techniques
2005-2006
37
Naviguer dans une base de services web
• • Sélectionner un service
• Accéder au WSDL
• L’essayer
2005-2006
38
Références
• Web
– Site de W3C:– Site de Zvon:– Apache XML:– Apache WS:
• Livres
– Georges Gardarin : Des bases de données aux services Web, Dunod,
Paris, 2002
– Hubert Kadima et Valérie Monfort : Les services Web: techniques,
démarches et outils, Dunod, Paris, 2003
– Gustavo Alonso, Fabio Casati, Harumi Kuno, and Vijay Machiraju : Web
Services: Concepts, Architecture and Applications, Springer-Verlag, New
York, 2004
– Jorge Cardoso and Amit P. Sheth : Semantic Web Services, Processes
and Applications (Semantic Web and Beyond: Computing for Human
Experience), Springer-Verlag, New York, 2006
2005-2006
39
