services web xml - Département d`informatique et de recherche

Transcription

services web xml - Département d`informatique et de recherche
Filatova Irina
Étudiante de Maîtrise (és)
en Commerce Électronique
FILATOVA IRINA
[email protected]
Ce document a été produit dans le cadre du cours
IFT6261 Traitement des connaissances
Université de Montréal
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 1 sur 44
Filatova Irina
TABLE DES MATIÈRES
1.
2.
3.
4.
5.
6.
7.
8.
Résumé ………………………………………………………………………. 3
Chapitre 1
Introduction ……… ……………………………………………………. 4
Chapitre 2
Concept Services Web XML …………………………………………… 6
2.1. Définition de Services Web XML ……………………………………… 6
2.2. Raisons principales d’utilisation de Services Web XML ……………. 6
2.3. Caractéristiques des Services Web XML …………………………….. 7
2.4. Exemples concrets d’utilisation ……………………………………….. 8
Chapitre 3
Architecture de Services Web XML …………………………………. 9
3.1. Fondation de l’architecture de Services Web XML …………………. 9
3.2. Architecture orientée services (SOA) ……………………………….… 10
3.3. Services Web XML et architecture à 5 couches ……………………… 11
3.4. Exemples des architectures ……………………………………………. 13
Chapitre 4
Standards de fonctionnement de Services Web XML ………………. 13
4.1. Technologies XML …………………………………………………….. 15
4.2. Services Web XML et Protocole SOAP ………………………………. 19
4.2.1. Description des messages SOAP ……..………………………… 20
4.2.2. Enveloppe de message SOAP …………………………………… 21
4.2.3. Exemple de message SOAP …………………………………….. 22
4.3. Services Web XML et organisation d’un document WSDL …………. 24
4.3.1. Description d’un document WSDL ……………………………. 24
4.3.2. Exemple de la structure d’un document WSDL ……………… 26
4.4. Services Web XML et UDDI ………………………………………….. 28
4.4.1 Description UDDI ………………………………….………….. 28
4.5. Différents standards Services Web XML …………………………….. 30
Chapitre 5
Spécifications de Services Web XML ……………………………….… 32
5.1. Recherche de service …………………………………………………… 33
5.2. Création du système fiable ……………………………………………. 34
5.3. Mis en place des systèmes sécurisés ………………………………….. 34
Chapitre 6
Outils pour développer de Services Web XML ….………………….. 35
Chapitre 7
Solution de l’intégration de Services Web XML ……..……………... 36
Chapitre 8
Conclusion …………….…………………………………………….….. 37
Bibliographie …….………………………………………………………….. 41
Annexe 1 : Lafarge ………………………………………………………….. 43
Annexe 2 : Algora ……………………………..…………………………….. 44
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 2 sur 44
Filatova Irina
SERVICES WEB XML
Résumé
L’Internet, devenu un acteur incontournable
de l’économie, s’infiltre au sein des
entreprises du monde entier sans la moindre discrimination. Celles-ci profitent des
nouvelles technologies pour favoriser la communication avec leurs clients, leurs
fournisseurs et leurs partenaires commerciaux. Si, dans le premier temps, les entreprises
ont été quelque peu bousculés par cette intrusion massive des nouvelles technologies, la
tendance s’est inversée et, à présent, c’est la logique économique qui dicte les
transformations nécessaires de l’Internet. Ces Services Web XML se présentent donc
comme la solution permettant aux entreprises de fournir à moindre coût, au travers du
Web, des services de qualité aux entreprises.
A l'image des sites Web classiques qui permettent à des personnes connectées au réseau
d'accéder à des informations ou à des services, les Services Web basant sur la technologie
XML
(ci-après nommé Services XML) permettent à des entreprises d'ouvrir leurs
services internes sur le Web et ce, d'une manière uniformisée. L’élément clef qui a permis
le développement des Services Web XML est l’apparition de nouveaux standards
technologiques basés sur XML. Leurs adoptions par les principaux acteurs du marché de
l’Internet ont conduit à la création d’une pléthore de «standards» XML. En fait, XML est
une famille de technologies qui favorisent l’interopérabilité des systèmes et la
pérennisation du patrimoine documentaire et informationnel de l’entreprise.
Dans la suite de cette synthèse des articles on présentera ces standards plus en détail.
Mots-clés : Technologie, Service Web, XML, SOAP, UDDI, WSDL, Spécifications
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 3 sur 44
Filatova Irina
1. Chapitre 1
Introduction
Dans le contexte des transactions nécessaires de l’Internet, l’arrivée des Services Web
XML correspond parfaitement aux attentes formulées par les entreprises. Le Web est, en
fait, considéré comme un cadre de travail totalement indépendant des langages et des
plates-formes où des opérations, appelées Services Web XML, peuvent être effectuées.
Cette indépendance des Services Web XML vis-à-vis des langages et des plates-formes
couplées à des protocoles de communications standardisées, tel que HTTP1, assure aux
applications distribuées une interopérabilité maximale. Ils apportent donc un souffle
nouveau aux entreprises désireuses de proposer leurs services au monde entier.
Beaucoup de chemin a été parcouru depuis 1998, date à laquelle le W3C2 donnait aux
spécifications XML3 le statut de recommandation.
L'avènement du langage HTML4 en parallèle avec le protocole HTTP a engendré une
révolution dans la manière dont les gens partagent l'information. Au-delà a de cette
révolution, une évolution des mentalités est aussi constatée puisque le monde des
réseaux, regorgeant de systèmes propriétaires et de logiciels dépendant de leur plateforme d'exécution, s'ouvre enfin aux standards. Néanmoins, les limites du langage
HTML, conçu principalement pour la représentation des données, se font très vite
ressentir. En effet, il est impossible de définir avec rigueur la sémantique des données
présentes au sein d'un fichier HTML. Heureusement, l'apparition du langage XML
permet de remédier à cette carence grâce à l'utilisation de DTD5 ou de « XML Schema. »
XML devient donc un élément de premier choix pour l'échange de données formatées au
travers du Web. En 1998, la firme UserLand Software saisit cette opportunité et utilise
les deux standards XML et HTTP pour définir un protocole de communication permettant
à différentes versions de leur logiciel, tournant distinctement sur des OS Windows et
1
2
3
4
5
Hyper Text Transfer Protocol
World Wide Web Consortium
eXtensible Markup Language
HyperText Markup Language
Document Type Definition
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 4 sur 44
Filatova Irina
Mac, de communiquer. Ce protocole, première ébauche de XML-RPC6, fait naître l'espoir
d'une interopérabilité entre plates-formes de toutes origines reliées via l'Internet.
Ensuite, le géant de l'informatique Microsoft décide de continuer les travaux entamés en
définissant un protocole dérivé de XML-RPC appelé SOAP7. Il faudra attendre la version
1.1 de SOAP avant que SUN rejoigne Microsoft et participe activement au sein du
« W3C working group » à la définition de ce protocole. SOAP se présente comme la
solution au problème d'interopérabilité entre la plate-forme .NET de Microsoft et la plateforme J2EE8 de SUN. . .
Cependant, la création de Services Web nécessite d'autres types de standards
technologiques que SOAP car celui-ci sont uniquement limité à la communication entre
composants distribués. Il est donc logique de voir apparaître d'autres standards tels que
UDDI9 permettant la découverte des ces services dispersés sur le Web ou WSDL10
permettant la description de ces services.
Les Services Web XML reflètent une approche de conception «orientée», basée sur l’idée
de construire des applications en déployant et en découvrant des services réseau ou en
invoquant des applications pour accomplir des tâches.
L’utilisation de Services Web XML rend possible la réalisation d’environnements
technologiques distribués dans lesquels des applications u des composantes applicatives,
peuvent interagir entre elles, et ce de manière indépendante de la plate-forme physique,
des langages de programmation ou encore des systèmes d’exploitation. Ainsi, un Service
Web XML est un morceau de logique d’affaires, localisé quelque part sur un réseau, qui
est accessible via des normes et standards XML. Utiliser un Service Web XML peut être
aussi simple que de s’habiliter sur un portail ou aussi complexe que d’amorcer une
transaction d’affaires multi organisation. Les Services XML sont en fait des applications
modulaires et indépendantes qui peuvent être décrits, publiées, localisées, et appelées sur
un réseau.
6
eXtensible Markup Language-Remote Procedure Calling
Simple Object Access Protocol
8
Java 2 Enterprise Edition
9
Universal Description, Discovery and Integration
10
Web Service Description Language
7
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 5 sur 44
Filatova Irina
2. Chapitre 2
Concept Services Web XML
2.1. Définition de Services Web XML
Les Services Web XML [URL2] sont des processus métiers ou des données accessibles
via Internet par n’importe quel autre tiers quelle que soit sa nature. Les Services Web
XML permettent aux applications d’interagir entre elles via le Web. Les Services Web
XML sont des composants logiciels encapsulant des fonctionnalités métier de l’entreprise
et accessibles via des protocoles standards du Web. Un Service Web XML est décrit dans
un document WSDL [URL3], précisant les méthodes pouvant être invoquées, leur
signature, et les points d’accès du service (URL11, port, etc.) Ces méthodes sont
accessibles via SOAP [URL4]: la requête et la réponse sont des messages XML
transportés par HTTP. Un Service Web XML est accessible depuis n’importe quelle
plate-forme ou langage de programmation. On peut utiliser un Service Web XML pour
exporter des fonctionnalités d’une application et les rendre accessibles via des protocoles
standard. Le Service Web XML sert alors d’interface d’accès à l’application, et dialogue
avec elle au moyen de middleware (CORBA12, RMI13, DCOM14, EJB15, etc.) [Girad,
Crusson, 2001]
2.2. Raisons principales d’utilisation de Services Web XML
Les principales raisons d'utiliser les Services Web XML sont de:
•
gagner une interopérabilité entre différentes applications distribuées hébergées par
différents serveurs programmées dans des langages différents;
•
rendre accessibles des applications à travers firewall en utilisant les protocoles
Internet;
11
12
13
14
15
Uniform Resource Locator
Common Object Request Broker Architecture
Remote Method Invocation
Distributed Component Object Model
Enterprise JavaBeans
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 6 sur 44
Filatova Irina
•
offrir un langage de modélisation XML indépendant de la plate-forme ou de la
technologie utilisée qui facilite le développement.
En plus, les Services Web XML doivent respecter les propriétés suivantes:
•
être accessibles via Internet;
•
se décrire et décrire les services qu'ils proposent par un fichier descriptif de type
XML;
•
communiquer avec un client sous forme de message XML transmis sur Internet
via un protocole comme HTTP.
2.3. Caractéristiques des Services Web XML
Cette technologie est basée entre autres sur le standard XML, et est supportée par la
majorité des entreprises en technologie de l’information. XML est le langage neutre
permettant de représenter les données. Il provient de l’évolution du langage SGML16,
permettant aux concepteurs de définir leurs propres marqueurs, dans le but de
personnaliser la structure des données qu’ils comptent présenter. Le support global de ce
standard par les entreprises assure que chaque nouvelle technologie logicielle aura une
stratégie de Services Web XML dans les années à venir.
Un Service Web XML possède les caractéristiques suivantes :
16
•
Représentation de données basée sur XML;
•
Interface flexible;
•
Habilité d’interagir de manière synchrone ou asynchrone;
•
Support des appels de fonctions distantes;
•
Support d’échange de documents.
Standard Generalized Markup Language
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 7 sur 44
Filatova Irina
2.4. Exemples concrets d’utilisation
Lors de la rédaction du travail de semestre, nous avions abordé des projets tels que .NET
Passport ou .NET My Services développé par Microsoft [URL5]. Aujourd’hui, d’autres
services ont fait leur apparition. Notons Google [URL6], Altavista [URL7], E-Bay
[URL8]. Nous nous rendons compte de l’intérêt que peut apporter un service Web dans
l’utilisation d’une base de données qui est déjà accessible sur Internet. Mais les Services
Web peuvent également permettre d’autres manipulations. Il est maintenant possible
d’envoyer des messages via un service Web, de faire des réservations ou des achats de
tickets de concerts (une organisation américaine ressemblant à Ticket-Corner [URL9]),
de faire traduire du code d’un langage vers un autre (dans ce cas, l’utilisation des
Services Web XML permet une amélioration du produit à tous moments.) Bien d’autre
cas existent actuellement.
Frameworks disponibles. De nombreux langages sont actuellement en cours d’adaptation
pour permettre une communication avec les services Web. L’adaptation consiste en un
développement d’une librairie d’accès aux services Web. Celle-ci se base souvent sur
d’autres libraires, typiquement les librairies de sérialisation XML. Ce cas est bien visible
avec le projet Apache pour Java. Microsoft SOAP Toolkit. Le SOAP Toolkit de Mirosoft
permet de créer des applications (ou de modifier des existantes) développées par exemple
avec Visual Studio. Framework .NET. .NET est un framework élaboré au départ par
Microsoft dans un but quelque peu avoué de combattre Java sur son propre terrain. Ce
framework étant extrêmement récent (le début du développement date de 2000), il a tout
d’été orienté Service Web XML. Ceci en fait un outil tout particulièrement indiqué pour
des entreprises souhaitant débuter un développement de Service Web XML. Monde de
Java. La communauté Java est très productive en librairies pour les services Web.
Borland, Microsoft, IBM et SUN ont chacun développé leur propre librairie payante pour
l’accès aux Services Web XML. D’autres projets permettent également le développement
de service Web, de manière gratuite comme par exemple Apache et JBoss ; dans ces cas
précis, il s’agirait plutôt d’extensions de projets existants. Les solutions gratuites étant
pour l’instant bien plus complexes à mettre en place, tout du moins pour des
développeurs n’utilisant pas les librairies de ces différents projets. Autres. Il est
également possible de développer ou d’accéder à des services Web avec d’autres
langages, tel que Python ou PHP. Dans le cas de ce dernier, la librairie n’en est cependant
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 8 sur 44
Filatova Irina
qu’à ses premiers pas : il est encore trop tôt pour savoir quels seront ses avantages et
inconvénients.
3. Chapitre 3
Architecture de Services Web XML
3.1. Fondation de l’architecture de Services Web XML
L’architecture des Services Web XML repose sur un mécanisme de transport d ’une
demande de service entre des clients et des serveurs, tous deux connectés au réseau. La
Figure 3.1.1. décrit le mécanisme de transport :
Figure 3.1.1. Mécanisme de transport
Dans cette architecture, le client peut être soit un navigateur Web, soit une application (la
demande de service est alors automatisée.) Le rôle du serveur, quant à lui, est joué par
une application qui s’exécute sur un moteur de scripts interfacé à un serveur HTTP ou sur
un serveur d’applications J2EE ou .NET.
Le mécanisme de communication permettant cette circulation de requêtes et de résultats
autorise évidemment la mise en relation de plusieurs clients et de plusieurs serveurs et,
bien souvent, d’ailleurs, d’applications jouant parfois le rôle de client et parfois celui de
serveur.
Le «bus de requêtes » est fondé sur TCP/IP17 et sur HTTP, ce qui permet son utilisation
tant sur Internet qu’en vue de l’intégration d’applications au sein du réseau interne de
l’entreprise ou de la «publication » d’applications préexistantes sur le Web à destination
17
Transmission Control Protocol/Internet Protocol
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 9 sur 44
Filatova Irina
des entreprises partenaires. Le Service Web XML est l’interface publique de l’application
dans le réseau intra ou interentreprises.
Comme HTTP ne transmet que du texte – des pages Web au format HTML, tous les
échanges entre Services Web XML (requêtes et résultats de requêtes) circulent également
au format texte, sous forme de documents codés en XML. La Figure 3.1.2. décrit
l’échange des messages :
Figure 3.1.2. Présentation de Services Web XML
3.2. Architecture orientée services (SOA)
Les Services Web XML reposent sur une architecture orientée services (SOA)18. La base
de l’architecture d’un Service Web XML est clairement définie et reste la même quel que
soit le type de développement provenant des éditeurs.
La Figure 3.2.1. décrit l’architecture qui inclut les 3 types élémentaires d’interactions :
Figure 3.2.1. Architecture SOA
18
Service Oriented Architecture.
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 10 sur 44
Filatova Irina
Fournisseur de Services Web XML. Les fournisseurs de Web Services XML développent
et définissent les Web Services XML pour les publier dans un annuaire de Web Services
XML ou pour les rendre directement accessibles par les consommateurs.
Client de Services Web XML. Les clients de Services Web XML font une recherche soit
dans l’annuaire des Services Web XML soient directement auprès des fournisseurs afin
de trouver les services désirés. Une fois que le service a été localisé, le client se lie
directement aux fournisseurs du service.
Annuaires de Services Web XML. Ils se comportent comme des annuaires centralisés
incluant la description et les méthodes d’accès aux Services Web XML fournisseur ayant
publié leurs descriptions.
3.3. Services Web et architecture à 5 couches
Les architectures à base de Services Web sont des architectures multi-applications. Pour
bien coder ces applications Stève Sfartz a proposé le schéma de conception "Architecture
à 5 couches" [URL10] qui présente dans la Figure 3.3.1. :
Figure 3.3.1. Architecture à 5 couches
•
La couche Physique correspond à la structure physique des données: SGBD,
annuaire LDAP, Transaction CICS, ..
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 11 sur 44
Filatova Irina
•
La couche Mapping réalise les accès vers la couche Physique. Dans le cas d'un
SGBDR, il s'agit d'un outil de mapping relationnel/objet;
•
La couche Entreprise correspond aux objets structurants de l'entreprise. Ces
objets n'intègrent aucune notion fonctionnelle. Cette couche regroupe des objets
transversaux à toutes les applications. De plus, la couche Entreprise propose des
services d'accès à ces objets au travers de méthodes de création, recherche,
modification, suppression. Ces méthodes contiennent les règles de gestion
associées aux différentes opérations;
•
La couche Application regroupe la logique fonctionnelle d'une application, tel
qu'elle est définie dans les spécifications fonctionnelles détaillées. La couche
Application utilise les services de la couche Entreprise pour réaliser le fonctionnel
spécifié, et présente ce fonctionnel sous la forme de services. Ces services
retournent des objets de niveau application, qui sont autant de vues sur les objets
entreprises. Les objets de niveau application peuvent, par exemple, masquer
l'information "découvert autorisé" d'un objet Compte de niveau Entreprise.
•
La couche Client représente l'interface utilisateur. Elle est amenée à changer
fréquemment dans le cas d'une application WEB.
L'architecture à 5 couches permet de décomposer le système en sous-systèmes. Chacun
de ces sous-systèmes peut être modélisé de façon indépendante, et il est possible
d'affecter des responsabilités aux intervenants du projet sur telle ou telle couche (analyse
/ implémentation.)
Le modèle à 5 couches propose donc un cadre de conception systématique, garantissant
des hauts niveaux :
•
d'évolutivité, en dissociant le fonctionnel du transactionnel;
•
de maintenabilité, en attribuant des responsabilités par couche;
•
de réutilisabilité, en assurant un faible couplage entre les couches.
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 12 sur 44
Filatova Irina
Dans le cadre d'une architecture à 5 couches l'utilisation des services se fait naturellement.
Développer l'accès à une application via les Services Web XML revient à développer une
nouvelle couche client. Il y aura ainsi des clients XHTML, WML, XML, et Services
Web d'une application.
Le développement de cette couche client "Services Web " se fera d'ailleurs très
simplement en important la façade de la couche application dans un outil de
développement de Services Web XML.
Le fait qu'une application soit accessible via les Services Web ne doit pas impacter les
développements des couches application et entreprise. Ces couches doivent rester
indépendantes des clients qui les manipulent.
3.4. Exemples des architectures
CORBA. Dans l’architecture CORBA, ce rôle est joué par l’ORB19, qui transporte les
requêtes entre le programme client et les objets sur le serveur. Depuis la version 2 de la
norme CORBA, le protocole de communication de l’ORB, appelé IIOP20, s’appuie sur
TCP/IP et peut donc être employé sur Internet. .NET .Dans l ’architecture Microsoft, ce
rôle est précisément assuré par le protocole DCOM qui étend le modèle mono-machine
COM aux réseaux de PC sous Windows. J2EE. Dans l’architecture J2EE, le protocole
RMI permet à un programme Java d’en appeler un autre qui est exécuté sur une machine
virtuelle Java distante.
4. Chapitre 4
Standards de fonctionnement de Services Web XML
Afin de rendre un Service Web XML exploitable, nous devons avoir la capacité de
définir ce service, de l'enregistrer dans une base de données, de le découvrir grâce à la
19
20
Object Request Broker
Internet InterOrb Protocol
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 13 sur 44
Filatova Irina
base de données et finalement de l'invoquer et de l'exécuter. Heureusement, un bon
nombre de standards, basés sur XML, rendant possible l'exploitation des Services Web,
ont été développés: SOAP, WSDL, UDDI… qui ont émergé comme standards Internet:
•
«eXtensible Markup Language» (XML), [URL2]
qui est un langage à balise définissant un format universel de représentation, de
description et d'échange de données;
•
«Simple Object Access Protocol » (SOAP), [URL4]
qui fournit une structure d’emballage permettant de transporter des documents;
•
«Web Service Description Language » (WSDL), [URL3]
qui est utilisé comme méthode de description de services offerts;
•
«Universal Description, Discovery and Integration» (UDDI), [URL11]
qui est utilisé comme méthode de publication et de découverte des services par
les utilisateurs.
Vue d’ensemble des Services Web XML. Le rapport entre les technologies, SOAP, WSDL
et UDDI, peut être décrit par scénario suivant : une application agissant en tant que client
a besoin de localiser une autre application ou une composante de logique d’affaires
localisées quelque part sur le réseau. Le client effectue une requête au répertoire UDDI
pour localiser le service offert par l’application. Cette requête peut s’effectuer soit par un
nom, par une catégorie ou par une spécification supportée. Une fois le Service Web XML
localisé, le requérant obtient à partir du répertoire UDDI les renseignements au sujet de
l’emplacement d’un document WSDL.
Le document WSDL contient les renseignements relativement à façon d’invoquer le
Service Web XML et la structure de messages de la requête en format de XML. Le
requérant crée un message SOAP conformément au XML, tel que spécifié par WSDL,
envoie une demande à l’application où le service réside pour finalement être réalisé par
l’application.
La Figure présente 4.1. la vue ensemble de Services Web XML :
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 14 sur 44
Filatova Irina
Figure 4.1. Vue ensemble de Service Web XML
Voyons maintenant un peu plus en détail les principaux standards cachés sous le terme de
Services Web: XML, SOAP, WSDL et UDDI.
4.1. Technologies XML
XML est un standard promulgué par le W3C, l’organisme chargé de standardiser les
évolutions du Web. XML a été conçu pour des documents arbitrairement complexes, tout
en s’appuyant sur cinq grands principes simples et clairs :
•
lisibilité à la fois par les machines et par les utilisateurs ;
•
définition sans ambiguïté du contenu d’un document ;
•
définition sans ambiguïté de la structure d’un document ;
•
séparation entre documents et relations entre documents ;
•
séparation entre structure du document et présentation du document.
On retrouve dans XML une généralisation des idées contenues dans HTML et SGML21.
XML permet de définir des balises et de leur associer une interprétation. Dans HTML, on
n’utilise les balises que pour décrire l’aspect graphique que doit revêtir la page dans le
navigateur Web. Dans XML, les balises permettent d’associer toutes sortes
d’informations au fil du texte.
Au même titre que le langage HTML, XML est un sous-ensemble simplifié du langage
SGML et est destiné à décrire différents types de données à l'aide de «tags. » Le langage
21
Structured Generalized Markup Language
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 15 sur 44
Filatova Irina
XML est orienté vers la structuration des données. La puissance du standard XML réside
dans la simplicité avec laquelle il permet de décrire des données. Cette simplicité facilite
l'interopérabilité entre systèmes totalement hétérogènes. Un document XML est constitué
de quatre parties distinctes : la déclaration, les règles, l'instance du document et la feuille
de style. Le tableau 4.1.1. présente les dialectes XML :
Dialectes XML
Langage / organisme
XML
eXtensible Markup Language,
W3C
XML Schema,
W3C
Champ d'application
La spécification de base du langage XML qui précise
comment définir la structure des données dans un
document.
XML Schema spécifie comment décrire et valider une
structure de données. A cette fin, XML Schema permet par
exemple de "typer" les données (date, chiffre, etc. )
Auparavant, ce travail nécessitait la création d'une DTD.
XML Namespaces,
W3C
Les espaces de noms permettent d'appliquer au sein d'un
même document XML plusieurs vocabulaires.
XSL/XSLT
eXtensible Stylesheet Language
W3C
XSL est à XML ce que les feuilles de styles (les fameuses
"CSS") sont à HTML: un moyen de formater les
documents. Associé à XSLT, XML permet de transformer
le format d'un document XML.
Tableau 4.1.1. Dialectes XML pour Services Web
La déclaration permet de définir la version de XML utilisée ainsi que le type d'encodage.
Les règles définissent le type du document en spécifiant notamment les contraintes
structurelles et les valeurs par défaut. Elles sont utilisées pour valider l'instance d'un
document XML et la structure de ce document présente dans l’exemple 4.1.2. :
<?xml version=’’1.0’’ encoding=’’ISO-8859-1’’?>
<! DOCTYPE livre STSTEM ‘’http://abu.cnam.fr/annuaire.dtd’’>
<annuaire tipe =’’pages blanches>
<entree>
<nom>Paul Lafargue</nom>
<telephone>06 03 02 01</telephone>
</entree>
<entree>
<nom>Lorédan Larchey</nom>
<telephone>05 01 02 03</telephone>
</entree>
</annuire> |
Exemple 4.1.2. Structure de document XML
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 16 sur 44
Filatova Irina
Ces règles sont généralement écrites sous la forme d'un DTD qui définissent les balises
qui sont utilisées dans une famille de documents XML. L’exemple 4.1.3. déclare la
structure de DTD et sa présentation dans le document XML:
<?xml version=’’1.0’’ encoding=’’ISO-8859-1’’?>
<! DOCTYPE livre STSTEM ‘’http://abu.cnam.fr/annuaire.dtd’’>
<annuaire tipe =’’pages blanches>
……..
</annuire> |
<?xml version=”1.0”>
<!ELEMENT entree (nom, telephone)>
<!ELEMENT nom (#PCDATA)>
<!ELEMENT telephone (#PCDATA)>
Exemple 4.1.3. Structure de DTD
Cependant, depuis peu, le W3C propose une alternative aux DTDs : XML Schema. Le
XML Schema qui présente dans l’exemple 4.1.4., au contraire des DTDs, est
intégralement défini selon la syntaxe XML.
<xsd : schema
xmlns :xsd=’’http:///www.w3.org/2001/10/XMLSchema’’
targetNamespace=’’http://www.annuaires.org’’
xmlns=’’http://www.annuaire.org’’
elementFormDefault=”qualified”/>
<xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema">
<xsd:element name="entree">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="nom" type="xsd:string" minoccurs=”1” maxoccurs=”1”/>
<xsd:element name="telephone" type="xsd:decimal"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Exemple 4.1.4. Présentation XML Schema
XML-Schema est une recommandation du W3C, au même titre que XML. Les
documents XML-Schema permettent de décrire la structure d'un document XML d'une
façon beaucoup plus complète que les DTD. Il est par exemple possible de spécifier la
typologie des données (String, Décimal, etc.) que va contenir le document XML décrit
par le XML-Schema.
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 17 sur 44
Filatova Irina
Par ailleurs, il étend considérablement les capacités de ces DTDs : il supporte les XML
Namespaces (xmlns) que nous introduisons dans la suite du document, l’exemple 4.1.5. :
<organisation>
<xmls : entreprise=’’http://www.entreprise.org’’
<xmls : personne = ‘’http://www.personne.org’’>
<entreprise :nom » Bizib onc.</entreprise :nom>
<personne:nom>
<personne:nomDeFamille>Lafargue</personne :nomDeFamilli>
<personne:prenom>Paul</personne :prenom>
</personne :nom>
<personne : fonction PDG>
</personne :fonction>
</organisation>
Exemple 4.1.5. Présentation XML Namespaces
Les XML Namespaces sont spécifiés dans une recommandation du W3C. Ils permettent :
•
de mélanger du vocabulaire XML provenant de plusieurs grammaires,
•
d’identifier de manière unique les balises XML.
C’est l ‘objectif des espaces de nommage, ou XML Namespace. Le principe est d’associer
une URI22 à un nom. Par exemple l’espace de nommage "personne" peut être déclaré de
la façon suivante :
xmlns:personne="http://www.personne.org".
Ce nom est ensuite utilisé pour caractériser les balises. Par exemple <personne:nom>
signifie que la balise <nom> appartient à l’espace de nommage "personne". L’URI de
xmlns (http://www.entreprise.org et http://www.personne.org) peut être fictive : elle
n’est pas vérifiée, toutefois elle pointe généralement sur la grammaire de l'espace de
nommage. L’utilisation d’espaces de nommage permet de préciser que des éléments d’un
document XML sont associés à une grammaire, et de donner l’URI où la grammaire est
spécifiée.
Enfin, la feuille de style définit la présentation XSL23 associée au document XML. Il
existe un mécanisme de transformation XSLT24 permettant d'obtenir la présentation
22
23
24
Uniform Resource Identifier
eXtensible Stylesheet Language
eXtensible Stylesheet Language Transformation
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 18 sur 44
Filatova Irina
d'un document XML en vue de le présenter à son utilisateur. Un document XSLT qui
présente dans l’exemple 4.1.6. peut être vu comme une succession de template. Un
template étant du code XSLT qui permet de sélectionner une partie du document XML et
de lui apporter une transformation. Il permet de sélectionner un "livre" et d'appliquer une
transformation qui génère du HTML. La transformation est située entre les balises de
début et de fin du template (xsl:template). Il existe de multiples instructions XSLT
(xsl:when, xsl:otherwise, xsl:if,...) qui assurent à ce langage une grande puissance de
transformation.
<xsl:stylesheet xmlns:xsl="">
<xsl:template match="livre">
<html>
<body>
<p>
<b>
<xsl:value-of select="auteur"/>
</b>
<xsl:value-of select="titre"/>
</p>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Exemple 4.1.6. Présentation XSLT
4.2. Services Web XML et Protocole SOAP
« SOAP provides the first piece of the puzzle: a means for one piece of code to
communicate with another piece of code » [Clark, Fletcher, Hanson, Irani,
Watehouse, Theli, 2001.]
SOAP fournit une structure d’emballage standard XML permettant de transporter des
documents sur une variété de technologies Internet, comprenant SMTP25,
HTTP et
26
FTP . En fait, ce protocole de communication permet l’interopérabilité des applications à
travers l’Internet. L’interopérabilité implique qu’un programme opérant sur un système
ouvert fonctionne également sur un autre système. SOAP associe les protocoles HTTTP,
25
26
Simple Mail Transfert Protocol
File Transfert Protocol
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 19 sur 44
Filatova Irina
SMTP et FTP à la flexibilité et l’extensibilité du langage XML, pour faciliter la
communication entre différents modèles de développement, dont CORBA, DCOM,
J2EE. Il permet aux développeurs de réaliser des Services Web XML et de relier des
composantes hétérogènes sur Internet.
4.2.1. Description des messages SOAP
Le principe général de SOAP définit un mécanisme simple et léger pour échanger de
l’information structurée et typée entre entités dans un environnement distribué
l’information structurée en utilisant le langage XML. Les messages échangés via le
protocole SOAP jouissent donc les avantages qui lui procurent le langage XML pour
structurer les données. Le standard HTTP, défini à l’origine pour transporter du texte, se
présente comme le protocole idéal. En effet, le système de requête et réponse de SOAP
correspond parfaitement au système de requête et réponse de HTTP.
Le développement d'un Service Web XML ne présente donc pas de difficultés techniques
puisque la technologie utilisée est parfaitement maîtrisée. On retrouve donc la logique
client-serveur bien connue des développeurs de sites Web. Le client SOAP a pour rôle
d'encoder les requêtes destinées à un service distant sous le format XML et de les
envoyer via HTTP. Le serveur SOAP, quant à lui, est à l'écoute des messages SOAP qu'il
interprète et convertit dans un langage compréhensible par l'objet auquel est destinée la
requête.
Ensuite, le serveur peut renvoyer la réponse encodée au format XML via HTTP. Ce
processus permet donc à des applications écrites dans n'importe quel langage et exécutées
sur n'importe quelle plate-forme de communiquer; les efforts de traduction étant laissés
au client et au serveur SOAP. Bien entendu, ces deux rôles ne sont pas exclusifs et il est
tout à fait envisageable de rencontrer une application distribuée jouant à la fois le rôle de
serveur et de client SOAP.
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 20 sur 44
Filatova Irina
4.2.2. Enveloppe de message
Message SOAP définit à la fois les règles d'encodage des données qui traverseront les
réseaux et les conventions de représentation des appels de procédure à distance. Il définit
également l'enveloppe du message et fournit un mécanisme pour lier le message avec le
protocole sous-jacent. Les règles utilisées pour la sérialisation au sein d'un message
SOAP sont généralement dictées sur base d'un «XML Schema. » Il est important de
souligner que l'encodage des données selon ce «XML Schema » n‘est absolument pas
obligatoire et que les clients et serveurs sont libres d'utiliser des conventions différentes.
Il existe également un mécanisme permettant de donner explicitement le type de chacune
des données utilisées.
Le message SOAP, entièrement défini au format XML, est contenu dans une enveloppe
divisée en trois parties : un élément racine appelé Enveloppe et deux autres éléments
intégrés à l'enveloppe, appelés En-tête et Corps.
L'enveloppe doit obligatoirement contenir un élément Corps. S'il contient également un
élément En-tête, non obligatoire, il ne doit contenir que ce seul En-tête. L'en-tête doit
obligatoirement être placé avant le Corps. La Figure 4.2.2.1. présente de la structure de
l’enveloppe SOAP :
Figure 4.2.2.1. Structure de l’enveloppe SOAP
L'en-tête utilise un code XML valide, bien formé et qualifié par un XML Namespace
pour décrire le contenu et le mode de traitement du message. Chaque élément contenu
dans l'En-tête est appelé Bloc d'en-tête. Ces blocs d'informations
fournissent des
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 21 sur 44
Filatova Irina
renseignements sur la forme des structures de données incluses, sur l'application de
sécurité, sur l'identité de l'expéditeur et sur le routage souhaité. Le Corps peut contenir
autant de noeuds inférieurs que nécessaire. Le contenu de cet élément Corps est le texte
actuel du message en code XML "well-formed".
Ce code doit être qualifié par un espace de noms et ne doit contenir aucune instruction
XML, ni aucune référence à une DTD (définition de type de document.) La Figure
4.2.2.2. présente un exemple le contenu de l’enveloppe SOAP :
Figure 4.2.2.1 Structure de l’enveloppe SOAP
4.2.3. Exemple de message SOAP
L’exemple 4.2.3.1. présente un message SOAP envoyé à un Service Web XML. Dans le
cas présent, la requête interroge un service météorologique en lui transmettant un code
postal (zipcode) afin d'obtenir en retour la température associée à ce code postal.
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 22 sur 44
Filatova Irina
<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xlmsoap.org/soap/envelope"
SOAP :ENV : encodingStyle="http://schema.xlmsoap.org/soap/encoding"
<SOAP-ENV:Header>
<ms1: transaction xmlns:ms1=”soap-transaction”
SOAP-ENV: mustUnderstand=”true”>
<transactionID>1234</transactionID>
</ms1: transaction>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<m:getWeather xmlns:m=”http://weather.com/messageweather”>
<zipcode xsi:type="xsd:string">10016</zipcode>
</m:getWeather>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Exemple 4.2.3.1. Requête SOAP
L’élément « Envelope » est la racine de ce document XML. Pour construire un appel de
procédure distante au sein du corps du message SOAP, on doit disposer les trois
informations; l’URI de l’objet cible représentant la destination sut laquelle la méthode
sera invoquée, le nom de la méthode et l’ensemble de paramètres de cette méthode.
L’URI
est
utilise
comme
« namespace »,
présentant
comme
l’URI
« http://schemas.xlmsoap.org/soap/envelope », pour qualifier l’élément représentant la
méthode.
Dans
notre
exemple,
l’objet
distant
est
présente
par
l’URI
«http://weather.com/messageweather/. » La procédure distante est ainsi modélisée sous
forme d’une structure XML tout à fait indépendante du message SOAP.
L’exemple 4.2.3.2. suivant présente le message SOAP retourné en réponse à la requête
ci-dessus. La valeur de retour contenue dans ce message est un simple chiffre (la
température actuelle.) Nous constatons ici que la réponse ne contient pas nécessairement
un En-tête, puisque cet élément est optionnel.
<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://www.w3.org/2001/09/soap-envelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<ns1:getWeatherResponse xmlns:ns1="urn:examples:weatherservice"
SOAP-ENV: encodingStyle="http://www.w3.org/2001/09/soap-encoding">
<return xsi:type="xsd:int">
65
</return>
</ns1:getWeatherResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Exemple 4.2.3.2. Réponse SOAP
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 23 sur 44
Filatova Irina
Les messages SOAP peuvent être expédiés par l'intermédiaire des protocoles HTTP,
SMTP, TCP/IP ou autres. Dans la pratique, les transferts par HTTP sont largement
majoritaires.
4.3. Services Web XML et organisation d’un document WSDL
« WSDL is the XML-based format in which a publisher describes their Web
Services » [Clark, Fletcher, Hanson, Irani, Watehouse, Theli, 2001.]
L’adoption des formats d’emballage SOAP a suscité le besoin de décrire les
renseignements opérationnels de manière plus structurée. WSDL a ainsi été introduit afin
d’adresser ces besoins. WSDL qui est standard base sur la technologie XML qui décrit
d’un Service Web XML sous la forme d’un ensemble de points finaux appelés ports.
En autres mots, le langage WSDL est une syntaxe XML utilisée pour définir l'interface
générale des Services Web XML. Ce fichier contient le chemin d’accès au serveur, mais aussi
les prototypes des méthodes qui servent de points d’entrées et la description des types complexes.
Cette définition intègre les composants fondamentaux suivants :
•
Informations sur toutes les fonctions disponibles publiquement;
•
Définitions abstraites des données à transmettre;
•
Informations sur le type de données pour tous les messages XML;
•
Informations obligatoires sur le protocole de transfert à utiliser spécifiquement;
•
Informations de type Adresse pour localiser le service à spécifier.
4.3.1. Description d’un document WSDL
Les définitions WSDL facilitent l'application des Services Web en les rendant "autodescriptifs" :
•
<definitions> : Cet élément contient la définition du service qui est la racine de
tout document WSDL. <definitions> contient trois types d’éléments :
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 24 sur 44
Filatova Irina
o <message> et <portType> : Ces éléments définissent les opérations
offertes par le service, leurs paramètres d’entrée et de sortie, etc. En
particulier, un <message> correspond à un paramètre d’entrée ou de sortie
d’une <operation>. Un <portType> définit un ensemble d’opérations. Une
<operation> définit un couple message entrée / message sortie. Par
exemple, dans le monde Java, une opération est une méthode et un
portType une interface;
•
<binding> : Cet élément associe les <portType> à un protocole particulier. Les
bindings possibles sont SOAP, CORBA ou DCOM. Actuellement seul SOAP est
utilisé. Il est possible de définir un binding pour chaque protocole supporté;
•
<service> : Cet élément précise les informations complémentaires nécessaires
pour invoquer le service, et en particulier l’URI du destinataire. Un <service> est
modélisé comme une collection de ports, un <port> étant l’association d’un
<binding> à un URI.
Il est aussi possible de définir des types de données complexes dans une balise <types>
juste avant la balise <message>. Enfin, chaque élément WSDL peut être documenté à
l’aide de l'élément <documentation>. Cet élément contient des informations liées à la
compréhension du document par les utilisateurs humains du service.
Autrement dit, WSDL permet aux Services Web de décrire ce qu'ils font, comment ils le
font et comment les clients peuvent les exploiter. Dans notre exemple 4.3.1.1., la
définition abstraite de l'opération « getDayWeather » est décrite de la façon suivante :
<definition>
<message name = ‘’getWeather’’>
<part name =”body” element=”zipcode”>
</message>
<portType name = StockDayWeatherPortType>
<operation =”getDayWeather” >
<input message = “getNineDayWeatherInput”>
<output message = “getNineDayWeatherOutput”>
</opreration>
</portType>
</definition>
Exemple 4.3.1.1. Structure de la définition d’un document WSDL
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 25 sur 44
Filatova Irina
L’opération est donc décomposée en deux messages; la requête et la réponse. La
définition des données échangées dans ces messages est décrite au préalable dans « XML
Schema ». Ce « XML Schema » définit également le «namespace », en l’occurrence
« http://weather.com/messageweather», représente le contexte de l’opération.
Ensuite, l’opération est liée avec le protocole de communication HTTP, et dans l’exemple
4.3.1.2. présente sa structure :
<binding name=”StockDayWeatherSoapBinding” type=”StockDayWeatherPortType”>
<soap:binding transport=”http://schemas.xlmsoap.org/soap/http”>|
</binding>
Exemple 4.3.1.2. Structure de binding d’un document WSDL
Finalement, le nouveau port ainsi crée est attaché à notre Service Web XML en spécifiant
le point de communication (une URL pour HTTP, une adresse e-mail pour SMTP..)
nécessaire pour accéder à cette opération, qui présente dans l’exemple 4.3.1.3. :
<service name=”StockDayWeatherQuoteService” >
<port name =”StockDayWeatherQuotePort” binding=”StockDayWeatherSoapBinding”>
<soap:address location =”http://stockquoteserver.com/StockQuote”>|
</port>
</service>
Exemple 4.3.1.3. Structure de service d’un document WSDL
La location correspond à l’adresse à laquelle on a installé le serveur SOAP.
4.3.2. Exemple de la structure d’un document WSDL
En continue, WSDL décrire des Services Web sous la forme d'un ensemble de points
finaux appelés ports. Un port est décomposé en deux parties distinctes. La première partie
contient la définition abstraite des opérations ainsi que des messages contenus dans ces
opérations. Une opération est ainsi considérée comme une action dont on peut extraire
deux types de messages : une requête et une réponse.
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 26 sur 44
Filatova Irina
Tandis que la seconde partie lie les messages à un protocole de communication concret.
Cette distinction entre partie abstraite et concrète est requise afin de favoriser la
réutilisabilité de cette définition en combinaison avec d'autres protocoles. Un port est
donc décomposé en un ensemble d'opérations. Chaque port est lié à un protocole de
communication comme par exemple SOAP ou SMTP.
Enfin, le port représente une adresse à laquelle on peut joindre l'entité supportant les
opérations définies. L’exemple 4.3.2.1. est la description du service « Echo » précédemment
défini :
1. <definition
2.
xmlns:xsd="http://www.w3.org/1999/XMLSchema"
3.
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
4.
5.
<message name="echoInput">
6.
<part name="expression" type="xsd:string"/>
7.
</message>
8.
9.
<message name="echoOutput">
10.
<part name="expression" type="xsd:string"/>
11.
</message>
12.
13.
<portType name="EchoPortType">
14.
<operation name="echo">
15.
<input message="echoInput"/>
16.
<output message="echoOutput"/>
17.
</operation>
18.
</portType>
19.
20.
<binding name="EchoSoapBinding" type="tns:EchoPortType">
21.
<soap:binding style="document"
22.
transport="http://schemas.xmlsoap.org/soap/http"/>
23.
<operation name="echo">
24.
<soap:operation soapAction="urn:ServiceEcho"/>
25.
<input>
26.
<soap:body use="encoded" 27. encodingStyle=
28.
"http://schemas.xmlsoap.org/soap/encoding/"/>
29.
</input>
30.
<output>
31.
<soap:body use="encoded" 32. encodingStyle=
33.
"http://schemas.xmlsoap.org/soap/encoding/"/>
34.
</output>
35.
</operation>
36.
</binding>
37.
38.
<service name="EchoService">
39.
<port name="EchoSoap" binding="tns:EchoSoapBinding">
<soap:address location="http://www.improve.fr/ServiceEcho"/>
42.
</port>
43.
</service>
44. </definition>
Exemple 4.3.1.2. Description de Service Web XML par WSDL
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 27 sur 44
Filatova Irina
L'opération est donc décomposée en deux messages : la requête et la réponse. La
définition des données échangées dans ces messages est décrite au préalable dans un
« XML Schema". Ce « XML Schema » définit également le «Namespace » représentant
le contexte de l'opération.
4.4. Services Web XML et UDDI
« UDDi describes a registry in which Web Services can be advertized» [Clark,
Fletcher, Hanson, Irani, Watehouse, Theli, 2001.]
Un autre standard à l’invocation des Services Web XML est UDDI qui a été créé par
IBM, Microsoft et Ariba. C’est une architecture répartie qui permet aux fournisseurs de
Services Web XML (Business providers), d’enregistrer leurs services, et aux applications
de rechercher les services correspondant à leurs besoins, de façon normalisée. Il fournit
donc le mécanisme de publication et de recherche ces services. UDDI est donc un
annuaire distribué de Services Web XML et d’entreprises (Business/Service Registry).
UDDI s’appuie sur les standards tels que HTTP, SOAP et WSDL.
UDDI définit un ensemble de spécifications : une spécification de l’interface d’un
registre définissant environ une trentaine des messages SOAP pouvant être utilisée pour
effectuer des requêtes et publier des services, une définition de la structure XML des
données contenues dans ces messages, une description du processus de réplication des
données contenues un registre…
4.4.1. Description du principe UDDI
Un registre (UDDI Business Registry), est décomposé en pages blanches, jaunes et vertes
qui sont présentent dans la Figure 4.4.1.1. :
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 28 sur 44
Filatova Irina
Figure 4.4.1.1 UDDI Business Registry
•
Pages blanches : noms, adresses, contacts, identifiants,… des entreprises
enregistrées. Ces informations sont décrites dans des entités de type Business
Entity. Cette description inclut des informations de catégorisation permettant de
faire des recherches spécifiques dépendant du métier de l’entreprise ;
•
Pages jaunes : détails sur le métier de l’entreprise, les services qu’elle propose.
Ces informations sont décrites dans des entités de type Business Service ;
•
Pages vertes : informations techniques sur les services proposés. Les pages vertes
incluent des références vers les spécifications des Services Web XML, et les
détails nécessaires à l’utilisation de ces services : interfaces implémentées,
information sur les contacts pour un processus particulier, description du
processus en plusieurs langages, catégorisation des processus.
La Figure 4.4.1.2. présente un scénario classique d’utilisation d’UDDI :
Figure 4.4.1.2. Utilisation UDDI
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 29 sur 44
Filatova Irina
•
Les fournisseurs de Services Web XML s’enregistrent auprès de l’UDDI Business
Registry (sur les pages blanches et jaunes) et ajoutent leurs services (en
complétant les pages jaunes et en renseignant les détails techniques sur ces
services dans les pages vertes.) En principe, un seul enregistrement d’un service
sur un référentiel est nécessaire. UDDI étant un service distribué sur Internet,
toutes les actions sont automatiquement répercutées sur les autres référentiels.
•
Un utilisateur recherche une entreprise fournissant un service donné, et obtient
une description de l’entreprise qui le fournit par le biais des pages blanches et
jaunes, et des détails de l’invocation du service offert par des pages vertes ;
•
L’utilisateur peut alors invoquer le Service Web XML distant en utilisant SOAP.
4.5. Différents standards Services Web XML
De nouveaux langages dédiés aux Services Web XML sont régulièrement proposés par
les organismes de recherche industriels et universitaires. Il ne faut pas perdre de vue que
la plupart des langages présentés sont complémentaires et ne répondent pas aux mêmes
besoins. On va donc présenter les objectifs et les fonctionnalités des principaux langages
et les standards consacrés aux services sur le Web.
XL27 [URL12] est un langage destiné aux Services Web, axée sur XML, utilisant un
langage propre de haut niveau, et prenant en compte les technologies du W3C (WSDL,
SOAP) afin de permettre une interopérabilité des applications XL avec d’autres
applications écrites dans un langage autre que XL. La principale motivation de XL est de
créer une plate-forme qui permette aux programmeurs d’implémenter rapidement des
Services Web XML en permettant une réutilisabilité maximale. Le langage de requête est
un langage déclaratif et peut donc être optimisé de manière automatique. De plus, comme
ce langage est de haut niveau, il permet une composition facilitée des services. XL
intègre également une politique de sécurité basée sur J2EE, et met l’accent sur le
traitement des instructions en mode pipeline, afin d’être plus réactive face à des sources
XML importantes ou continues. Cependant, même si XL permet de manipuler
27
XML Langage
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 30 sur 44
Filatova Irina
relativement facilement des Services Web XML, il ne permet pas de les décrire autrement
que par des entrées/sorties XML.
XDD28 [URL13] est un langage capable de décrire toute la sémantique d’une ressource
Web en ajoutant un langage déclaratif à la syntaxe XML. Une description utilisant XDD
est un ensemble d’éléments XML classiques, d’éléments XML étendus à l’aide de
variables, et de relations entre les éléments XML sous forme de clauses. XDD peut
également représenter tous les langages balisés basés sur XML, ebXML29. Il peut de plus
représenter de manière simple toutes les applications XML ayant des conventions
standardisées pour un certain nombre de domaines spécifiques, tels que :
•
Wireless Markup Language ( WML);
•
Mathematical Markup Language (MathML);
•
Resource Description Framework (RDF).
XDD permet dès lors la convergence entre la sémantique et la syntaxe de ces langages,
accentuant l’interopérabilité et le développement indépendant des produits.
WSFL30 est un langage XML de description de flow, pour permettre la
composition
récursive de Web Services XML. WSFL est une proposition de standard offrant deux
styles de composition de Services Web XML :
•
description explicite de la succession des étapes et de l’enchaînement des appels
aux opérations des Services Web XML;
•
modèle d’interactions de Services Web XML. C’est le premier cas qui se
rapproche le plus de la procédure au sens des langages de programmation.
WSFL utilise l’expression modèle de flux (flow model) pour désigner ce style de
spécification qui s’apparente à la programmation dans un langage de script. Le second
cas, appelé modèle global (global model) dans WSFL, décrit une collection de liens entre
opérations de services Web (en WSDL), prises deux à deux, sans indiquer de structure
de contrôle explicite. La métaphore employée ici est celle du contrat liant deux parties
dans l’univers commercial. WSFL permet de créer des modèles récursifs : une
28
29
30
XML Declarative Description
Electronic Business XML
Web Services Flow Language
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 31 sur 44
Filatova Irina
composition de services Web est elle-même considérée comme un service Web, utilisable
à son tour dans d’autres compositions. Enfin, WSFL propose des modèles d’interactions
dit hiérarchique et de pair à pair, reflétant des modes d’organisation différente.
5. Chapitre 5
Spécifications de Services Web XML
Bon nombre d'entreprises vont s'aventurer dans le remaniement de leur infrastructure
pour qu'elle prenne en charge les Services Web XML. IBM, Microsoft, Sun et d'autres
membres du W3C ont défini les spécifications techniques majeures (dont le protocole
SOAP et le langage XML) indispensables pour que cet environnement s'épanouisse.
Néanmoins, il reste du chemin à parcourir pour que les Services Web XML deviennent
une plate-forme Internet viable pour les communications entre applications. De
nombreux directeurs informatiques s'inquiètent de la fiabilité et de la sécurité. Mais
maintenant que les standards progressent rapidement, les responsables informatiques
peuvent au moins commencer à développer des systèmes internes au sein desquels ces
problèmes peuvent être plus facilement gérés en attendant que les standards publics
soient finalisés. Le moment venu, il sera plus simple d'élaborer des systèmes capables
d'interagir
avec
l'extérieur,
au-delà
du
pare-feu
(Firewall)
de
l'entreprise.
IBM et Microsoft ébauchent et présentent la plupart des nouvelles propositions du W3C
en matière de Services Web XML. Jusqu'à présent, six nouveaux projets ont été soumis
et sont en cours de révision :
•
Web Services Inspection (WS-Inspection) [URL15];
•
Web Services Referral (WS-Referral) [URL16];
•
Web Services Routing (WS-Routing) [URL17];
•
Web Services Transaction (WS-Transaction) [URL18];
•
Web Services Security (WS-Security) [URL19];
•
Web Services Licensing (WS-Licensing) [URL20].
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 32 sur 44
Filatova Irina
Étudions les spécifications existant dans la structure des Services Web XML dans le
tableau 5.1., et la manière dont ces nouvelles spécifications visent à les pallier.
Spécification
WS-Inspection
WS-Refferal
WS-Routing
WS-Transaction
WS-Security
WS-Licensing
Description de spécifications
WS-Inspection se charge d'agréer les pointeurs vers
les WS qu'une entreprise souhaite exposer, puis
d'interroger le document Web résultant de cette
agrégation.
WS-Referral définit de quelle manière les routeurs
SOAP établiront un trajet de messages entre
plusieurs points de services.
WS-Routing est un protocole fondé sur SOAP,
définissant l’échange de messages unidirectionnels
entre un émetteur et un récepteur au travers d’un
certain nombre d’intermédiaires.
XML WS-Transaction est le langage vise à garantir
l'intégrité de transactions exécutées via les Services
Web.
Conçu pour intégrer diverses spécifications tierces
(SAML, XKMS, XrPM, etc.), WS-Security -qui est
en cours d'élaboration - offre des fonctions
d'autorisation d'accès et de chiffrement des échanges.
WS-Licensing décrit quant à elle le processus de
codage des justificatifs d'identification à utiliser avec
WS-Security
Tableau 5.1. Spécifications de Services Web XML
5.1. Recherche des services
La spécification WS-Inspection repose sur un modèle totalement distribué afin d'offrir
des informations afférentes aux services. Les descriptions des services sont stockées au
point de délivrance, et les demandes d'informations sont acheminées vers les sites qui
offrent les services. WS-Inspection est un format XML qui permet à une application
appelante d'interroger un site connu pour obtenir les services disponibles proposés.
Elle définit une série de règles spécifiant de quelle manière les sites doivent exposer leurs
informations aux systèmes appelants qui émettent une requête. En outre, les documents
WS-Inspection proposent des méthodes pour regrouper les références aux documents
préexistants de description de services, quel que soit le format d'origine dans lequel ils
ont été rédigés. Les informations sur le service renvoyées par une requête utilisent des
standards existants, tels que le langage WSDL. Ainsi, le système appelant peut exploiter
les informations renvoyées sur les Services Web XML sans avoir besoin de les modifier.
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 33 sur 44
Filatova Irina
5.2. Création du système fiable
Les implémentations initiales du protocole SOAP sont des appels unidirectionnels
simples entre deux systèmes. Les spécifications WS-Referral et WS-Routing apportent la
technologie fondamentale qui aidera les architectes de systèmes à créer des systèmes plus
robustes. Ces deux spécifications fonctionnent conjointement pour définir le concept d'un
routeur SOAP. Les développeurs et architectes de systèmes peuvent utiliser ce routeur
pour développer des Services Web XML tels que l'équilibrage de charge, la mise en
miroir, la mise en mémoire cache et l'authentification des clients. Par exemple, un
Service Web XML peut céder des portions de son traitement à des services tiers et les
résultats peuvent être renvoyés aux utilisateurs d'origine de ce service sans que ces
derniers soient jamais au courant de cette passation. La spécification WS-Referral définit
de quelle manière les routeurs SOAP établiront un trajet de messages entre plusieurs
points de services.
Pour sa part, WS-Routing explique comment décrire le trajet d'un message. Elle permet
également de définir un trajet inverse: il est alors possible de mettre en place des modèles
d'échange bidirectionnel tels que transmission sur requête, conversations peer-to-peer et
envoi d'accusés de réception de messages et d'avis d'erreurs. Ces capacités accroissent la
fiabilité
générale
d'un
système
bâti
sur
la
plate-forme
SOAP.
C'est notamment le cas WS-Transaction est conçu par Microsoft, ce protocole qui semble
assez proche pour but de gérer les transactions longues et complexes initiées entre deux
composants Web Services XML. "En cas de plantage d'un des deux serveurs ou
applicatifs impliqués, WS-Transaction est conçu pour stabiliser le système de gestion des
échanges", résume un porte-parole de Microsoft France [URL5 ].
5.3. Mis en place des systèmes sécurisés
Les systèmes existants reposant sur le protocole SOAP transmettent leurs informations
sous forme de chaînes de texte XML. Bien que cette méthode permette à deux systèmes
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 34 sur 44
Filatova Irina
de communiquer quelle que soit leur architecture, elle soulève de graves inquiétudes en
matière de sécurité.
Les standards existants permettent de crypter les données lorsqu'elles transitent dans le
canal (au moyen de SSL31 sur HTTP) ou bien de crypter le canal lui-même (à l'aide du
standard IPSec.32) En effet, à moins que les deux extrémités de la communication ne se
mettent d'accord sur les formats de sécurisation du message en soi, il est impossible
d'appliquer des méthodes de sécurité davantage granulaires.
Les spécifications WS-Security et WS-License permettent conjointement d'améliorer la
sécurité granulaire des systèmes basés sur le protocole SOAP. WS-Security définit
l'aptitude à échanger les justificatifs d'identification, vérifier l'intégrité d'un message et
mettre en vigueur la confidentialité d'un message. Elle peut être utilisée individuellement
ou en combinaison. Avec WS-Security, les messages sont associés à des licences (par
exemple, les certificats X.509 ou les tickets Kerberos).
La spécification WS-License décrit quant à elle le processus de codage des justificatifs
d'identification à utiliser avec WS-Security. Cette dernière inclut des instructions pour
garantir l'intégrité des messages (à l'aide de WS-License) ainsi que la confidentialité. La
spécification exploite le cryptage pour coder tout ou partie d'un message tout en
fournissant aux systèmes récepteurs le moyen de décoder les informations.
6. Chapitre 6
Outils pour développer des Services Web XML
Réalité technologique, les architectures distribuées à base de Services Web XML font
leur entrée dans les outils de développement. Un Service Web XML est un composant
logiciel qu’il convient de développer pour l’intégrer dans une chaîne de traitements.
L’ergonomie de l’outil constitue un critère de choix majeur. La génération de code
(WSDL, XML, Java …) est désormais classique.
31
32
Security Socket Layer
Internet Protocol Security
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 35 sur 44
Filatova Irina
Ainsi SOAP est le véhicule pour échanger entre composants et permet d’exploiter de
nombreux protocoles de transport : HTTP, SMTP, FTP…Un document WSDL décrit
chaque Service Web en XML. UDDI permet de construire l’annuaire des Services Web
disponibles. Potentiellement réparti sur plusieurs sites, cet annuaire offre une vue logique
consolidée de services afin de bâtir des applications distribuées.
Une fois développée, un composant destiné à devenir un Service Web XML doit être
testé et intégré au sein d’une architecture plus complète. L’outil de développement de
Services Web XML doit fournir des possibilités de génération automatique
d’environnements de tests et faciliter cette intégration, le tableau présente certaines
solutions :
Classification
SUN
SunONE Studio 4.1 EE
MICROSOFT
Visual Studio
Enterprise developer
IBM
WebSphere Studio AD
Borland
Web Services
Solutions
Commentaires
Gestion de JAX RPC (version Java SOAP), y compris
les attachements. Gestion de WSDL et UDDI. Riches
fonctions de manipulation de flux XML.
Bonne gestion de XML, SOAP, WSDL et UDDI
(fourniture d’un annuaire privé.) Seuls des composants
.NET peuvent être développés dans l’un des langages
proposés(VB,C#…)
Gestion de XML, de SOAP et de WSDL. Fourniture
d’un annuaire privé UDDI depuis la version 5 du serveur
d’applications associé.
Gestion complète de XML, SOAP, WSDL et UDDI.
Offre de développement multiplate-forme, compatible
J2EE et .NET. Solution disponible pour C+, Delphi et
Java
Tableau 6.1. Présentation les outils de Services Web XML
7. Chapitre 7
Solution de l’intégration de Services Web XML
En 2001, Lafarge, le leader français des matériaux de construction, lance trois portails
Web à l'attention de quelques-unes unes de ses cibles de prédilection (Annexe 1, Annexe
2 présente de même portail d’E-Learning des entreprises Algora, BestFormation,
Onlineformapro ) :
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 36 sur 44
Filatova Irina
•
premier est destiné aux entrepreneurs en construction;
•
deuxième aux négociants en matériaux;
•
troisième aux prescripteurs et architectes en bâtiments.
Chacun intégrant classiquement des services et informations métier spécifiques.
Dès l'origine, le groupe fait appel à l'offre de contenu éditorial de l'agence Web CVOO
des "packs" touchant aux ressources humaines, à l'informatique, au marketing et à la
gestion principalement. Des articles et autres dossiers qu'il choisit de recevoir
initialement sous forme de pages HTML personnalisées. Lors d'une demande utilisateur,
la plate-forme de Lafarge (Broadvision) commence par envoyer une requête XML vers le
centre de données de CVOO. Interprétée par le biais d'une interface standardisée
(WSDL), celle-ci invoque alors les composants EJB du serveur d'applications sous-jacent
(BEA WebLogic Server.)
En retour, les contenus correspondants sont transmis à Lafarge sous forme de flux XML
avant d'être analysés sur place puis traduite en HTML aux couleurs du site - via une
feuille de style (XSL.) Ainsi convertis, ces éléments sont intégrés pour finir aux pages
Web de manière dynamique (JSP33.)
8. Chapitre 8
Conclusion
En conclusion, les concepts et les modèles élaborés dans cette synthèse des articles
guident donc tout naturellement aujourd’hui les travaux du W3C autour d ’XML et se
reflètent pratiquement à l’identique dans le développement d’applications à base de
Services Web.
Pendant dix ans, on a cherché à intégrer entre elles les applications internes au système
d’information de l’entreprise ; pendant les dix prochaines années, on cherchera de la
33
Java Server Pages
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 37 sur 44
Filatova Irina
même façon à intégrer les entreprises via le réseau d’information du Web. Une différence
importante est toutefois notable. Alors que dans le modèle d’applications réparties
fondées sur DCOM, EJB ou CORBA, il fallait que leurs champions imposent à la fois
l’infrastructure et les modèles composants/assemblages nécessaires à ces applications,
dans l ’évolution qui s’annonce vers les services Web, l’infrastructure est déjà en place –
continuant d’ailleurs à croître et s’enrichir – et, devant la globalité des enjeux, tous les
acteurs industriels partagent une base commune (XML confiée au «sanctuaire » W3C)
que chacun individuellement et tous collectivement ont intérêt à adopter.
Ainsi, contrastant vivement avec les querelles d’incompatibilité qui, tout au long de la
longue élaboration des applications réparties à base de composants logiciels, ont risqué
de miner les
développements techniques, l’interopérabilité est une caractéristique
importante des applications et des Services Web, s’imposant par l’ubiquité et
l’universalité du Web à une industrie qui trouve enfin son intérêt dans la coopération sur
des protocoles communs, la Figure 8.1 présente le Service Web XML[URL21] :
Figure 8.1. Présentation de Service Web XML
Si l ’on suit cette analyse il faut admettre la nécessité d’un bouleversement technique
profond de l’architecture du système d ’information pour mettre l ’Internet et le Web bien
plus au cœur de l’informatique d ’entreprise. Cette transformation, précisément articulée
autour des services Web, n’est et ne sera évidemment pas instantanée. Rendue possible
par la généralisation de l ’adoption généralisée d’XML comme le langage de niveau haut
des Services Web, cette reconstruction est maintenant la grande affaire de l’informatique
d ’entreprise et interentreprises.
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 38 sur 44
Filatova Irina
L’élément clef qui a permis le développement des Services Web est l’apparition de
nouveaux standards technologiques basés sur XML (eXtensible Markup Language) tel
que SOAP (Simple Object Access Protocol), WSDL (Web Services Description
Language) et UDDI (Universal Description, Discovery and Integration.) On n’entre pas
dans le détail de ces standards, en espérant avoir fait comprendre clairement que
l’infrastructure de base des Services Web est assurée par XML, par le langage de
définition de Schémas et par SOAP. UDDI et WSDL, ainsi que plusieurs autres normes,
sont en cours de développement pour permettre l’utilisation des Services Web entre
différentes entreprises plutôt qu’uniquement au sein d’une même entreprise.
Pour qu’une application propre à l’entreprise bénéficie des avantages de l’inter
fonctionnement promis par les Services Web, le recours à XML, aux Schémas et à SOAP
comme principales normes est suffisant. En effet, au sein d’une même entreprise, les
noms de réseaux, les définitions de données et d’adresse sont normalement connues de
tous les développeurs, concepteurs et opérateurs.
Mais lorsque plusieurs entreprises doivent faire dialoguer leurs systèmes, un mécanisme
doit être mis en place pour référencer tous les noms, adresses et définitions liés aux
services mis en oeuvre. C’est là qu’interviennent UDDI et WSDL.
Ces normes permettent en effet de définir et de référencer un Service Web avec son
Schéma et son adresse de réseau associé. Elles sont encore en cours de définition et
pourraient intégrer des spécifications supplémentaires, notamment : XL (XML Langage),
XDD (XML Declarative Description), WSFL (Web Services Flow Language), WSInspection (Web Services Inspection), WS-Referral (Web Services Referral), WS-Routing
(Web Services Routing), WS-Transaction (Web Services Transaction), WS-Security
(Web Services Security), WS-Licensing (Web Services Licensing).
Les Services Web et les standards XML sur lesquels ils sont bâtis sont aujourd’hui le
premier produit de ce vaste mouvement collectif. Ainsi tout le secteur de l’informatique
d’entreprise se trouve-t-il aujourd’hui à la veille d’engendrer un bouleversement profond
de ses modes opératoires et de ses équilibres économiques.
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 39 sur 44
Filatova Irina
Selon tous les manageurs, l’utilisation des Services Web devrait aller en s’accroissant. Ils
ne sont cependant pas d’accord sur les chiffres : certains parlent de 40 % des projets de
2003-2004, alors que d’autres annoncent des chiffres plus fous atteignant les 90%.
Les acteurs jugés importants du segment des plates-formes de déploiement de Web
Services XML présentent dans le tableau suivant [URL] :
Microsoft
72%
IBM
49%
Oracle
46%
Sun
40%
Open Source
40%
BEA
Sybase
Borland
25%
7%
4%
Enfin,
« XML-based Web Services are an ideal technology for integrating diverse
application and systems as they allow application to communicate across the
Internet in a platform – and language independent fashion.» [Clark, Fletcher,
Hanson, Irani, Watehouse, Theli, 2001.]
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 40 sur 44
Filatova Irina
Bibliographie
[Girad, Crusson, 2001] Dider Girad, Tanguy Crusson, “XML pour l’entreprisre”,
pp.70, 2001, ce document disponible à l’adresse suivante :
http://www.applications-servers.com/livresblancs/xml
[Clark, Fletcher, Hanson, Irani, Wattheure, Thelin, 2001] Mike Clark, J.Jeffrey Hanson,
Romin Irani, Mark Waterhouse, Jorgen Thelin, “Web Services
Buisness Strategies and Architectures”, 2001, ce document
disponible à l’adresse suivante :
http://www.webservicesarchitect.com/book.asp
[Chauvet, 2002]
Jean-Marie Chauvet, “Services Web avec SOAP, WSDL, UDDI,
ebXML…”, 2002, ce document disponible à l’adresse suivante :
http://www.webservicesarchitect.com/book.asp
[Randel, Skonnard, 1999] Randel B., Skonnard A, “A Guide to XML and Its
Technologies”, 1999, ce document disponible à l’adresse
suivante : http://www.msdn.microsoft.com/library/default.asp
[URL1] W3C, World Wide Web Consortium, http://www.w3c.org
[URL2] XML, http://www.w3.org/tr/xml
[URL3] WSDL, http://www.w3.org/tr/wsdl
[URL4] SOAP, http://www.w3.org/tr/soap
[URL5] Microsoft, http://www.microsoft.com
[URL6] Google, http://www.google.com
[URL7] Altavista, http://www.altavista.com
[URL8] E-Bay, http://www.ebay.com
[URL9] Ticket-Corner, http://www.ticket-corner.com
[URL10] The Web Services Technology Stack,
http://www.perfectxml.com/Xanalysis/TSG/WebServices.asp
[URL11] UDDI, http://uddi.org
[URL12, 13, 14] XL, XDD, WSFL http://www.service-architecture.com/webservices/articles/index.html
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 41 sur 44
Filatova Irina
[URL15] WS-Inspection, http://msdn.microsoft.com/ws/2002/01/Inspection
[URL16] WS-Referral, http://msdn.microsoft.com/ws/2002/01/Referral
[URL17] WS-Routing, http://msdn.microsoft.com/ws/2002/01/Routing
[URL18] WS-Transaction, http://msdn.microsoft.com/ws/2002/01/Transaction
[URL19] WS-Transaction, http://msdn.microsoft.com/ws/2002/01/Security
[URL20] WS-Transaction, http://msdn.microsoft.com/ws/2002/01/Licensing
[URL21] Source Peerstone Research and InformationWeek, ce document disponible à
l’adresse suivante :
http://solutions.journaldunet.com/dossiers/indicateurs/infrastructure/webservices_monde.
shtml
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 42 sur 44
Filatova Irina
Annexe 1 : Lafarge
Trois portails Web des matériaux de construction :
•
premier est destiné aux entrepreneurs en construction (Batissor.com);
•
deuxième aux négociants en matériaux (Matixel.com);
•
troisième aux prescripteurs et architectes en bâtiments (Creargos.com).
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 43 sur 44
Filatova Irina
Annexe 2: Algora: Trois portals Web d’E-Learning:
• premier est Algora, http://ressources.algora.org/index.asp
•
http://www.bestformation.com/fr/e-learning/e-learning_f.htm
•
http://www.onlineformapro.com/index.htm
_____________________________________________________________________________________
Version du jeudi 19 février 2004
Page 44 sur 44

Documents pareils