Plan du cours. Services Web. Un service web? Plan de l introduction. 1. Introduction 2. SOAP 3. WSDL 4. UDDI



Documents pareils
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»

Le cadre des Web Services Partie 1 : Introduction

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

On Feature Interaction among Web Services Michael Weiss et Babak Esfandiari

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

BPEL Orchestration de Web Services

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

Les Services Web. Jean-Pierre BORG EFORT

Business Process Execution Language

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

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

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

4. SERVICES WEB REST 46

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

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

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

Systèmes d'informations historique et mutations

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures

Les Architectures Orientées Services (SOA)

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

Urbanisme du Système d Information et EAI

Les nouvelles architectures des SI : Etat de l Art

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

Classification : public 1/59

Services Web publication et découverte

Services web & E-Commerce. David DABOUÉ - daboueda@iro.umontreal.ca Mars 2006

Architectures n-tiers et déploiement d applications Web

Web Services : Beyond the peer-to-peer architecture

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

18 TCP Les protocoles de domaines d applications

Analyse des techniques et des standards pour l interopérabilité entre plateformes

L Orchestration de Services Web avec Orchestra. Goulven Le Jeune Orchestra Project Manager

*Classement PAC

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

UNIVERSITÉ DU QUÉBEC EN OUTAOUAIS

Architectures d'intégration de données

Module BD et sites WEB

Introduction à Microsoft InfoPath 2010

Environnements de Développement

Programmation Internet Cours 4

Architectures web/bases de données

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

Messagerie asynchrone et Services Web

Sécurisation des architectures traditionnelles et des SOA

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

Rapport de veille technologique

Introduction aux. services web 2 / 2

Volet Synchrone pour Client Lourd

Urbanisation des Systèmes d'information

ÉCOLE DE TECHNOLOGIE SUPÉRIEURE UNIVERSITÉ DU QUÉBEC MÉMOIRE PRÉSENTÉ À L ÉCOLE DE TECHNOLOGIE SUPÉRIEURE

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

GRIDKIT: Pluggable Overlay Networks for Grid Computing

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Méthodes et Langages du Commerce Electronique

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

SOAP Concepts Application à Glassfish

Java et les WebServices :

Nouvelles technologies pour l intégration : les ESB

Jean-Philippe VIOLET Solutions Architect

ABB personnalise son service client avec la plate-forme en ligne One ABB on the Web Jan Anders Solvik, Håkan Wärdell, Nathan Becker

Architecture Orientée Service, JSON et API REST

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

Applications et Services WEB: Architecture REST

Formation SSO / Fédération

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

Fusion : l interopérabilité chez Oracle

L architecture des services Web

De l Utilisation des VPNs pour l Administration et la Sécurité des Services Web

Composition semi-automatique de Services Web

Nombre de pages : 76. Les termes relatifs au socle ENT inscrits dans ce document sont définis dans le glossaire référencé : SocleENT_Glossaire.

Exploration des technologies web pour créer une interaction entre Mahara et les plateformes professionnelles et sociales

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

GLOSSAIRE. On premise (sur site)

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

Tour d horizon des différents SSO disponibles

Introduction à la conception de systèmes d information

ENVOLE 1.5. Calendrier Envole

La gestion des protocoles HTTP, FTP, SOAP, etc.

Auto-évaluation Aperçu de l architecture Java EE

Application des Spécifications détaillées pour la Retraite, architecture portail à portail

Single Sign On. Nicolas Dewaele. Single Sign On. Page 1. et Web SSO

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014

Compte Rendu d intégration d application

Java et les bases de données

MINISTÈRE DES SOLIDARITÉ ET DE LA COHÉSION SOCIALE

OPC Factory Server- Réglage des paramètres de communication

Vulgarisation Java EE Java EE, c est quoi?

Programmation Web. Introduction

Environnement collaboratif à base de GRID pour la construction interactive d'ontologies partagées

Collaboration des Processus Métiers dans les Echanges inter-entreprises (B2B) basée sur le Web Service Resource Framework (WSRF) du Grid

NFP111 Systèmes et Applications Réparties

La sécurité des processus métiers et des transactions. Stéphane Marcassin Bull Services Sécurité

Mise en œuvre des serveurs d application

