Documente Academic
Documente Profesional
Documente Cultură
Sana Sellami
sana.sellami@univ-amu.fr
2016-2017
Objectifs du cours
Manipuler des donnes XML via les API SAX, DOM et JAXB
3
PLAN
1. Quest ce quun service Web?
2. Architecture des Services Web
3. Cration et dploiement des Services Web SOAP
en Java
4. Services Web REST
5. Dveloppement de Services Web REST en Java
4
1. QU EST CE QUUN SERVICE WEB 5
Un service Web .?
Dnition du W3C (World Wide Web Consortium) :
http://www.w3.org/TR/ws-gloss/
Un service Web .?
Proposant diverses fonctionnalits que dautres programmes
peuvent
dcouvrir dynamiquement
et utiliser grce des protocoles
dcrits en XML
bass sur lchange de messages
crits en XML
transmis par HTTP, FTP, SMTP, etc.
Caractristiques
Rutilisable
Indpendamment de
la plate-forme (UNIX, Windows, )
limplmentation (VB, C#, Java, ) 7
larchitecture sous-jacente (.NET, JEE, )
Un service Web .?
Services Web
CLIENT
SERVEUR
INTERNET
CLIENT
8
CLIENT
Les web services Ingnierie systmes - Concevoir et utiliser des applications 2.0 C#,
Java, PHP, API JavaScript, Android SDK, iOS SDK., Jonathan Fontanel, Philippe
Un service Web .?
Un service Web est un programme sollicit via Internet
par diffrents type de clients, permettant lchange de
donnes an que lapplication appelante puisse intgrer
le rsultat de cet change ses propres analyses. Les
requtes et les rponses seffectuent dans des formats
ouverts (HTML, XML, JSON ou text) et transitent par
Internet.
9
Un service Web .?
Protocole de description
des services de transport
(HTTP, SMTP,)
10
Les web services Ingnierie systmes - Concevoir et utiliser des applications 2.0 C#,
Java, PHP, API JavaScript, Android SDK, iOS SDK., Jonathan Fontanel, Philippe
Exemple de services existants
Google (http://www.google.com/apis/) :
accs gratuit mais limit (1000 requtes par jour aprs
enregistrement)
Amazon (http://aws.amazon.com/fr/ )
12
14
Architecture gnrale des services
Web et des clients
HTTP
Socket
Clients du service Web Interface Web Service
Bibliothque
JAVA Netbeans
JEE SOAP
Bibliothque
C# Visual Studio C# REST
Bibliothque
PHP Eclipse PDT PHP XML-RPC
15
Les web services Ingnierie systmes - Concevoir et utiliser des applications 2.0 C#,
Java, PHP, API JavaScript, Android SDK, iOS SDK., Jonathan Fontanel, Philippe
Architecture Oriente Services (SOA)
Transformer les composants d'un systme d'information
en services, intgrables la vole, pour construire des
processus mtier transverses.
Serveur Web
Client Fournisseur
interaction
Dfinit le service 17
Publie sa description dans
lannuaire
Ralise les oprations
Architecture Oriente Service (SOA)
Ordonnancement des actions
1. Dfinition, dploiement et description du service
Quelle est la fonctionnalit fournie et comment y accder
(description WSDL)
3. Recherche du service
Le client envoie une requte dfinissant ses besoins au
registre, il reoit en retour une liste de services
18
Architecture Oriente Service (SOA)
4. Rcupration de la description du service
Le client rcupre par le registre le lien vers le fichier
dcrivant le service slectionn. Il sait maintenant
comment accder au service (comment l'invoquer)
23
SOAP: Structure
Envelope contient des dfinitions de
namespaces
24
SOAP: Exemple
Requte SOAP getsomme envoye un service Sommer
25
SOAP: Exemple (suite)
Rponse SOAP
26
WSDL (Web Services Description Language)
29
Figure : Concepts dfinis par WSDL 1.1 et WSDL 2.0
http://www.w3.org/TR/wsdl20/
Source: http://en.wikipedia.org/wiki/Web_Services_Description_Language
WSDL (Web Services Description Language)
Compos de lensemble
des oprations abstraites
Un ensemble de
points finaux du
rseau appels
ports permettant
30
de dterminer la
localisation du
service
Exemple WSDL 1.1: sommer.wsdl
Racine du document
Dfinition des types de donnes (facultatif)
31
service: localisation des services web
Structure dun WSDL : <Types>
Un type dcrit la structure de donnes transmises dans un
message.
32
Structure dun WSDL : <message>
Dcrit les donnes associes une opration (1 requte et
1 rponse HTTP par opration, 1 message d'erreur fault
optionnel).
33
Structure dun WSDL : <portType>
Un document WSDL peut contenir 0 plusieurs portType
34
Structure dun WSDL : <portType>
Dfinition dun seul type de port, avec les oprations
abstraites, correspondant aux dclarations de mthodes
dans linterface Java :
35
Structure dun WSDL : <binding>
Une liaison (ou binding) dcrit la faon dont un
portType(en dautres termes labstraction du service, i.e.
ses oprations abstraites) est mis en oeuvre pour un
protocole particulier (HTTP par exemple) et un mode
dinvocation (RPC par exemple).
36
Structure dun WSDL : <binding>
Mode dinvocation
Protocole
Nom de lopration dans le type de port
37
Structure dun WSDL : <service>
Un service est dcrit comme un ensemble de points finaux
du rseau appels ports
Un port spcifie une URL qui correspond
limplmentation du service par un fournisseur.
Le port est associ un binding dfinissant ainsi un
simple point de terminaison (endpoint:@ o se situe le WS)
38
Structure dun WSDL : <port>
39
Mapping Java WSDL
Code Java Fichier WSDL
Classe Java Service
public class IpAddressSearchWebService <wsdl: service name="IpAddressSearchWebService">
</wsdl:service>
Commentaire Documentation
/*using this function, user can find the <wsdl:documentation>
country and city by Ip */ using this function, user can find the country and city by Ip
</wsdl:documentation>
Mthode Operation
public String[] getCountryCityByIp(String <wsdl:operation name="getCountryCityByIp">
<wsdl:input ./>
theIpAddress) <wsd:output./>
</wsdl:operation>
Paramtre Types
<wsdl:types>
String theIpAddress <s:schema elementFromDefault=qualified">
<s:element name="getCountryCityByIp">
<s:complexType>
<s:sequence>
<s:element minoccurs=0" maxoccurs=1" name=theIpAddress"
type=s:string" /> 40
</s:sequence> </s:complexType></s:element>
</wsdl:types>
UDDI : Universal Description, Discovery and
Integration
Universal Description, Discovery and Integration
Historique
lorigine: annuaire universel pour les services web ( la Google)
Aujourdhui: vise plutt les environnements privs, petite chelle
Raisons: peu dannuaires gnraux UDDI (IBM, Microsoft, ),
contenu pauvre et non fiable
Meilleure fiabilit en environnements contraints, privs (~EAI)
lment dinfrastructure qui aide aussi stocker des infos absentes en
WSDL
Versions
Version 1: les bases dun annuaire de services
Version 2: adaptation SOAP et WSDL
Version 3: redfinition du rle UDDI, accent sur les
implmentations prives, sur linteraction entre annuaires privs et 41
publics
UDDI : Universal Description, Discovery and
Integration
Lannuaire UDDI permet de :
Publier, dcouvrir des informations sur une entreprise et ses
services
. UDDI
Pages Blanches
Pour trouver un service par contact, nom et adresse
Pages Jaunes
Pour trouver un service par description (WSDL) rpertori par catgorie
Pages vertes
Pour trouver un service par caractristiques techniques 43
UDDI
Le modle UDDI comporte 5 structures de
donnes principales dcrites sous forme de
schmas XML :
BusinessEntity : ensemble
dinformations sur lentreprise qui publie
les services dans lannuaire
BusinessService : ensemble
dinformations sur les services publis par
lentreprise
BindingTemplate : ensemble
dinformations concernant le lieu
dhbergement du service (i.e. adresse du
fournisseur)
publisherAssertion : ensemble 44
dinformations contractuelles entre
partenaires en changes commerciaux
Revenons larchitecture
Demande de Service
Annuaire Publication de la
(Dcouverte):
Search Message en SOAP UDDI description WSDL
interaction
HTTP(S), FTP, etc 45
3. CRATION ET DPLOIEMENT DE
SERVICES WEB EN JAVA
46
Architecture gnrale des services
Web et des clients
HTTP
Socket
Clients du service Web Interface Web Service
Bibliothque
JAVA Netbeans
JEE SOAP
Bibliothque
C# Visual Studio C# REST
Bibliothque
PHP Eclipse PDT PHP XML-RPC
47
Cration de services web
La conception dun service Web ncessite les tapes suivantes :
Dfinir et crer un service Web
Publier le service Web sur le serveur dapplication
Utiliser un service Web en crant un client.
Crer un service Web Publier un service Web Utiliser un service Web
Serveur dapplication
48
CLIENT (utilisateur)
Cration de services web en Java
Deux approches pour la cration de SW:
Outils utiliss:
Frameworks: Axis2 , Apache CXF (framework Java/Web
Services) , Spring WS
API JAX-WS et JAX-RS
Etc.
49
Serveurs: Tomcat, Glassfish, tomEE Plus, etc.
Axis
Axis est un engin permettant la cration des web services en
technologie SOAP, ralis par Apache Software Foundation.
Offre :
un environnement pouvant fonctionner comme un serveur SOAP/Rest
indpendant
une API pour dvelopper des services web SOAP RPC ou base de
messages SOAP,
http://tomcat.apache.org/
51
Glassfish
Tlchargement:
https://glassfish.java.net/
52
Apache CXF
Framework open Source en langage Java pour le
dveloppement des Services Web
53
JAX-WS (Java API for XML WS)
Java API for XML WS
59
Et concrtement a donne quoi?
Vous allez faire le TP qui est divis en deux parties:
1. Tester des services web existants
2. Cration et dploiement de services web
Java
LIDE Netbeans
Le serveur dapplications Glassfish
Serveur dapplication
60