Standardisation des services Web au W3C
Hugo Haas <hugo@w3.org >
W3C Web Services Activity Lead
Présentation à la Journée
de veille technologique à l'IRISA ,
Rennes, France, le 27 septembre 2002
Présentation
disponible à :
http://www.w3.org/2002/Talks/0927-hh-irisa/
Sommaire
Historique
Buts
Défis
Standardisation au W3C
Petit historique
World Wide Web créé pour que des chercheurs échangent des
informations
Très tôt, les utilisateurs ont utilisé des formulaires HTML pour
interagir avec des programmes (par exemple : CGIs)
Plus récemment : interactions entre machines
Service Web :
Application
Utilisée par une autre application
Accédée via le Web (URI / XML)
Application cliente
Service Web
Interaction sur le Web
Un service d'agence de voyages :
vend des formules de vacances
utilise d'autres service Web : compagnie de carte de crédit,
hôtel, compagnie aérienne
Client
Service Agence de Voyage
utilise
Service de Carte de Crédit 1
Service de Compagnie Aérienne 1
Service de Compagnie Aérienne 2
Service de Compagnie Aérienne 3
Service de l'Hôtel 1
Service de l'Hôtel 3
Service de l'Hôtel 3
Exemple (suite) : avantages
Bas coût pour de nouvelles compagnies aérienne, hôtels, compagnies de
carte de crédit de mettre en vente leurs produits et services
Le service d'agence de voyage a accès à plus de services
Les clients ont accès à de meilleures offres
Les défis rencontrés
Un ensemble complet de nouvelles technologies :
protocole de communication
description des services et de leurs interactions complexes
sécurité et protection de la vie privée des gens
...
Intégration dans le World Wide Web
Le Web est un ensemble de ressources qui sont :
identifiées (Uniform Resource Identifiers)
représentations téléchargées suivant certaines règles (par ex. HTTP
GET)
représentations structurées (par ex. XML)
Conception des technologies pour les services Web doit être faite en
suivant ces principes architecturaux.
Un besoin de sémantique
Caractéristiques des services Web :
Interactions entre machines
Accords dynamiques
Pas de connaissance a priori des services avec lesquelles le programme
interagit
Nécessité de comprendre des vocabulaires XML développés de manière
indépendante
Standardisation
Activité Services Web au W3C
Créée en janvier 2002
Etend l'Activité XML Protocol créée en septembre 2000
Plus de 65 organisations participent
Tout le travail effectué par les groupes de travail est disponible
publiquement
Technologies développées dans un mode libre (Royalty-Free)
Organisation :
3 groupes de travail :
1 groupe de
coordination
W3C
Architecture Domain
Domain
T&S Domain
Domain
Web Services Activity
Activity
Semantic Web Activity
Activity
Web Services Coordination Group
CG
Web Services Architecture Working Group
WG
XML Protocol Working Group
WG
Web Services Description Working Group
WG
Architecture des Services Web
But : définir l'architecture des services Web
Qu'essaie-t-on de faire avec les services Web ?
De quelles technologies a-t-on besoin ?
Quelles sont les limites d'application de chaque
technologie ?
Quelles sont les relations entre chacune des technologies
identifiées ?
Ce travail sera utilisé pour délimiter et décider de la création de
futurs groupes de travail
Les services Web, ce n'est pas forcément SOAP + WSDL
+ UDDI
Travail débuté en janvier 2002
Développée par le groupe de travail Architecture des Services Web (Web Services Architecture Working
Group )
72 participants représentant 49 organisations
Objectifs (requirements) de l'architecture des services Web
Interoperabilité.
Fiable :
Bien définie
Ensemble de métriques, par exemple pour mesurer la qualité de
service
Intégration propre dans le Web
Sécurité et protection de la vie privée
Scalabilité and extensibilité :
Modulaire
Extensible et ouverte
Avancement du groupe de travail Architecture des Services Web
Liste des documents
produits par le groupe de travail :
Objectifs (requirements) de l'architecture des services Web :
document de travail W3C (consensus de groupe de travail)
Scénarii (usage scenarios) : document de travail W3C
Architecture : copie des éditeurs
Glossaire : copie des éditeurs
Communiquer entre machines
Besoin d'un protocole d'échange de messages permettant des interactions
complexes entre machines
Information contenue peut être complexe
Extensibilité très importante ; support pour :
Extensions de sécurité
Extensions de fiabilité
Extensions de cache
Etc.
Un protocole XML : SOAP version 1.2
Travail débuté en septembre 2000
Résultat de l'intérêt croissant de l'utilisation de XML pour la
communication entre applications
Groupe de travail XML Protocol (XML Protocol Working
Group ) : 47 participants représentant 29 organisations
Evaluation des solutions techniques proposées par SOAP 1.1
SOAP version 1.2 en quelques mots
SOAP : plus un acronyme
Message SOAP : document XML
Enveloppe
Composée d'un en-tête et d'un corps :
Modèle de traitement
Envoi d'un expéditeur à un destinataire, via des intermédiaires
(optionnel)
En-têtes :
Peuvent être adressées à certains intermédiaires
Leur traitement peut être marqués comme obligatoire
Peut être transporté d'un nœud à un autre par n'importe quel
protocole de transfert/transport (par ex. HTTP)
Pas uniquement des RPC
Exemple d'un message SOAP version 1.2
<?xml version='1.0' ?>
<env:Envelope xmlns:env="http://www.w3.org/2002/06/soap-envelope">
<env:Header>
<m:reservation xmlns:m="http://travelcompany.example.org/reservation"
env:role="http://www.w3.org/2002/06/soap-envelope/role/next"
env:mustUnderstand="true">
<m:reference>uuid:093a2da1-q345-739r-ba5d-pqff98fe8j7d</reference>
<m:dateAndTime>2001-11-29T13:20:00.000-05:00</m:dateAndTime>
</m:reservation>
<n:passenger xmlns:n="http://mycompany.example.com/employees"
env:role="http://www.w3.org/2002/06/soap-envelope/role/next"
env:mustUnderstand="true">
<n:name>John Q. Public</n:name>
</n:passenger>
<z:travelPolicy
xmlns:z="http://mycompany.example.com/policies"
env:mustUnderstand="true">
<z:class>economy</z:class>
<z:fareBasis>non-refundable<z:fareBasis>
<z:exceptions>none</z:exceptions>
</z:travelPolicy>
</env:Header>
<env:Body>
<p:itinerary
xmlns:p="http://travelcompany.example.org/reservation/travel">
<p:departure>
<p:departing>New York</p:departing>
<p:arriving>Los Angeles</p:arriving>
<p:departureDate>2001-12-14</p:departureDate>
<p:departureTime>late afternoon</p:departureTime>
<p:seatPreference>aisle</p:seatPreference>
</p:departure>
<p:return>
<p:departing>Los Angeles</p:departing>
<p:arriving>New York</p:arriving>
<p:departureDate>2001-12-20</p:departureDate>
<p:departureTime>mid morning</p:departureTime>
<p:seatPreference/>
</p:return>
</p:itinerary>
<q:lodging
xmlns:q="http://travelcompany.example.org/reservation/hotels">
<q:preference>none</q:preference>
</q:lodging>
</env:Body>
</env:Envelope>
Avancement du travail sur SOAP version 1.2
Travail basé sur SOAP 1.1 ; plus de 300 problèmes trouvés et
résolus (clarifications, formalisation, supports de standard (XML
Information Set, XML Base, ...), etc.
Documents
produits :
SOAP version 1.2, Part 1: Messaging Framework : document de
travail W3C, derniers commentaires demandés
Modèle de traitement (processing model)
Enveloppe
Canevas pour lier des messages SOAP à un protocole sous-jacent
(Protocol Binding Framework)
SOAP version 1.2, Part 2: Adjuncts : document de travail W3C,
derniers commentaires demandés
Modèle de données (Data Model)
Encodage de données (Encoding)
Convention pour faire des RPC (RPC Convention)
Convention pour la description de liaisons à des protocoles et de
propriétés (Binding and Feature Description Convention)
Séquence d'échange de messages (Message Exchange Pattern (MEP))
Liaison au protocole HTTP (HTTP Binding)
SOAP 1.2 Attachment Feature : document de travail W3C,
derniers commentaires demandés (date limite : 15 octobre)
Modèle abstrait pour le transport d'attachements avec
une enveloppe SOAP
Avancement du travail sur SOAP version 1.2 (suite)
Documents
produits :
Objectifs pour XML Protocol (XML Protocol (XMLP) Requirements
Document) : document de travail W3C
Scénarii (XML Protocol Usage Scenarios) : document de travail
W3C
Modèle abstrait pour XML Protocol (XML Protocol Abstract Model) :
document de travail W3C
Préliminaire (SOAP version 1.2, Part 0: Primer) : document de
travail W3C, derniers commentaires demandés
Collection de tests (SOAP Version 1.2 Specification Assertions and Test
Collection) : document de travail W3C, derniers commentaires
demandés
Transport de messages SOAP dans un courrier électronique (SOAP Version
1.2 Email Binding) : note W3C
Motivations pour un langage de description pour les services Web
Problème : je veux utiliser votre service Web
Où puis-je le trouver ?
Quels sont les messages acceptés / générés ? Quelle est leur
syntaxe ?
Comment doivent-ils être communiqués ?
Besoin d'un format standard pour décrire les services Web.
Evaluation des solutions techniques proposées par WSDL 1.1
Avancement du travail sur WSDL 1.2
Objectifs du langage de description :
Basé sur XML Information Set
Utilisation de W3C XML Schema mais possibilité d'utiliser d'autres
langage de schema
Interactions simples entre services Web : unidirectionnel,
requête-réponse, solicitation-réponse, et erreurs
Description des échanges de messages avec SOAP 1.2 et HTTP/1.1
Extensibilité et indication de version
Publication de scénarii
Document de travail W3C du langage de description :
Langage de Description des Services Web (Web Services Description
Language (WSDL)) Version 1.2
Langage de Description des Services Web (Web Services Description
Language (WSDL) Version 1.2) : liaisons aux protocoles
(Bindings)
Prochaines étapes :
Groupe de travail Architecture :
continuation de la définition de l'architecture
proposition de nouvelles aires de travail : recommendation de
la création d'un groupe adressant la choréographie des services
Web
SOAP version 1.2 en route vers la Recommandation
Groupe de travail Description : résolution des problèmes trouvés
dans WSDL 1.1, travail sur la description des messages SOAP Version 1.2,
mise en correspondance de WSDL 1.2 et de RDF
Références
Cette
présentation : http://www.w3.org/2002/Talks/0927-hh-irisa/
Activité Services Web :
http://www.w3.org/2002/ws/