LE TRIPTYQUE SOAP/WSDL/UDDI



Documents pareils
Intégration d'applications à "gros grain" Unité d'intégration : le "service" (interface + contrat)

Programmation Web Avancée Introduction aux services Web

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Introduction aux «Services Web»

BPEL Orchestration de Web Services

Sommaire. Introduction La technologie ebxml EDI conventionnels versus ebxml Web Services et ebxml Acteurs de l ebxml Conclusion

Le cadre des Web Services Partie 1 : Introduction

Les Architectures Orientées Services (SOA)

Architectures n-tiers et déploiement d applications Web

Les services web. Plan. Définitions et généralités Architecture et technologies au cœur des services web

Volet Synchrone pour Client Lourd

Classification : public 1/59


e-business, EAI et Business Intelligence Le triptyque gagnant profondément les structures des organisations et par conséquence

Méthodes et Langages du Commerce Electronique

Urbanisme du Système d Information et EAI

Sécurité des Web Services (SOAP vs REST)

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Systèmes d'informations historique et mutations

UNIVERSITÉ DU QUÉBEC EN OUTAOUAIS

République Algérienne Démocratique et Populaire Université Abou Bakr Belkaid Tlemcen Faculté des Sciences Département d Informatique

Business Process Modeling (BPM)

Présentation de Active Directory

Manuel d intégration API SOAP SMS ALLMYSMS.COM

Business Process Execution Language

Web Services : Beyond the peer-to-peer architecture

Urbanisation des SI. Des composants technologiques disponibles. Urbanisation des Systèmes d'information Henry Boccon Gibod 1

Les services Web. Jeremy Fierstone fierston@essi.fr. SAR5 Novembre 2002

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Problématiques de recherche. Figure Research Agenda for service-oriented computing

Annuaires LDAP et méta-annuaires

Chapitre 2 Rôles et fonctionnalités

Microsoft Technopoche

4. SERVICES WEB REST 46

Petite définition : Présentation :

Mineure Architectures Orientées Services SOA Business Process Modeling (BPM) Mineure SOA. Business Process Modeling (BPM)

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. A308, Université de Paris 13

1 LE L S S ERV R EURS Si 5

Ce document décrit une solution de single sign-on (SSO) sécurisée permettant d accéder à Microsoft Exchange avec des tablettes ou smartphones.

1 Introduction à l infrastructure Active Directory et réseau

La démarche SOA et l interopérabilité applicative

Introduction aux services Active Directory

Présentation du relais HTTP Open Source Vulture. Arnaud Desmons Jérémie Jourdin

Configuration d'un annuaire LDAP

LES ACCES ODBC AVEC LE SYSTEME SAS

Les Services Web. Jean-Pierre BORG EFORT

Solutions informatiques (SI) Semestre 1

L intégration d applications unifiée par les Services Web et XML Réconcilier J2EE.NET EIS et mainframes

Programmation Web. Introduction

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant

Les nouvelles architectures des SI : Etat de l Art

Simplifier l intégration des systèmes RH et garantir une version unique des données de l employé. D

Gestion des utilisateurs et Entreprise Etendue

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

L'intégration de Moodle à l'université Rennes 2 Haute Bretagne

Bienvenue sur Lab-Windows Il n'y a de vents favorables que pour ceux qui ont un cap

Architecture SOA Un Système d'information agile au service des entreprises et administrations

Sécurité. Objectifs Gestion de PKI Signature Cryptage Web Service Security

L'AAA, késako? Bruno Bonfils, fr.org>, Novembre Sous ce terme d'apparence barbare est regroupé l'ensemble des concepts suivants :

WebSSO, synchronisation et contrôle des accès via LDAP

Les risques HERVE SCHAUER HSC

Tour d horizon des différents SSO disponibles

CS REMOTE CARE - WEBDAV

Exchange Server 2013 Préparation à la certification MCSE Messaging - Examen

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

Chapitre 1 : Introduction aux bases de données

Windows Server Chapitre 3 : Le service d annuaire Active Directory: Concepts de base

L architecture des services Web

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

Urbanisation des SI Conduite du changement IT 20/03/09. Patrick CHAMBET

Architectures Web Services RESTful

A. À propos des annuaires

L3 informatique TP n o 2 : Les applications réseau

Cisco CCVP. Gestion des comptes d utilisateurs

Gestion des Identités : 5 règles d'or. Patrice Kiotsekian Directeur Evidian France

Workflow et Service Oriented Architecture (SOA)

Formation en Logiciels Libres. Fiche d inscription

Systèmes répartis. Fabrice Rossi Université Paris-IX Dauphine. Systèmes répartis p.1/49

Responsable du cours : Héla Hachicha. Année Universitaire :

