• Aucun résultat trouvé

Programmation Web Avancée Introduction aux services Web

N/A
N/A
Protected

Academic year: 2022

Partager "Programmation Web Avancée Introduction aux services Web"

Copied!
21
0
0

Texte intégral

(1)

Introduction aux services Web

Thierry Hamon

Bureau H202 - Institut Galil´ee T´el. : 33 1.48.38.35.53 Bureau 150 – LIM&BIO – EA 3969 Universit´e Paris 13 - UFR L´eonard de Vinci 74, rue Marcel Cachin, F-93017 Bobigny cedex T´el. : 33 1.48.38.73.07, Fax. : 33 1.48.38.73.55

thierry.hamon@univ-paris13.fr

http://www-limbio.smbh.univ-paris13.fr/membres/hamon/PWA- 20122013

(2)

Encore plus dynamique !

Evolution du Web

G´ en´ eration 1 : HTML statique (1993 – Web 1.0), CSS (1996)

G´ en´ eration 2 : Application Web ` a l’aide du HTML et de bases

de donn´ ees (HTML dynamique, XML – 1994/2000 – Web 1.5)

G´ en´ eration 3 : Services Web (2005 – Web 2.0)

(3)

Service Web

D´ efinition : Application accessible depuis le Web fournissant des donn´ ees

des services ` a d’autres applications

un objet m´ etier pouvant ˆ etre d´ eploy´ e sur Internet Utilisation

des protocoles standard d’Internet (SOAP, HTTP)

d’un langage standard pour d´ ecrire son interface (WSDL,

XML)

(4)

Service Web

Carat´ eristiques

Faible d´ ependance vis-` a-vis des technologies et des protocoles plate-forme (UNIX, Windows, ...)

impl´ ementation (VB, C#, Java, ...)

architecture sous-jacente (.NET, J2EE, Axis...)

R´ eutilisation dans un environnement ouvert

(5)

Objectifs

Remplacement des protocoles actuels (RPC, RMI, DCOM) Interop´ erabilit´ e et interaction des serveurs Web et de composants h´ et´ erog` enes

G´ en´ eralisation des serveurs Web utilisant des CGI

