Introduction aux Services Web belkhir a
Vue d’ensemble Du web des humains… HTML dans le navigateur BD relationnelle sur le serveur, sites web dynamiques …au web des machines : communication directe entre applications hétérogènes. Des principes anciens… Appels de procédures distants architectures distribuées (CORBA, DCOM) …dans un contexte nouveau le web, XML, Commerce électronique à grande échelle 07/04/2017 belkhir a
Le Web aujourd’hui Protocole: HTTP Documents: HTML Des millions de sites web indépendants, des milliards de pages Navigation et recherche par mots-clés Publication de bases de données, accessibles à travers des formulaires. 07/04/2017 belkhir a
les services web Possibilité d’invoquer une fonction sur un serveur web distant Fournit une infrastructure souple pour les systèmes distribués, basée sur XML 2 applications principales Commerce électronique Accès à des bases de données distantes 07/04/2017 belkhir a
Un exemple SOURCE : W3C 07/04/2017 belkhir a
La vision: Trouver quelque chose Interroger un annuaire : qui fournit des Choses? Négocier avec les fournisseurs potentiels Nature exacte du service fourni Qualité/coût/etc. Interagir avec le service du fournisseur choisi Connaître les modalités d’interaction Introduire le service dans ma chaîne de traitements Eventuellement composer des services Eventuellement publier mes propres services 07/04/2017 belkhir a
Principe général d’architecture SOURCE : W3C 07/04/2017 belkhir a
Un service web en action Client du Service Web Annuaire UDDI Trouver un fournisseur de service (UDDI) http://www.uddi.org Lien vers un document WSDL Fournis-seur du Service Web Modalités d’interaction (WSDL) http://myservice.com?wsdl Description du service Echanges réels (SOAP) http://myservice.com/service XML/SOAP body SOURCE: SIMON HUTSON, KPMG 07/04/2017 belkhir a
Idée principale: Intégration de technologies existantes en utilisant les standards du Web soap Distributed Computing (Corba) Web search uddi wsdl IDL Knowledge representation BPEL4WS workflow XML 07/04/2017 belkhir a
Organisation Introduction Prérequis: XML Le protocole SOAP Similaire à Corba (en plus simple) Similaire à IDL Introduction Prérequis: XML Le protocole SOAP Description des services web: WSDL Annuaire des services web: UDDI Pour aller plus loin… Conclusion Les Pages Jaunestm 07/04/2017 belkhir a
SOAP (ex) Simple Object Access Protocol 07/04/2017 belkhir a
Les points forts de SOAP Protocole de communication entre applications: Sans état Unidirectionnel Indépendant du protocole de communication. Basé sur XML et les namespaces. Permet d’utiliser les protocoles du Web (HTTP/SMTP/…) Indépendant de la plateforme (windows, unix, mac, …) Simple et extensible 07/04/2017 belkhir a
Principes de SOAP Permet d’envoyer des messages XML entre deux machines. Les messages sont « emballés » dans une enveloppe SOAP L’enveloppe SOAP utilise un XML schéma prédéfini Le schéma du message dépend de l’application Application Message (Application-Specific grammar) SOAP Envelope (SOAP grammar) 07/04/2017 belkhir a
Anatomie d’un message SOAP Corps de message: SOAP Body C’est la partie qui dépend de l’application Conventions pour faire du RPC Gestion des erreurs: SOAP Fault Code Reason: compréhensible par un humain Entêtes: SOAP Header des méta-données pour un ou plusieurs destinataires du message. Des moyens pour contrôler qui doit traiter quelle entête 07/04/2017 belkhir a
La pile réseau Determine comment un message est envoyé. SOAP envelope extensions Security Manageability Quality of Service SOAP Header XML HTTP SMTP FTP… XML messaging Data encoding Network protocol Determine comment un message est envoyé. 07/04/2017 belkhir a
WSDL : Web Services Description language 07/04/2017 belkhir a
Principes Un langage (en XML) de description des services fournis par un serveur. Une description de type « boîte noire » de ces services : Quelles sont les opérations disponibles ? Comment on y accède (adresse, protocole,…) Quel est le format des messages échangés entre le client et le serveur: Pour invoquer le service Pour interpréter les résultats …mais rien sur ce qu’ils font vraiment (leur sémantique). Types XML Schema des entrées sorties. 07/04/2017 belkhir a
Structure d’un document WSDL Un service est composé de plusieurs opérations. Chaque opération peut avoir une entrée et/ou une sortie. Chacun de ces messages est composé de plusieurs parties. Chaque partie est décrite par un type. Ces éléments sont associés par des bindings à un protocole particulier. Pour un protocole donné, les opérations associées constituent un port, associé à une adresse. 07/04/2017
Types : Définition XML Schema des données Service Port Binding <types> <schema targetNamespace="http://example.com/stockquote.xsd" xmlns="http://www.w3.org/2000/10/XMLSchema"> <element name="TradePriceRequest"> <complexType> <element name="tickerSymbol" type="string"/> </complexType> </element> <element name="TradePrice"> <element name="price" type="float"/> </schema> </types> Port Types Operations Messages Types 07/04/2017 belkhir a
Messages : Collections de types Service Port Binding Port Types Operations <message name="GetLastTradePriceInput"> <part name="body" element="xsd1:TradePriceRequest"/> </message> <message name="GetLastTradePriceOutput"> <part name="body" element="xsd1:TradePrice"/> Messages Types 07/04/2017 belkhir a
Operations : Fonctions disponibles Service Définition du pattern d’intéraction par les entrées-sorties : Input only Output only Input-Output Output-Input Port Binding Port Types Operations <operation name="GetLastTradePrice"> <soap:operation soapAction="http://example.com/GetLastTradePrice"/> <input> <soap:body use="literal"/> </input> <output> </output> </operation> Messages Types 07/04/2017 belkhir a
Port Types (interfaces): Ensembles d’opérations Service Port Binding Port Types <portType name="StockQuotePortType"> <operation name="GetLastTradePrice"> <input message="tns:GetLastTradePriceInput"/> <output message="tns:GetLastTradePriceOutput"/> </operation> </portType> Operations Messages Types 07/04/2017 belkhir a
Binding : Associe des protocoles aux méthodes Service Trois types de bindings : SOAP HTTP GET & POST MIME Port Binding <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> <soap:body use="literal"/> </input> <output> </output> </operation> </binding> Port Types Operations Messages Types 07/04/2017 belkhir a
Port : Associe une addresse (URL) à chaque Binding Service Port <port name="StockQuotePort" binding="tns:StockQuoteBinding"> <soap:address location="http://example.com/stockquote"/> </port> Binding Port Types Operations Messages Types 07/04/2017 belkhir a
Service : ensemble de ports <service name="StockQuoteService"> <documentation>My first service</documentation> <port name="StockQuotePort" binding="tns:StockQuoteBinding"> <soap:address location="http://example.com/stockquote"/> </port> </service> Port Binding Port Types Operations Messages Types 07/04/2017 belkhir a
Implémentation des services web 07/04/2017 belkhir a
De nombreux acteurs Microsoft .Net J2EE (Sun, IBM, etc...) Implémentations open-source … Intéropérabilité : Les services des uns sont utilisables par les autres ! WS-I.org: Web Services interoperability organization 07/04/2017 belkhir a
UDDI : Universal Description, Discovery and Integration (of services) 07/04/2017 belkhir a
UDDI Où trouver le service dont j’ai besoin ? Quels sont les fournisseurs potentiels ? Lequel est le meilleur pour moi ? Noyau: annuaires – les pages jaunes Liste d’entreprises + comment les contacter Classification en catégories (à la Yahoo!) Informations en +: protocole, coût, qualité, contrat… Question cruciale : Qui contrôle l’annuaire ? Par exemple: qui contrôle les catégories ? Qui peut s’enregistrer dans l’annuaire ? 07/04/2017 belkhir a
Les clients choisissent des services UDDI (2) Consortium industriel (IBM, Microsoft,…) + de 200 entreprises. Moyens de publier et de rechercher des services Beaucoup de bruit Limité Peu de services Langage d’interrogation primitif Informations très limitées Les entreprises enregistrent Des services UDDI IBM UDDI Microsoft réplication Les clients choisissent des services 07/04/2017 belkhir a
Business Registrations Fonctionnement Marketplaces, search engines, and business apps query the registry to discover services at other companies 4. 1. Companies, standards bodies, and programmers populate the registry with descriptions of different types of services Business Registrations Businesses populate the registry with descriptions of the services they support 2. UDDI Business Registry Business uses this data to facilitate easier integration with each other over the Web 5. Service Type Registrations The process of UDDI should be obvious now. First, software companies, standards bodies, and programmers populate the registry with descriptions of different types of services Next, businesses populate the registry with descriptions of the services they support Then, the UDDI Business Registry assigns a programmatically unique identifier to each service and business registration Finally, Marketplaces, search engines, and business apps query the registry to discover services at other companies and businesses use this data to facilitate easier integration with each other over the Web © Copyright 2000 By Ariba, Inc., International Business Machines Corporation and Microsoft Corporation. All Rights Reserved. 3. UBR assigns a unique identifier to each service and business registration SOURCE: UDDI.ORG 07/04/2017 belkhir a
Contenu d’un annuaire White pages: les entreprises Adresse, numéro de tel, Catégorie d’activité Yellow pages: les services Description textuelle Classification en catégories Green pages: infos techniques Descriptions WSDL BusinessEntity BusinessService BindingTemplates tModel publisherAssertion Spécifs de services et taxonomies Relations entre deux parties Infos techniques 07/04/2017 belkhir a
Pour aller plus loin Sécurité Composition et orchestration Sémantique 07/04/2017 belkhir a
Sécurité des services web Principales fonctions : Confidentialité Authentication Integrité des messages Non-repudiation Infrastructure Cryptographie Systèmes à clé publique, tels que RSA 07/04/2017 belkhir a
Sécurité des services web (2) HTTP fournit un méchanisme d’authentication très simple SSL: secure socket layer; un protocole pour transmettre des données encryptées HTTPS = HTTP over SSL: très utilisé XML digital signature non-repudiation XML encryption SSL encrypte le message en entier; problème des intermédiaires. XML encryption permet d’encrypter de manière sélective 07/04/2017 belkhir a
Composition et orchestration Comment définir des intéractions entre services en créer de nouveaux, par composition S’apparente aux : Systèmes de workflow Transactions Domaine très actif Travaux de recherche Spécifications industrielles (ex: IBM WSFL, BPEL4WS, WSCI…) 07/04/2017 belkhir a
Conclusion 07/04/2017 belkhir a
Les points forts des services web XML comme norme et modèle de données Le Web comme terrain de jeu La standardisation (w3c, OASIS) Intéropérabilité La modularité et l’extensibilité des specs : Choix du protocole Synchrone / asynchrone 07/04/2017 belkhir a
Vision d’ensemble La conception d’applications devient de la gestion de flux entre services et d’évenements Les services atomiques sont vus comme des ensembles de fonctions invocables Les services peuvent: Être situés n’importe où Appartenir à n’importe qui Être développés avec tous types d’outils S’executer sur n’importe quelle plateforme Les applications utilisent les services selon leurs besoins Elles les découvrent grâce à UDDI Peuvent négocier leur utilisation dynamiquement Les choisir et les exécuter en temps réel. SOURCE: IDC 07/04/2017 belkhir a
Courte bibliographie XML – Extensible Markup Language XML (W3C): http://www.w3.org/XML/ XML Schema – XML Schema: http://www.w3.org/XML/Schema Xquery – XML Query: http://www.w3.org/XML/Query W3C WS – Web Services Activity: http://www.w3.org/2002/ws HTTP – Hypertext Transfer Protocol: http://www.w3.org/Protocols/ SOAP – Simple Object Access Protocol: http://www.w3.org/TR/SOAP/ WSDL – Web Services Description Language: http://www.w3.org/TR/wsdl OMG – Object Management Group : http://www.omg.org/ CORBA – Common Object Request Broker Architecture, see OMG UDDI – Universal Description, Discovery, and Integration: http://www.uddi.org/ WSFL – Web Services Flow Language: http://xml.coverpages.org/wsfl.html WSCI – Web Services Choreography Interface: http://www.w3.org/TR/wsci/ Apache Axis – http://ws.apache.org/axis/ J2EE – Java 2 Platform, Enterprise Edition: http://java.sun.com/j2ee/ 07/04/2017 belkhir a