Annexe C Corrections des QCM

Gestion des identités

Module BD et sites WEB

Active Directory Profils des utilisateurs, sécurité et stratégie de groupe (GPO)

Environnements de Développement

Sélection de sérvices Web à base de colonies de fourmis MÉMOIRE DE FIN D'ÉTUDE. Melle CHEMIDI Zoulikha. Jury

Manuel de configuration des fonctions de numérisation

Solutions de gestion de la sécurité Livre blanc

CAHIER DES CLAUSES TECHNIQUES

GLOSSAIRE. On premise (sur site)

UE 8 Systèmes d information de gestion Le programme

Corrigé de l'atelier pratique du module 8 : Implémentation de la réplication

Plateforme PAYZEN. Définition de Web-services

Chapitre 1 Windows Server

GESTION DE PROCESSUS AVEC SOA ET BPM

Transcription:

LE TRIPTYQUE SOAP/WSDL/UDDI Eric van der Vlist (vdv@dyomedea.com) Le triptyque SOAP/WSDL/UDDI Web Services Convention Juin 2004 Eric van der Vlist (vdv@dyomedea.com) SOAP-- WS Convention 2004 -- Page 1

CORBA OU DCOM SUR LE WEB Alors que les Services Web REST ne sont qu'une évolution du Web tel que nous le connaissons pour le rendre plus facilement intelligible par des machines, les Services Web SOAP/WSDL/UDDI (SWU) sont en quelque sorte un détournement du Web pour implémenter des principes architecturaux pré existants. Au début (98) : XML-RPC L' ancêtre des Services Web SWU est XML RPC. Créé en 98, XML RPC est un vocabulaire XML décrivant des appels et des réponses de procédures distantes (RPC = Remote Procedure Call). Le principe des RPC est bien plus ancien que cela et l'on attribue généralement à Sun la première formalisation d'un mécanisme de RPC dans les années 90. La notion de RPC est antérieure au règne de la programmation orientée objet et est, comme son nom l'indique, purement procédurale. XML RPC n'est qu'une adaptation très simple de ce principe à XML et HTTP, XML et HTTP permettant d'assurer une portabilité parfaite entre plateformes logicielles et matérielles. SOAP introduit les objets (SOAP 1.0, novembre 99) Sous l'influence de Microsoft, XML RPC est remanié pour être adapté au monde de la programmation orientée objets et le résultat prend le nom de SOAP. HTTP et RPC deviennent optionnels (SOAP 1.1, mai 2000) Les développements autour de SOAP se poursuivent et SOAP se prépare à rentrer sous l' ombrelle du W3C. En mai 2000, une nouvelle version (SOAP 1.1) est publiée comme note W3C et introduit deux niveaux d'ouverture par rapport à SOAP 1.0 : SOAP 1.1 devient indépendant du protocole sur lequel il s' appuie et ses liens avec HTTP sont relégués au niveau d'un «binding». SOAP 1.1 devient un mécanisme de transfert de messages dont les appels de type RPC ne sont plus qu'une des applications possibles. Eric van der Vlist (vdv@dyomedea.com) SOAP-- WS Convention 2004 -- Page 2

SOAP accepte les attachements (SOAP with attachements, décembre 2000) Sous la pression de ebxml qui en fait un point de blocage pour l'utilisation éventuelle de SOAP dans son architecture technique, HP et Microsoft publient une note W3C définissant l'utilisation de SOAP avec des messages attachés. PAS AUSSI FACILE QU'IL N'Y PARAÎT SOAP ne suffit pas à refaire Corba ou DCOM Certes, SOAP permet l'invocation à distance de méthodes, mais entre SOAP et les technologies d'objets répartis telles que Corba (OMG) ou DCOM (Microsoft), il y a encore beaucoup de chemin à parcourir. Pour ces systèmes, l'invocation de services à distance n'est que la partie émergée de l' iceberg et elle ne se réalise dans de bonnes conditions (au niveau conception, administration, sécurité,...) que parce qu'elle se fait dans un cadre bien défini. Tout le reste est à (ré-)inventer Toutes ces fonctionnalités qui ne sont pas couvertes par SOAP sont donc à réinventer si l'on souhaite utiliser SOAP comme on utilise Corba ou DCOM ce qui est le pari fait par les promoteurs des Services Web «SWU». La liste des spécifications publiées ou en cours de rédaction est déjà longue, d'autant qu'il n'y a pas unanimité parmi les acteurs sur les solutions à adopter ni meme sur l' organisme de standardisation à utiliser pour mener à bien ces travaux. Consensus SOAP + WSDL + UDDI? Parmi toutes ces spécifications, il semble se dégager un certain consensus de la part des fournisseurs (Microsoft, IBM, SUN,...) autour des trois spécifications SOAP, WSDL et UDDI. Eric van der Vlist (vdv@dyomedea.com) SOAP-- WS Convention 2004 -- Page 3

