Problèmes typiques
• Hétérogénéité
plateformes, langages de
programmation…
• Différentes schémas et
formats de données
Motivation
Traversée de pare-feu
Les services Web utilisent HTTP comme protocole de transport et la plupart des pare-feu
autorisent l'accès via le port 80 (HTTP), ce qui permet une collaboration plus facile et
dynamique.
permettant l'intégration juste à temps
Les services sont liés de manière dynamique à l'exécution
Les systèmes sont auto-configurables, adaptatifs et robustes
Complexité
Web Services est un système de service convivial pour les développeurs.
De nouvelles technologies et de nouveaux langages doivent être appris pour mettre en
œuvre ces services
Réduire la complexité par encapsulation : les applications peuvent être vues comme un ensemble
de services métiers, structurés et correctement décrits, dialoguant selon un standard international
plutôt qu'un ensemble d'objets et de méthodes entremêlés.
Tous les composants d'une application sont des services
Qu’est ce qu’un service Web?
Solution 1 :
Recherche personnelle (Internet, téléphone,…)
Déclaration administrative manuelle
Solution 2 :
Agent de voyage
Réponse généralement unique
Déclaration administrative manuelle
Solution 3 :
Web Services
Découverte dynamique de partenaire
Exemple (2)
Exemple (3)
MANAGEMENT
Descriptions
SECURITY
Web services
Messages Description
(WSDL)
SOAP Extension
Reliability, Correlation, Transaction, …
SOAP
Communications
HTTP, SMTP, FTP, …
IBM Conceptual Web services
stack
Spécification de Web services
Standards de l’architecture
37
Exemple : Message SOAP
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding">
<soap:Header>
<!-- en-tête -->
</soap:Header>
<soap:Body>
<!-- corps -->
</soap:Body>
</soap:Envelope>
Transport des messages SOAP avec HTTP
Message SOAP encapsulé dans une
requête HTTP permet au destinataire (le
serveur HTTP) de savoir
POST /Leaderprice HTTP/1.1 qu’il reçoit une requête
Host: www.leaderpriceserver.com SOAP
Content-Type: text/xml; charset= " ISO-8859-1"
Content-Length: nnnn
SoapAction: " www.leaderprice.com/prices"
HTTP
<?xml version="1.0" encoding="utf-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2002/06/soap-envelope/"
env:encodingStyle=" http://www.w3.org/2002/06/soap-encoding/"/> Message
SOAP
<env:Body>
<m:GetPrice xmlns:m="www.leaderprice.com/prices">
<m:Item>Apples</m:Item>
</m:GetPrice>
</env:Body>
</env:Envelope>
Message SOAP encapsulé dans une
Réponse HTTP
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=" ISO-8859-1"
Content-Length: nnnn
<env:Body>
<m:GetPriceResponse xmlns:m="www.leaderprice.com/prices">
<Price>1.90</Price>
</m:GetPriceResponse>
</env:Body>
</env:Envelope>
41
Message SOAP encapsulé dans une
Réponse (erreur) HTTP
HTTP/1.1 500 Internal Server Error
Content-Type: application/soap+xml; charset=" ISO-8859-1"
Content-Length: nnnn
<soap:Body>
<soap:Fault>
<faultcode> soap:VersionMismatch </faultcode>
<faultstring> Version Mismatch </faultstring>
</soap:Fault>
</soap:Body>
</env:Envelope>
42
Principales technologies
Le langage de description WSDL
WSDL : Web Service Description Language
C’est un langage reposant sur XML dont on se sert pour décrire les services
Web.
Grammaire dérivée d’XML
Il est indispensable à UDDI pour permettre aux clients de trouver les méthodes
leur permettant d'invoquer les services web.
Objectif = décrire l'interface publique d'un Web Service (contrat de
service)
Interface d’un Web Service avec WSDL
Web Service = ensemble de ports de connexions mettant à disposition des
opérations qui reçoivent et envoient des messages
Deux types d’informations
Fonctionnelles : interface du service (signature des méthodes)
Techniques : URL, protocole
Que décrit-on ?
48
Principales technologies
L’annuaire des services UDDI
Définit :
UDDI Business Registry (UBR) = annuaire pour permettre
d'automatiser les communications entre prestataires, clients, etc.
(orienté « business »)
Méthodes de publications (basées sur SOAP)
Méthodes de consultation (basées sur SOAP)
Structure des données UDDI
54
UDDI, registres
UDDI distingue trois types de registres
Pages Vertes
Pages Jaunes
Pages Blanches i
i Informations
i Catégorisation des techniques sur les
différents services, Services proposés par
Informations sur les basée sur l’utilisation une entreprise
contacts, adresses, de taxinomies particulière
téléphones, etc. standards
Op
Op Connecter
Op Rechercher
Publier Comment une
Comment on peut application va pouvoir
Comment enregistrer trouver un service se connecter et
un nouveau service Web particulier interagir avec un
dans le registre Service Web
Composition des services Web
La composition de services est un des enjeux principaux
du SOA.
le couplage faible entre les services,
l’indépendance par rapport aux aspects technologiques
et la mise à l’échelle
Un service Web est composé lorsque son invocation
engendre des interactions avec d’autres services Web.
Il peut être lui-même composé avec d’autres services existants,
afin de réaliser une tâche plus complexe, ou même de simplifier
le travail lors du développement en utilisant des services déjà
développés.
Il existe deux stratégies générales pour composer ces
services Web : la chorégraphie et l’orchestration.
Composition des services Web
- La chorégraphie
Le flux de travail fournira une chorégraphie pour une interaction
automatique entre les services Web.
définit la collaboration et les échanges de messages point à point
entre plusieurs partenaires et plusieurs services Web
propose une vision globale des interactions,
- L’orchestration,
définit l’enchaînement des services selon un scénario prédéfini,
propose une vision centralisée décrivant la manière par laquelle
les services peuvent agir entre eux.
Actuellement, plusieurs langages ont été proposés pour
composer les services tels que le BPEL, WS-CDL, WSCI,
XLANG,WSFL.
Web Services Composition
Orchestration: a description of how a
collection of web services work together to
produce an application [ WS]
Business tasks (operations, exceptions, delays)
Control flow (ordering, optional, conditionals) [ WS]
Data
Composition also enables abstraction
A flow can be exposed as a complex web service
Sécurité
Il existe quatre exigences de sécurité de base:
La confidentialité (Confidentiality )
est la propriété que les informations ne sont pas rendues disponibles ou
divulguées à des personnes, entités ou processus non autorisés et garantit que le
contenu du message n'est pas divulgué à des personnes non autorisées.
L'autorisation (Authorization)
est l'octroi de l'autorité, ce qui inclut l'octroi d'un accès basé sur des droits
d'accès et garantit que l'expéditeur est autorisé à envoyer un message.
L'intégrité des données (Data integrity )
est la propriété que les données n'ont pas été altérées ou détruites de manière
indétectable de manière non autorisée ou par des utilisateurs non autorisés,
assurant ainsi que le message n'a pas été modifié accidentellement ou
délibérément en transit.
La preuve d'origine (Proof of origin )
est une preuve identifiant l'expéditeur d'un message ou de données. Il affirme
que le message a été transmis par un expéditeur correctement identifié et qu'il
ne s'agit pas d'une retransmission d'un message transmis précédemment. Cette
exigence implique l'intégrité des données
Gestion
Dans ce cas, la gestion signifie qu'une application de gestion
peut découvrir
l'existence,
la disponibilité
et l’état de l'infrastructure de services Web, des services Web et des
registres de services.
Il doit être possible de gérer des services Web à tous les
niveaux de la pile conceptuels de services Web.
Les interfaces de gestion doivent fonctionner au niveau du
service et non au niveau relativement bas de l'infrastructure.
Rapport de base sur la disponibilité de l'infrastructure de services
Web
Informations sur les performances, la disponibilité et les événements
des services Web
Qualité de service
Au niveau de la messagerie XML
Messagerie fiable: capacité d'une infrastructure à transmettre un
message une fois, et une seule fois, à la cible visée ou à fournir un
événement défini, éventuellement à la source, si la livraison ne peut
pas être effectuée
Au niveau de description du service
Durée maximale après que le demandeur s'attend à ce que le
fournisseur réponde
Au niveau de composition de service ou niveau de flux de
service
Temps d'exécution prévu, valeurs de délai d'attente,…
au Client
caractéristiques
Implémentation service Web
Coté fournisseur
Coté client
Développement de Web services
Le développement et le déploiement de services Web ne
nécessitent pas une technologie particulière dans la plate-
forme sous-jacente
Un éditeur de texte commun peut être utilisé pour
développer des services Web
Il existe plusieurs outils de développement permettant de
développer facilement des services Web.
Microsoft Visual Studio .NET
Sun ONE Studio
IBM WebSphere Studio ou Eclipse IDE avec WSDK
…
Web services with Microsoft .NET
You have to
Access to Internet Information Services (IIS)
In a local or remote machine
A server for web applications/services
The service repository of one or more service providers
Create a Web service project in Microsoft Visual Studio
.NET
A Web service is composed by classes
Usage of keyword WebMethod for the public methods invocable from
the Internet
Web services in Microsoft Visual Studio
.NET
Merci