web service
TRANSCRIPT
Web ServicesArchitecture et Protocoles
Réalisé par : TEGANE SAHERBEKHOUCHE ABEDRAOUF
Enseignant :F.AZOUAOU
École DoctoraleSciences et Technologies de l'Information et de la
Communication Option : Systèmes d’Information et de Connaissances
2
Plan de travail
Problématique & Contexte
Pourquoi faire ? Définition
Quels objectifs ?
Architecture Web Service
Couche des protocoles des web services
Conclusion
Invocation Description Découverte
Problématique : comment interagir ?
3
4
WEB
Contexte
• Evolution du Web des usagers au Web des communications entre applications
Communications entre un usager et une application
Communicationsentre applications
Serveur Web Application 1 Application 2
Data General Data General Data General
Usager +Navigateur Web
L’entité principale est l’application. Ex : Achat automatisé de fournitures (via un Web Service)
L’entité principale est l’usager. Ex : Achat d’un livre via les pages Web d’une compagnie
WEB
Pourquoi faire ?
Je veux passer 2 semaines de vacance
Billets d’avions
Hôtels
Location de voitures
Web Services
Agent
Site dune agene Touristique
Pourquoi faire ?
• L'objectif des Web Services est de faciliter l'accès aux applications entre entreprises et ainsi de simplifier les échanges de données. Ils poursuivent un vieux rêve de l'informatique distribuée où les applications pourraient interopérer à travers le réseau, indépendamment de leur plate-forme et de leur langage d'implémentation.
6
7
Définition (1)• Un service web est un programme
informatique permettant la communication et l'échange de données entre applications et systèmes hétérogènes dans des environnements distribués. Il s'agit donc d'un ensemble de fonctionnalités exposées sur internet ou sur un intranet, par et pour des applications ou machines, sans intervention humaine, et en temps réel
8
Définition (2)
• Un Web Service est un composant implémenté dans n'importe quel langage, déployé sur n'importe quelle plate-forme et enveloppé dans une couche de standards dérivés du XML. Il doit pouvoir être découvert et invoqué dynamiquement par d'autres services.
9
Quels objectifs ?• Système ouvert et performant
– capable d'inter-opérer avec les applications existantes– capable d'inter-opérer avec le monde extérieur : Extranet (B2B)– capable d'inter-opérer avec le monde intérieur : Intranet (B2C)– offrant un accès rapide, intégré et généralisé à l’information pertinente– offrant des outils de travail, de communication, …
• Système réduisant les coûts – développement rapide d’applications (RAD)– utilisation de composants distribués et de ressources distantes– réduction des coûts de développement
10
Quels objectifs ?– Modularité
• Réutilisation et composition de services,• Permettre « d’ouvrir » des applications existantes sur le
monde Internet
– Intégration • Intégration du système d’information au sein et en dehors de
l’entreprise,• Masquage de la complexité.
11
Architecture Web Service
Client du Service
Fournisseurdu Service
Annuaire de Services 1. Déploiement
2. Publication
4. V
oici
le se
rveu
r
Héber
gean
t ce s
ervic
e
5. Quel format d’appel ?
Service
Service
3.Clie
nt rec
herch
e
Un se
rvice
s web
6. Voici mon contrat WSDL ?
7. Le client a compris le contrat et envoi une requête sous forme XML
[1]
12
Couche des protocoles des web services
Echange messages SOAP,XML
Description WSDL
Transport HTTP, SMTP, FTP, JMS,BEEP
Découverte/Publication UDDI
Base
[The World Wide Web Consortium http://www.w3.org]
Couche des protocoles des web services
• La couche Transport : Cette couche est responsable du transport des messages XML entre les applications. Actuellement, elle est principalement constituée par les protocoles HTTP,SMTP et FTP. Mais, de nouveaux protocoles, notamment le prometteur "BEEP", seront intégrés a cette couche.
Actuellement, HTTP reste le protocole majoritairement utilisé par les services Web.
13
Couche des protocoles des web services
• La couche Echange des Messages (SOAP): Cette couche assure le codage des messages en un format XML normalisé. De cette façon, elle garanti la compréhension des messages à chaque extrémité de la chaîne de communication.
• La couche de Description (WSDL): Cette couche est responsable de la description de l’interface des services Web. Le langage WSDL, au formalisme XML, assure cette fonction.
14
Couche des protocoles des web services
• La couche Découverte :
Cette couche assure la centralisation des services Web dans un registre commun. Elle permet la publication et la découverte d'un service en fonction de ses fonctionnalités ou de son fournisseur. UDDI, en tant qu’annuaire, assure cette fonction.
15
Web services : Vision
16
UDDI WSDL SOAP
URI HTML HTTPThe WEB
WEB Services
Pourquoi utiliser HTTP ?
HTTP (HyperText Transfer Protocol) est devenu le protocole de communication de l’Internet.HTTP est disponible sur toutes les plates-formes – très rapidementHTTP est un protocole simple, qui ne requière que peu de support pour fonctionner correctementHTTP est un protocole sans connexion
- Peu de paquets sont nécessaires pour échanger des informationsHTTP offre un niveau de sécurité simple et effectifHTTP est le seul protocole utilisable à travers des pare-feu
SOAP : Simple Object Access Protocol
Service WebRéservation
Séjour
Description WSDL
Description WSDLClient
du Web Service
ProxyApplication
Fournisseur de Web Services
Web Service Application
Invocation
Protocole SOAP
Invocation d’un Web Service
19
Qu’est-ce que SOAP ?
• Définition : SOAP est un protocole pour transmission des messages
entre un service et son client de. Il définit un ensemble de règles pour structurer des messages qui peuvent être utilisés dans de simples transmissions,
Il n'est pas lié à un protocole de transport particulier mais
HTTP est le plus populaire. Il n'est pas non plus lié à un système d'exploitation ni à un langage de programmation
20
La philosophie SOAP
• SOAP codifie simplement une pratique existante– Utilisation conjointe de XML et HTTP
• SOAP est un protocole minimal pour appeler des méthodes sur des serveurs, services, composants, objets– Ne pas imposer une API ou un runtime– Ne pas imposer l’utilisation d’un ORB (CORBA, DCOM, …) ou d’un serveur
web particulier (Apache, IIS, …)– Ne pas imposer un modèle de programmation
• Plusieurs modèles peuvent être utilisés conjointement– Et “ne pas réinventer une nouvelle technologie”
• SOAP a été construit pour pouvoir être aisément porté sur toutes les plates-formes et les technologies– Vous pouvez écrire votre 1er appel SOAP en moins d’une heure !!
21
<env:Envelope xmlns:env="http://www.w3.org/2002/06/soap-envelope/" env:encodingStyle=" http://www.w3.org/2002/06/soap-encoding/"/>
<env:Header> <t:Transaction xmlns:t="some-URI" env:mustUnderstand="1"> 5 </t:Transaction> </env:Header><env:Body> <m:GetLastTradePrice xmlns:m="Some-URI"> <symbol>
GEM</symbol>
</m:GetLastTradePrice> </env:Body>
</env:Envelope>
Exemple : Message SOAP
22
SOAP ENVELOPESOAP HEADER
Structure d’un message
• Chaque SOAP message contient : • Enveloppe
– représente l’unité de communication entre les parties utilisant un service Web
Header (optionnel)– Contient les attributs et les caractéristique de
message• Body (obligatoire)
– Contient l’appel de méthode ou document– Ex : nom des procédures, nom des paramètres,
valeurs de paramètres,– Retour d’erreurs.
SOAP BODY
HEADER ENTRY
BODY ENTRY
23
Liaison SOAP/HTTP
24
Requête SOAP/HTTPPOST /StockQuote HTTP/1.1Host: www.stockquoteserver.comContent-Type: text/xml; charset="utf-8"Content-Length: nnnnAction: "Some-URI"
<env:Envelope xmlns:env="http://www.w3.org/2002/06/soap-envelope/" env:encodingStyle=" http://www.w3.org/2002/06/soap-encoding/"/>
</env:Envelope>
<env:Header> <t:Transaction xmlns:t="some-URI"> 5 </t:Transaction></env:Header>
<env:Body> <m:GetLastTradePrice xmlns:m="Some-URI"> <symbol> GEM</symbol> </m:GetLastTradePrice> </env:Body>
25
Réponse SOAP/HTTPHTTP/1.1 200 OKContent-Type: application/soap+xml; charset="utf-8"Content-Length: nnnn
<env:Envelope xmlns:env="http://www.w3.org/2002/06/soap-envelope/" env:encodingStyle=" http://www.w3.org/2002/06/soap-encoding/"/>
</env:Envelope>
<env:Body> <m:GetLastTradePriceResponse xmlns:m="Some-URI"> <Price>34.5</Price> </m:GetLastTradePriceResponse> </env:Body>
26
En résumé
• SOAP = HTTP + XML
Serveur HTTP
Station
requêtes SOAP(XML)Client
HTTP
Serveur
ISAPI
CGIApplicationpartie -cliente
Browserclient universel
Réponses SOAP(XML)
Applicationpartie-serveur
ASP
Servlets
Service WebRéservation
Séjour
Description WSDL
Fournisseur de Web Services
Web Service Application
Description WSDL
WSDL :Web Service Definition Language
Description d’un Web Service
28
La spécification WSDL :
• La description WSDL d’un service Web représente un contrat entre le demandeur et le fournisseur
• Les clients qui souhaitent accéder à un service Web peut lire et interpréter son fichier WSDL pour se renseigner sur l'emplacement du service et de ses activités disponibles
• Langage de description des Web Services– Description abstraite de l’interface du service,
• Ensemble des méthodes et de types de paramètres, de messages– Description concrète de l’implantation du service, 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
29
La spécification WSDL :
ImplementationInterface
<portType>
<message>
<import>
<definitions>
<types>
<port>
<import>
<definitions>
<service>
<binding>
30
Description abstraite
• Définition de l’interface du service• <types>
– Définition des types de données utilisés dans les messages– Référence à un système de typage tel que Schéma XML
• <message>– Définition typée abstraite des données échangées– Ex : appel de méthode, retour de l’appel
• <operation>– Définition abstraite d’un ensemble cohérent de messages
(entrées/sorties) correspondant à l’interaction avec le Web Service
– Ex: appel de méthode + retour de l’appel• <portType> (type de port)
– Définition abstraite d’un ensemble d’opérations
31
Description concrète
• Définition de l’implantation d’un service donné• <binding> (liaison)
– Description des protocoles (SOAP, HTTP…) et des formats de messages concrets pour chaque <porttype>
• <port> – Définition d’un point d’entrée en associant un <binding> à une adresse
réseau d’un serveur (URL).
• <service>– Définition d’un Web Service comme un ensemble de <port>.
32
Point de vue architectural
WSDL
Service WebRéservation
Séjour
Description WSDL
Description WSDLClient
du Web Service
proxyApplication
Fournisseur de Web Services
Web Service Application
compilateur WSDL(côté client)
compilateur WSDL(côté serveur)
Squeletted’implémentation
générateur WSDL(2)
(1)
Client du Web Service
Fournisseur de Web Services
Annuaire UDDIDe Web Services
Publication
Description WSDL
Description WSDL
Découverte
Description WSDLDescription
WSDL
UDDI Découverte et publication d’un Web Service
34
Qu’est ce que UDDI ?
UDDI permet de retrouver un service web, et WSDL de décrire ses méthodes.On expose au format XML la signature d’un service web accessible sur Internet. Cette signature inclut les opérations exposées, le type de ces paramètres d’entrées-sorties, et l’adresse réseau à laquelle on pourra l’invoquer. [1]
35
Qu’est ce que UDDI ?
• Spécification (09/2000)– Ariba, IBM, Microsoft +260 autres sociétés
• Objectifs– annuaire mondial d'entreprises pour permettre d'automatiser les
communications entre prestataires, clients, etc.– plusieurs entrées indexées : nom, carte d'identité des sociétés,
description des produits, services applicatifs invocables à distance (références des connexions)
• Grammaire XML (schéma XML)– Soumission/interrogation basées sur SOAP et WSDL
36
Exemple : searchFaçons de rechercher un service.
Nous allons rechercher les Web Services de la société Amazon.
37
Exemple : search
AmazonBusiness propose un Web Service
Ce Web Service s’appelle GetBookPrice
38
Conclusion• Les services Web sont mûrs pour une utilisation dans le cadre des
échanges intra-entreprise, Par contre, dans un cadre inter-entreprise (B2B), les services Web souffrent encore d'une normalisation incomplète de l'architecture distribuée.[1]
• Les services Web souffrent de performances faibles comparée à d'autres approches de l'informatique répartie telles que le RMI, CORBA, ou DCOM. Il n'offre pas les mécanismes nécessaires à la manipulation d'instance d'objets distante .[1]
• Par l'utilisation du protocole HTTP, les services Web peuvent contourner les mesures de sécurité mises en place au travers des pare-feu
39
select ? From DBA
40
Bibliographie
1. Antony Fons :Services Web; techniques et perspectives.2. Altova : Web services: Benefits, challenges, and a unique, visual
développent solution.3. The World Wide Web Consortium: http://www.w3.org/
4.Cours :Rémi Badonnel LORIA – INRIA Lorraine badonnel @loria.fr
Jeremy Fierstone [email protected] Blanc [email protected]