SOAP Exemple de requête SOAP/HTTP: POST /StockQuote HTTP/1.1 Host: www.stockquoteserver.com Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI" <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:body> <m:getlasttradeprice xmlns:m="some-uri"> <m:tickersymbol>dis</m:tickersymbol> </m:getlasttradeprice> </soapenv:body> </soapenv:envelope> Exemple de réponse SOAP/HTTP HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:body> <m:getlasttradepriceresponse xmlns:m="some-uri"> <m:price>34.5</m:price> </m:getlasttradepriceresponse> </soapenv:body> </soapenv:envelope> Description de services web : WSDL Web Services Description Language : description formelle et à deux niveaux de l'interface des Services Web Comme son nom l'indique, WSDL permet de décrire des services web. Plus précisément, WSDL décrit de manière formelle les interfaces des services web et ce à deux niveaux : un niveau abstrait indépendant du protocole auquel est associé un protocole par «binding». Eric van der Vlist (vdv@dyomedea.com) SOAP-- WS Convention 2004 -- Page 4

Types -> messages -> porttypes -> bindings -> services (WSDL 1.1) En WSDL 1.1, Une description WSDL définit d'abord des types, utilisés pour former des messages, associés dans des «ports», reliés à un protocole par des «bindings» formant des Services Web. WSDL 2.0 sera différente Le W3C travaille actuellement sur la version 2.0 de WSDL qui reprendra et complétera ces principes mais changera certains noms (le W3C ne semblant pas avoir été sensible à la poésie de l'image maritime du «port» préfère notamment parler de «endpoint»). Au delà de ces modifications mineures, WSDL 2.0 apportera d'autres évolutions (notamment le support d'autres langages de schéma) et il faudra prévoir une phase migration. Eric van der Vlist (vdv@dyomedea.com) SOAP-- WS Convention 2004 -- Page 5

Types (exemple)... <types> <schema targetnamespace="http://example.com/stockquote.xsd" xmlns="http://www.w3.org/2000/10/xmlschema"> <element name="tradepricerequest"> <complextype> <all> <element name="tickersymbol" type="string"/> </all> </complextype> </element> <element name="tradeprice"> </element> </schema> </types> Messages (exemple) <message name="getlasttradepriceinput"> <part name="body" element="xsd1:tradepricerequest"/> </message> <message name="getlasttradepriceoutput"> <part name="body" element="xsd1:tradeprice"/> </message> PortType (exemple) <porttype name="stockquoteporttype"> <operation name="getlasttradeprice"> <input message="tns:getlasttradepriceinput"/> <output message="tns:getlasttradepriceoutput"/> </operation> </porttype> Binding (exemple) <binding name="stockquotesoapbinding" type="tns:stockquoteporttype"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="getlasttradeprice"> <soap:operation soapaction="http://example.com/getlasttradeprice"/> <input> Eric van der Vlist (vdv@dyomedea.com) SOAP-- WS Convention 2004 -- Page 6

<soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> Service (exemple) <service name="stockquoteservice"> <documentation>my first service</documentation> <port name="stockquoteport" binding="tns:stockquotebinding"> <soap:address location="http://example.com/stockquote"/> </port> </service> Annuaires de services Web : UDDI Universal Description, Discovery and Integration : l'annuaire des Services Web... UDDI (Universal Description, Discovery and Integration) est en quelque sorte un LDAP en XML spécifique aux services Web. Un modèle de données, une interface et un service «universel» UDDI est à la fois un modèle de données permettant de décrire un service web, la définition d'une interface permettant de manipuler ce modèle de données et la mise à disposition de la communauté de UDDI sous forme d'un service universel et gratuit. Le modèle de données UDDI Plus figé que LDAP Alors que le modèle de données LDAP est extrêmement générique et que chaque système d'information peut définir son schéma LDAP, le modèle de données UDDI est un modèle plus figé et la spécification UDDI définit explicitement quelles en sont les entités. Si l'on pourrait représenter et stocker un annuaire UDDI dans un annuaire LDAP après avoir pris le soin de définir un schéma UDDI pour LDAP, la réciproque ne serait donc pas possible dans le cas général. Le modèle de données UDDI est défini sous forme de schéma W3C XML Schéma. Eric van der Vlist (vdv@dyomedea.com) SOAP-- WS Convention 2004 -- Page 7