Ind´ ependance des composants grˆ ace ` a un protocole standard SOAP

Approche pour les applications B2B (Business to Business),

EAI (Enterprise Application Integration) et P2P (Peer to Peer)

(6)

Protocoles et technologies associ´ es

D´ efinition d’objets distribu´ es, bas´ es sur des standards XML Protocole de communication des services Web : SOAP Description des services Web : WSDL ( IDL)

Enregistrement et d´ ecouverte de services Web : UDDI Standards du W3C : XML, SOAP, WSDL

Standards industriels : UDDI, ebXML

Propri´ etaires : DISCO, WSDD, WSFL, ASMX, ...

Impl´ ementations actuelles : Microsoft .Net

Sun JavaONE : J2EE + Web services (WSDP = JAXP, JAX-RPC, JAXM...)

Apache XSOAP / Axis, IBM WSTK

Oracle, Bea, Iona, Enhydra ...

(7)

Exemples de services existants

Google (http://www.google.com/apis/) : acc` es gratuit mais limit´ e (1000 requˆ etes par jour apr` es enregistrement).

Trois op´ erations : recherche

obtention d’une page depuis le cache correction orthographique

Amazon (http://associates.amazon.com/exec/panama/

associates/join/developer/resources.html) : acc` es gratuit mais limit´ e (1 requˆ ete par seconde apr` es

enregistrement), op´ eration de recherche et de gestion de

panier d’achats

(8)

Structure d’un service Web

Architecture de base

Trois composants :

Fournisseur de service (service provider ) : d´ efinit le service

publie sa description dans l’annuaire r´ ealise les op´ erations

Annuaire (discovery agency ) :

re¸ coit et enregistre les descriptions de services publi´ ees par les fournisseurs

re¸ coit et r´ epond aux recherches de services lanc´ ees par les clients

Client (service requestor ) :

obtient la description du service grˆ ace ` a l’annuaire

utilise le service

(9)

El´ ements de l’architecture

SOAP

SOAP (Simple Object Access Protocol)

version 1.1 : mai 2000 (http ://www.w3c.org/TR/SOAP/) version 1.2 : en cours (CR en d´ ecembre 2002)

Cadre g´ en´ eral permettant l’´ echange de donn´ ees structur´ ees au format XML

Protocole de transport de ces donn´ ees bas´ e sur HTTP

(10)

El´ ements de l’architecture

SOAP

<?xml v e r s i o n= ’ 1 . 0 ’ e n c o d i n g= ’UTF−8 ’ ?>

<e n v : E n v e l o p e x m l n s : e n v=” h t t p : // s c h e m a s . x m l s o a p . o r g / s o a p / e n v e l o p e / ” x m l n s : x s i=” h t t p : //www . w3 . o r g / 1 9 9 9 / XMLSchema−i n s t a n c e ”

x m l n s : x s d=” h t t p : //www . w3 . o r g / 1 9 9 9 / XMLSchema”>

<e n v : B o d y>

<n s 1 : d o G o o g l e S e a r c h x m l n s : n s 1=” u r n : G o o g l e S e a r c h ”

e n v : e n c o d i n g S t y l e=” h t t p : // s c h e m a s . x m l s o a p . o r g / s o a p / e n c o d i n g / ”>

<k e y x s i : t y p e =” x s d : s t r i n g ”>0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0</ k e y>

<q x s i : t y p e =” x s d : s t r i n g ”>s h r d l u w i n o g r a d m a c l i s p t e l e t y p e</ q>

<s t a r t x s i : t y p e =” x s d : i n t ”>0</ s t a r t>

<m a x R e s u l t s x s i : t y p e =” x s d : i n t ”>10</ m a x R e s u l t s>

<f i l t e r x s i : t y p e =” x s d : b o o l e a n ”>t r u e</ f i l t e r>

<r e s t r i c t x s i : t y p e =” x s d : s t r i n g ”></ r e s t r i c t>

<s a f e S e a r c h x s i : t y p e =” x s d : b o o l e a n ”>f a l s e</ s a f e S e a r c h>

<l r x s i : t y p e =” x s d : s t r i n g ”></ l r>

<i e x s i : t y p e =” x s d : s t r i n g ”>l a t i n 1</ i e>

<o e x s i : t y p e =” x s d : s t r i n g ”>l a t i n 1</ o e>

</ n s 1 : d o G o o g l e S e a r c h>

</ e n v : B o d y>

</SOAP−E N V : E n v e l o p e>

(11)

El´ ements de l’architecture

WSDL

WSDL (Web Services Description Language) : version 1.1 : mars 2001

(http://www.w3.org/TR/2001/NOTE-wsdl-20010315) version 1.2 : en cours (Working Draft)

dialecte XML permettant de d´ ecrire un service web

(12)

El´ ements de l’architecture

WSDL

<?xml v e r s i o n=” 1 . 0 ” ?>

<d e f i n i t i o n s name=” T e m p e r a t u r e C o n v e r s i o n s ” t a r g e t N a m e s p a c e=” h t t p : // w e b s e r v i c e s . d a e h o s t i n g . com/ t e m p e r a t u r e ”>

<t y p e s>

<x s : s c h e m a e l e m e n t F o r m D e f a u l t=” q u a l i f i e d ” t a r g e t N a m e s p a c e=” h t t p : // w e b s e r v i c e s . d a e h o s t i n g . com/ t e m p e r a t u r e ”>

<x s : e l e m e n t name=” C e l c i u s T o F a h r e n h e i t ”>

<x s : c o m p l e x T y p e>

<x s : s e q u e n c e>

<x s : e l e m e n t name=” n C e l c i u s ” t y p e=” x s : d e c i m a l ” />

</ x s : s e q u e n c e>

</ x s : c o m p l e x T y p e>

</ x s : e l e m e n t>

<x s : e l e m e n t name=” C e l c i u s T o F a h r e n h e i t R e s p o n s e ”>

<x s : c o m p l e x T y p e>

<x s : s e q u e n c e>

<x s : e l e m e n t name=” C e l c i u s T o F a h r e n h e i t R e s u l t ” t y p e=” x s : d e c i m a l ” />

</ x s : s e q u e n c e>

</ x s : c o m p l e x T y p e>

</ x s : e l e m e n t>

<x s : e l e m e n t name=” F a h r e n h e i t T o C e l c i u s ”>

<x s : c o m p l e x T y p e>

<x s : s e q u e n c e>

<x s : e l e m e n t name=” n F a h r e n h e i t ” t y p e=” x s : d e c i m a l ” />

</ x s : s e q u e n c e>

</ x s : c o m p l e x T y p e>

</ x s : e l e m e n t>

(13)

El´ ements de l’architecture

WSDL

<x s : e l e m e n t name=” F a h r e n h e i t T o C e l c i u s R e s p o n s e ”>

<x s : c o m p l e x T y p e>

<x s : s e q u e n c e>

<x s : e l e m e n t name=” F a h r e n h e i t T o C e l c i u s R e s u l t ” t y p e=” x s : d e c i m a l ” />

</ x s : s e q u e n c e>

</ x s : c o m p l e x T y p e>

</ x s : e l e m e n t>

<x s : e l e m e n t name=” W i n d C h i l l I n C e l c i u s ”>

<x s : c o m p l e x T y p e>

<x s : s e q u e n c e>

<x s : e l e m e n t name=” n C e l c i u s ” t y p e=” x s : d e c i m a l ” />

<x s : e l e m e n t name=” nWindSpeed ” t y p e=” x s : d e c i m a l ” />

</ x s : s e q u e n c e>

</ x s : c o m p l e x T y p e>

</ x s : e l e m e n t>

<x s : e l e m e n t name=” W i n d C h i l l I n C e l c i u s R e s p o n s e ”>

<x s : c o m p l e x T y p e>

<x s : s e q u e n c e>

<x s : e l e m e n t name=” W i n d C h i l l I n C e l c i u s R e s u l t ” t y p e=” x s : d e c i m a l ” />

</ x s : s e q u e n c e>

</ x s : c o m p l e x T y p e>

</ x s : e l e m e n t>

(14)

El´ ements de l’architecture

WSDL

<x s : e l e m e n t name=” W i n d C h i l l I n F a h r e n h e i t ”>

<x s : c o m p l e x T y p e>

<x s : s e q u e n c e>

<x s : e l e m e n t name=” n F a h r e n h e i t ” t y p e=” x s : d e c i m a l ” />

<x s : e l e m e n t name=” nWindSpeed ” t y p e=” x s : d e c i m a l ” />

</ x s : s e q u e n c e>

</ x s : c o m p l e x T y p e>

</ x s : e l e m e n t>

<x s : e l e m e n t name=” W i n d C h i l l I n F a h r e n h e i t R e s p o n s e ”>

<x s : c o m p l e x T y p e>

<x s : s e q u e n c e>

<x s : e l e m e n t name=” W i n d C h i l l I n F a h r e n h e i t R e s u l t ” t y p e=” x s : d e c i m a l ” />

</ x s : s e q u e n c e>

</ x s : c o m p l e x T y p e>

</ x s : e l e m e n t>

</ x s : s c h e m a>

</ t y p e s>

<m e s s a g e name=” C e l c i u s T o F a h r e n h e i t S o a p R e q u e s t ”>

<p a r t name=” p a r a m e t e r s ” e l e m e n t=” t n s : C e l c i u s T o F a h r e n h e i t ” />

</ m e s s a g e>

<m e s s a g e name=” C e l c i u s T o F a h r e n h e i t S o a p R e s p o n s e ”>

<p a r t name=” p a r a m e t e r s ” e l e m e n t=” t n s : C e l c i u s T o F a h r e n h e i t R e s p o n s e ” />

</ m e s s a g e>

<m e s s a g e name=” F a h r e n h e i t T o C e l c i u s S o a p R e q u e s t ”>

<p a r t name=” p a r a m e t e r s ” e l e m e n t=” t n s : F a h r e n h e i t T o C e l c i u s ” />

</ m e s s a g e>

(15)

El´ ements de l’architecture

WSDL

<m e s s a g e name=” F a h r e n h e i t T o C e l c i u s S o a p R e s p o n s e ”>

<p a r t name=” p a r a m e t e r s ” e l e m e n t=” t n s : F a h r e n h e i t T o C e l c i u s R e s p o n s e ” />

</ m e s s a g e>

<m e s s a g e name=” W i n d C h i l l I n C e l c i u s S o a p R e q u e s t ”>

<p a r t name=” p a r a m e t e r s ” e l e m e n t=” t n s : W i n d C h i l l I n C e l c i u s ” />

</ m e s s a g e>

<m e s s a g e name=” W i n d C h i l l I n C e l c i u s S o a p R e s p o n s e ”>

<p a r t name=” p a r a m e t e r s ” e l e m e n t=” t n s : W i n d C h i l l I n C e l c i u s R e s p o n s e ” />

</ m e s s a g e>

<m e s s a g e name=” W i n d C h i l l I n F a h r e n h e i t S o a p R e q u e s t ”>

<p a r t name=” p a r a m e t e r s ” e l e m e n t=” t n s : W i n d C h i l l I n F a h r e n h e i t ” />

</ m e s s a g e>

<m e s s a g e name=” W i n d C h i l l I n F a h r e n h e i t S o a p R e s p o n s e ”>

<p a r t name=” p a r a m e t e r s ” e l e m e n t=” t n s : W i n d C h i l l I n F a h r e n h e i t R e s p o n s e ” />

</ m e s s a g e>

<p o r t T y p e name=” T e m p e r a t u r e C o n v e r s i o n s S o a p T y p e ”>

<o p e r a t i o n name=” C e l c i u s T o F a h r e n h e i t ”>

<d o c u m e n t a t i o n>

C o n v e r t s a C e l c i u s T e m p e r a t u r e t o a F a h r e n h e i t v a l u e

</ d o c u m e n t a t i o n>

<i n p u t m e s s a g e=” t n s : C e l c i u s T o F a h r e n h e i t S o a p R e q u e s t ” />

<o u t p u t m e s s a g e=” t n s : C e l c i u s T o F a h r e n h e i t S o a p R e s p o n s e ” />

</ o p e r a t i o n>

(16)

El´ ements de l’architecture

WSDL

<o p e r a t i o n name=” F a h r e n h e i t T o C e l c i u s ”>

<d o c u m e n t a t i o n>

C o n v e r t s a F a h r e n h e i t T e m p e r a t u r e t o a C e l c i u s v a l u e

</ d o c u m e n t a t i o n>

<i n p u t m e s s a g e=” t n s : F a h r e n h e i t T o C e l c i u s S o a p R e q u e s t ” />

<o u t p u t m e s s a g e=” t n s : F a h r e n h e i t T o C e l c i u s S o a p R e s p o n s e ” />

</ o p e r a t i o n>

<o p e r a t i o n name=” W i n d C h i l l I n C e l c i u s ”>

<d o c u m e n t a t i o n>

W i n d c h i l l t e m p e r a t u r e c a l c u l a t e d w i t h t h e f o r m u l a o f Steadman

</ d o c u m e n t a t i o n>

<i n p u t m e s s a g e=” t n s : W i n d C h i l l I n C e l c i u s S o a p R e q u e s t ” />

<o u t p u t m e s s a g e=” t n s : W i n d C h i l l I n C e l c i u s S o a p R e s p o n s e ” />

</ o p e r a t i o n>

<o p e r a t i o n name=” W i n d C h i l l I n F a h r e n h e i t ”>

<d o c u m e n t a t i o n>

W i n d c h i l l t e m p e r a t u r e c a l c u l a t e d w i t h t h e f o r m u l a o f Steadman

</ d o c u m e n t a t i o n>

<i n p u t m e s s a g e=” t n s : W i n d C h i l l I n F a h r e n h e i t S o a p R e q u e s t ” />

<o u t p u t m e s s a g e=” t n s : W i n d C h i l l I n F a h r e n h e i t S o a p R e s p o n s e ” />

</ o p e r a t i o n>

</ p o r t T y p e>

(17)

El´ ements de l’architecture

WSDL

<b i n d i n g name=” T e m p e r a t u r e C o n v e r s i o n s S o a p B i n d i n g ” t y p e=” t n s : T e m p e r a t u r e C o n v e r s i o n s S o a p T y p e ”>

<s o a p : b i n d i n g s t y l e =” document ” t r a n s p o r t=” h t t p : // s c h e m a s . x m l s o a p . o r g / s o a p / h t t p ” />

<o p e r a t i o n name=” C e l c i u s T o F a h r e n h e i t ”>

<s o a p : o p e r a t i o n s o a p A c t i o n=” ” s t y l e =” document ” />

<i n p u t>

<s o a p : b o d y u s e=” l i t e r a l ” />

</ i n p u t>

<o u t p u t>

<s o a p : b o d y u s e=” l i t e r a l ” />

</ o u t p u t>

</ o p e r a t i o n>

<o p e r a t i o n name=” F a h r e n h e i t T o C e l c i u s ”>

<s o a p : o p e r a t i o n s o a p A c t i o n=” ” s t y l e =” document ” />

<i n p u t>

<s o a p : b o d y u s e=” l i t e r a l ” />

</ i n p u t>

<o u t p u t>

<s o a p : b o d y u s e=” l i t e r a l ” />

</ o u t p u t>

</ o p e r a t i o n>

(18)

El´ ements de l’architecture

WSDL

<o p e r a t i o n name=” W i n d C h i l l I n C e l c i u s ”>

<s o a p : o p e r a t i o n s o a p A c t i o n=” ” s t y l e =” document ” />

<i n p u t>

<s o a p : b o d y u s e=” l i t e r a l ” />

</ i n p u t>

<o u t p u t>

<s o a p : b o d y u s e=” l i t e r a l ” />

</ o u t p u t>

</ o p e r a t i o n>

<o p e r a t i o n name=” W i n d C h i l l I n F a h r e n h e i t ”>

<s o a p : o p e r a t i o n s o a p A c t i o n=” ” s t y l e =” document ” />

<i n p u t>

<s o a p : b o d y u s e=” l i t e r a l ” />

</ i n p u t>

<o u t p u t>

<s o a p : b o d y u s e=” l i t e r a l ” />

</ o u t p u t>

</ o p e r a t i o n>

</ b i n d i n g>

<s e r v i c e name=” T e m p e r a t u r e C o n v e r s i o n s ”>

<d o c u m e n t a t i o n>

V i s u a l D a t a F l e x Web S e r v i c e t o c o n v e r t t e m p e r a t u r e v a l u e s b e t w e e n C e l c i u s and F a h r e n h e i t

</ d o c u m e n t a t i o n>

<p o r t name=” T e m p e r a t u r e C o n v e r s i o n s S o a p ” b i n d i n g=” t n s : T e m p e r a t u r e C o n v e r s i o n s S o a p B i n d i n g ”>

<s o a p : a d d r e s s l o c a t i o n=” h t t p : // w e b s e r v i c e s . d a e h o s t i n g . com/ s e r v i c e s / T e m p e r a t u r e C o n v e r s i o n s . wso ” />

</ p o r t>

</ s e r v i c e>

(19)

El´ ements de l’architecture

UDDI

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

(20)

Mise en œuvre

D´ efinition :

des formats (dialecte XML)

des s´ emantiques associ´ ees (sens de chaque ´ el´ ement des documents XML)

des protocoles (e.g., utilisation de HTTP pour transmettre des messages SOAP)

des services web standards (comme les API de UDDI) red´ emarrage automatique du serveur

persistance des donn´ ees

interfa¸ cage avec les syst` emes d’information de l’entreprise (SGBD, ERP, CRM, etc.)

Utiliser un serveur d’applications :

serveur EJB (J2EE 1.4 va int´ egrer le support des services web)

serveur .NET

(21)

Impl´ ementation d’un service Web

grandes lignes

Java : standardisation par Sun des API et des outils associ´ es : JAX-RPC (JA XML-based RPC) : utilisation de SOAP (mode RPC)

JAXR (JA XML Registries) : utilisation de UDDI

JAXM (JA XML Messaging) : utilisation de SOAP (mode message)

SAAJ (SOAP with Attachments API for Java) : utilisation de SOAP (pi` eces jointes)

outil de transformation d’une description WSDL en interface Java et vice-versa etc.

.NET : Stardisation Microsoft

API dans la biblioth` eque de classes de .NET

Références

Documents relatifs

After all, in the adult virgin more than 30% of the luminal cells may be expressing steroid receptors; do they all induce stem cell niches or are there different subpopulations of

In the present article, we give a self-contained proof of the minoration, as well as an application (Corollary 4 ) which constitutes a new important information about auto- morphisms

Furthermore, added in small amounts (Pt mass fraction &lt;10%), platinum increased the resistance of the metal particles towards sintering at high temperatures. This stabilization by

Or, on souhaite pouvoir inférer la réponse des demandeurs d’emploi aléatoirement orientés vers le parcours « classique » qui auraient suivi le parcours OPP si on le leur

More specifically, the aim was to assess the direct actions of ionizing radiation and to compare the effects of hits on cells embedded in normal tissue (e.g., muscle tissue) with

On insistera surtout sur le langage JavaScript, qui permet d’écrire des programmes associés à des pages web qui s’exécutent dans le navigateur et sur le Document Object Model,

•La servlet SOAP extrait le message SOAP-XML, la de-serialise (récupération du nom de la méthode, des paramètres), puis invoque la méthode concernée du service. Le résultat

Chaque appareil (ordinateur, téléphone, imprimante...), possède un client dhcp. Au démarrage ce client dhcp envoie une requête au serveur dhcp pour lui demander de lui attribuer