La suite logicielle Lin ID. Paris Capitale du Libre 25 septembre 2008

Services sur réseaux. Trois services à la loupe. Dominique PRESENT Dépt S.R.C. - I.U.T. de Marne la Vallée

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Transcription:

Plan du cours Services Web Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine 1. Introduction 2. SOAP 3. WSDL 4. UDDI Site du cours : http://apiacoa.org/teaching/webservices/ Services Web p.1/26 Services Web p.2/26 Plan de l introduction 1. Qu est-ce qu un service web? 2. Architecture des services web 3. Les évolutions futures Un service web? Définition du W3 (http://www.w3.org/tr/ws-gloss/) : Un service web est un système logiciel identifié par un URI, dont les interfaces publiques et les incarnations sont définies et décrites en XML. Sa définition peut être découverte [dynamiquement] par d autres systèmes logiciels. Ces autres systèmes peuvent ensuite interagir avec le service web d une façon décrite par sa définition, en utilisant des messages XML transportés par des protocoles Internet. incarnation : ma traduction de binding Services Web p.3/26 Services Web p.4/26

Traduction (1) Traduction (2) système logiciel : programme URI : Uniform Resource Identifier (RFC 2396, http://www.ietf.org/rfc/rfc2396.txt?number=2396). Exemples : URL : http://www.w3.org/ mail : mailto:getlost@nospam.org FTP : ftp://ftp.ufrmd.dauphine.fr/pub/docs/ interface : une description des opérations proposées par le composant logiciel (même esprit que les interfaces Java) incarnation (binding) : spécification du protocole et du format des données utilisés pour échanger des messages en vue de l utilisation d une interface découverte (dynamique) : obtention de la description d un service web XML : extensible Markup Langage (http://www.w3.org/xml/) : ASCII du XXIème siècle! pré-requis indispensable pour faire des services web publicité : http://apiacoa.org/teaching/xml/ protocoles internet : bas niveau TCP/IP haut niveau (applicatif) : HTTP (web) SMTP (mail) FTP (file) Traduction (3) Un service web est donc : un programme décrit en XML identifié par un URI proposant diverses fonctionnalités que d autres programmes peuvent découvrir dynamiquement et utiliser grâce à des protocoles décrits en XML basés sur l échange de messages écrits en XML transmis par HTTP, FTP, SMTP, Services Web p.5/26 Une vision plus simple Un service web est un programme accessible par internet par l intermédiaire de messages XML transmis par HTTP Services Web p.6/26 Un standard pour les systèmes répartis basés sur XML+HTTP : XML-RPC (cf http://www.xmlrpc.org/) Services Web p.7/26 Services Web p.8/26

Lien avec l existant But des services web Architectures pour les systèmes répartis (RPC, DCOM, RMI et CORBA) : même idées générales (interface, découverte dynamique, protocoles, ) problèmes d inter-opérabilité : DCOM spécifique Microsoft RMI spécifique Java problèmes techniques : RPC technologie vieillissante CORBA techonologie extrêmement complexe publicité : http://apiacoa.org/teaching/distributed/ Applications web (sites évolués) : ça fonctionne mais... problèmes de sécurité, fiabilité, Fournir une architecture générale pour les applications réparties sur internet : inter-opérables : basé sur des standards ouverts sans composant spécifique à un langage ou un système d exploitation faiblement couplées : limiter au maximum les contraintes imposées sur le modèle de programmation des différents éléments de l application par exemple ne pas imposer un modèle objet supportant la montée en charge : par exemple en n imposant pas un modèle de type RPC Exemples de services existants Services Web p.9/26 Google (http://www.google.com/apis/) : accès gratuit mais limité (1000 requêtes par jour après enregistrement) propose trois opérations : recherche obtention d une page depuis le cache correction orthographique Amazon (http://associates.amazon.com/exec/panama/associates/join/developer/resources.html) accès gratuit mais limité (1 requête par seconde après enregistrement) propose recherche et gestion d un panier d achats bien d autres! (cf http://www.xmethods.com/ par exemple) Architecture de base Services Web p.10/26 Trois acteurs : le fournisseur de service (service provider) : définit le service publie sa description dans l annuaire réalise les opérations l annuaire (discovery agency) : reçoit et enregistre les descriptions de services publiées par les fournisseurs reçoit et répond aux recherches de services lancées par les clients le client (service requestor) : obtient la description grâce à l annuaire utilise le service Services Web p.11/26 Services Web p.12/26

Architecture de base (2) Briques de l architecture de base Découverte Programme Annuaire Interaction Publication Service Fournisseur SOAP (Simple Object Access Protocol) : version 1.1 : mai 2000 (http://www.w3c.org/tr/soap/) version 1.2 : en cours (CR en décembre 2002) cadre général permettant l échange de données structurées au format XML protocole de transport de ces données basé sur HTTP WSDL (Web Services Language) : version 1.1 : mars 2001 (http://www.w3.org/tr/2001/note-wsdl-20010315) version 1.2 : en cours (Working Draft) dialecte XML permettant de décrire un service web UDDI (Universal Data Interface) : version 3 : juillet 2002 (http://uddi.org/pubs/uddi-v3.00-published-20020719.htm) annuaire permettant d enregistrer et de rechercher des descriptions de services web Services Web p.13/26 Services Web p.14/26 Architecture de base (3) Exemple SOAP UDDI Découverte Programme Annuaire SOAP Interaction Publication Service WSDL Fournisseur dogooglesearch.xml 1 <?xml version= 1.0 encoding= UTF-8?> 2 <env:envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" 3 xmlns:xsi="http://www.w3.org/1999/xmlschema-instance" 4 xmlns:xsd="http://www.w3.org/1999/xmlschema"> 5 <env:body> 6 <ns1:dogooglesearch xmlns:ns1="urn:googlesearch" 7 env:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/"> 8 <key xsi:type="xsd:string">00000000000000000000000000000000</key> 9 <q xsi:type="xsd:string">shrdlu winograd maclisp teletype</q> 10 <start xsi:type="xsd:int">0</start> 11 <maxresults xsi:type="xsd:int">10</maxresults> 12 <filter xsi:type="xsd:boolean">true</filter> 13 <restrict xsi:type="xsd:string"></restrict> 14 <safesearch xsi:type="xsd:boolean">false</safesearch> 15 <lr xsi:type="xsd:string"></lr> 16 <ie xsi:type="xsd:string">latin1</ie> 17 <oe xsi:type="xsd:string">latin1</oe> 18 </ns1:dogooglesearch> 19 </env:body> 20 </SOAP-ENV:Envelope> Services Web p.15/26 Services Web p.16/26

Exemple WSDL Exemple WSDL (2) 1 <?xml version="1.0"?> 2 <definitions 3 xmlns="http://schemas.xmlsoap.org/wsdl/" 4 xmlns:xs="http://www.w3.org/2001/xmlschema" 5 name="itempconverterservice" 6 targetnamespace="http://www.borland.com/soapservices/" 7 xmlns:tns="http://www.borland.com/soapservices/" 8 xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 9 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 10 <message name="ctofrequest"> 11 <part name="temp" type="xs:int"/> 12 </message> 13 <message name="ctofresponse"> 14 <part name="return" type="xs:int"/> 15 </message> 16 <message name="ftocrequest"> 17 <part name="temp" type="xs:int"/> 18 </message> 19 <message name="ftocresponse"> 20 <part name="return" type="xs:int"/> 21 </message> 22 <porttype name="itempconverter"> 23 <operation name="ctof"> 24 <input message="tns:ctofrequest"/> 25 <output message="tns:ctofresponse"/> 26 </operation> 27 <operation name="ftoc"> 28 <input message="tns:ftocrequest"/> 29 <output message="tns:ftocresponse"/> 30 </operation> 31 </porttype> 32 <binding name="itempconverterbinding" type="tns:itempconverter"> 33 <soap:binding 34 style="rpc" 35 transport="http://schemas.xmlsoap.org/soap/http"/> 36 <operation name="ctof"> Services Web p.17/26 Services Web p.18/26 Exemple WSDL (3) 37 <soap:operation soapaction="urn:tempconverterintf-itempconverter#ctof"/> 38 <input> 39 <soap:body use="encoded" 40 encodingstyle="http://schemas.xmlsoap.org/soap/encoding/" 41 namespace="urn:tempconverterintf-itempconverter"/> 42 </input> 43 <output> 44 <soap:body use="encoded" 45 encodingstyle="http://schemas.xmlsoap.org/soap/encoding/" 46 namespace="urn:tempconverterintf-itempconverter"/> 47 </output> 48 </operation> 49 <operation name="ftoc"> 50 <soap:operation soapaction="urn:tempconverterintf-itempconverter#ftoc"/> 51 <input> 52 <soap:body use="encoded" 53 encodingstyle="http://schemas.xmlsoap.org/soap/encoding/" 54 namespace="urn:tempconverterintf-itempconverter"/> 55 </input> Exemple WSDL (4) 56 <output> 57 <soap:body use="encoded" 58 encodingstyle="http://schemas.xmlsoap.org/soap/encoding/" 59 namespace="urn:tempconverterintf-itempconverter"/> 60 </output> 61 </operation> 62 </binding> 63 <service name="itempconverterservice"> 64 <port name="itempconverterport" binding="tns:itempconverterbinding"> 65 <soap:address 66 location="http://developerdays.com/cgi-bin/tempconverter.exe/soap/itempconverter"/> 67 </port> 68 </service> 69 </definitions> Services Web p.19/26 Services Web p.20/26

Mise en œuvre de l architecture Mise en œuvre de l architecture (2) Attention : l architecture précise des formats (dialecte XML) des sémantiques associées (sens de chaque élément des documents XML) des protocoles (e.g., utilisation de HTTP pour transmettre des messages SOAP) des services web standards (comme les API de UDDI) et c est tout! Questions ouvertes : comment programmer un service web? comment accéder à un service web? Réponse : ça dépend! en Java, Sun standardise des API et des outils associés : JAX-RPC (JA XML-based RPC) : utilisation de SOAP (mode RPC) JAXR (JA XML Registries) : utilisation de UDDI JAXM (JA XML Messaging) : utilisation de SOAP (mode message) SAAJ (SOAP with Attachments API for Java) : utilisation de SOAP (pièces jointes) outil de transformation d une description WSDL en interface Java et vice-versa Microsoft fait pareil pour.net : API dans la bibliothèque de classes de.net utilisation en C# ou VB Mise en œuvre de l architecture (3) Services Web p.21/26 Comment faire ça bien? redémarrage automatique du serveur persistance des données interfaçage avec les systèmes d information de l entreprise (SGBD, ERP, CRM, ) Utiliser un serveur d applications : serveur EJB (J2EE 1.4 va intégrer le support des services web) serveur.net Services Web p.23/26 Évolution de l architecture Services Web p.22/26 Il manque de nombreuses choses dans l architecture de base : Sécurité : identifier l envoyeur garantir l intégrité du contenu brique de base : WS-Security, OASIS (IBM, MS et Verisign) construite à partir de XML-signature et XML-encryption (W3C) autres briques : SAML (Security Assertion Markup Language) : en gros permettre la signature unique avec identifiant transportable XACML (extensible Access Control Markup Language) : définition d une politique de sécurité en XML Services Web p.24/26

Évolution de l architecture (2) Les enjeux Fiabilité : être sûr que les messages arrivent! standards concurrents : WS-R (Reliability), OASIS (Oracle, Sun et autres) WS-RM (Reliable Messaging) BEA, IBM, MS et TIBCO Orchestration : combiner simplement des services web beaucoup de concurrence : WSCL (Web Services Conversation Language), W3C (HP) WSCI (Web Service Choreography Interface), W3C (BEA, Intalio, SAP et SUN) BPEL4WS (Business Process Execution Language for Web Services), BEA, IBM et MS Services Web p.25/26 Remarques personnelles : les grands acteurs cherchent à se positionner pour dominer le marché mais ils veulent être aimés : ils proposent des standards à des organismes indépendants (le W3C, OASIS, ) tout en gardant le contrôle par des brevets logiciels avec une licence RAND (Reasonable and non-discriminatory) qui permet de faire payer les implémenteurs plutôt qu une licence RF (Royalty-Free) Futur : Pouvoir de WS-I (http://www.ws-i.org/), la Web Services Interoperability Organization? Brevets logiciels sur SOAP 1.2? Services Web p.26/26