BusinessEntity : pages blanches Les «businessentities» sont en quelque sorte les pages blanches d'un annuaire UDDI et elles décrivent les organisations ayant publié des services dans le répertoire. On y trouvera notamment le nom de l'organisation, ses adresses (physiques et Web), des éléments de classification, une liste de contacts,... Chaque businessentity est identifiée par une «businesskey». ServiceEntity : pages jaunes Les «serviceentities» sont en quelque sorte les pages jaunes d'un annuaire UDDI et décrivent de manière non technique les services proposés par les différentes organisations. On y trouvera essentiellement le nom et la description textuelle des services ainsi qu'une référence à l'organisation proposant le service et un ou plusieurs «bindingtemplates». BindingTemplate : coordonnées des services Les «bindingtemplates» donnent les coordonnées des services. Cherchant à être très générique en ce domaine, UDDI permet de décrire des Services Web HTTP, mais également des services invoqués par d'autres moyens (SMTP, FTP, fax, téléphone,...). Ils contiennent notamment une description, la définition du «point d'accès» (suivant les cas, une URL, un numéro de téléphone,...) et les éventuels «tmodels» associés. tmodel : description technique des services Les «tmodels» sont les descriptions techniques des services. UDDI n' impose aucun format pour ces descriptions qui peuvent être publiées sous n'importe quelle forme et notamment sous forme de documents textuels (XHTML par exemple). C'est à ce niveau que WSDL intervient comme le vocabulaire de choix pour publier des descriptions techniques de services. L'interface UDDI L'interface UDDI est définie sous forme de documents UDDI et implémentée sous forme de Service Web SOAP. Elle est composée des modules suivants : Interrogation («inquiry») Cette interface permet de rechercher des informations dans un répertoire UDDI et de lire les différents enregistrements enregistrés suivant le modèle de données UDDI. Eric van der Vlist (vdv@dyomedea.com) SOAP-- WS Convention 2004 -- Page 8

Publication Cette interface permet de publier des informations dans un répertoire UDDI conformément à son modèle de données. Sécurité Cette interface est utilisée pour obtenir et révoquer les jetons d' authentification nécessaires pour accéder aux enregistrements protégés dans un annuaire UDDI. Contrôle d'accès et propriété («custody and ownership transfer») Cette interface permet de transféré la propriété d' informations (qui est à l'origine attribué à l'utilisateur ayant publié ces informations) et de gérer les droits d'accès associés. Abonnement («Subscription») Cette interface permet à un client de s'abonner à un ensemble d' informations et d'être avertis lors des modifications de ces informations. Tous les répertoires UDDI doivent gérer un avertisssement par polling (le client interroge le serveur pour savoir si des modifications ont eu lieu sur les données auxquelles il est abonné). Une fonctionnalité optionnelle est également prévue permettant au client de communiquer au serveur la définition d'un Service Web sur lequel il souhaite être prévenu en cas de modification. Réplication interne (noeuds d'un même annuaire) A côté des interfaces utilisateurs que nous venons de voir, UDDI définit également l'interface permettant de synchroniser les noeuds d'un même annuaire UDDI. Réplication externe (interrogation, publication, abonnement) La réplication externe par duplication d'informations entre differents annuaires UDDI n'a pas donné lieu à la définition d'une interface spécifique mais se fait en utilisant les interfaces interrogation (pour la lecture dans un annuaire), publication (pour la publication dans un autre annuaire) et éventuellement abonnement (pour pouvoir propager les modifications ultérieures). Le service UDDI (UBR) UBR (UDDI Business Registry) Les promoteurs de UDDI proposent également un répertoire UDDI disponible sous forme Eric van der Vlist (vdv@dyomedea.com) SOAP-- WS Convention 2004 -- Page 9

d'un service gratuit. Répliqué (IBM, Microsoft, SAP, NTT) Ce répertoire est hébergé sur des noeuds administrés par IBM, Microsoft, SAP et NTT et ces noeuds sont synchronisés au moyen du mécanisme de réplication interne. Annuaires publics, annuaires privés A côté de cet annuaire public, chacun peut déployer son propre annuaire UDDI et y répliquer tout ou partie de l'annuaire UBR. AUTRES SPÉCIFICATIONS http://en.wikipedia.org/wiki/list_of_web_servic e_specifications La meilleure liste de spécifications associées aux Services Web que j'ai trouvée est publiée par Wikipedia. Elle liste les principales spécifications en les classant par catégories : Directory access Service Description News feeds Messaging and Function Calls Basic Profile Specifications Business Process Specifications Security Specifications Reliable Messaging Specification Reliable Messaging Specification Basic XML Specifications Other Eric van der Vlist (vdv@dyomedea.com) SOAP-- WS Convention 2004 -- Page 10

Eric van der Vlist (vdv@dyomedea.com) SOAP-- WS Convention 2004 -- Page 11