SOA Services Web Etendus SOAP : Communiquer



Documents pareils
Introduction aux «Services Web»

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

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

4. SERVICES WEB REST 46

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

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

(structure des entêtes)

Volet Synchrone pour Client Lourd

Le cadre des Web Services Partie 1 : Introduction

Programmation Web Avancée Introduction aux services Web

API Web Service TéléAlerte

Manuel d intégration API SOAP SMS ALLMYSMS.COM

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

Messagerie asynchrone et Services Web

Compte Rendu d intégration d application

Application Web et J2EE

Environnements de Développement

TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI

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

Architectures web/bases de données

18 TCP Les protocoles de domaines d applications

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

Classification : public 1/59

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

BPEL Orchestration de Web Services

Mise en œuvre des serveurs d application

Définition des Webservices Standards Systempay Version 2.7c

Plateforme PAYZEN. Définition de Web-services

Méthodes et Langages du Commerce Electronique

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

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

Urbanisme du Système d Information et EAI

SOAP Concepts Application à Glassfish

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Web Services : Beyond the peer-to-peer architecture

Nouvelles technologies pour l intégration : les ESB

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

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

Applications et Services WEB: Architecture REST

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068

CQP Développeur Nouvelles Technologies (DNT)

Approche Contract First

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Bases de données et environnements distribués Chapitre I : Architecture logicielle technologies de developpement en environnement

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

Les nouvelles architectures des SI : Etat de l Art


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

Microsoft Technopoche

Bien architecturer une application REST

Développement des Systèmes d Information

Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM)

Business Process Execution Language

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

Réseaux. 1 Généralités. E. Jeandel

Intégration de l interface graphique de Ptidej dans Eclipse

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Hébergement de sites Web

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Protection des protocoles

Hébergement de site web Damien Nouvel

Optimiser pour les appareils mobiles

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

Architectures Web Services RESTful

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

Programmation Internet Cours 4

CS REMOTE CARE - WEBDAV

Cisco Certified Network Associate

API ONE-TIME PASSWORD

Tessi Documents Services ASPONE. Démo Webservices UpValue.

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

Groupe Eyrolles, 2004 ISBN :

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

Introduction à la plateforme J2EE

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Solutions d accès sécurisées pour opérer une Market Place Saas multitenante

Module BD et sites WEB

Iyad Alshabani SysCom - CReSTIC Université de Reims 17/02/2011 1

Supplément de renseignements : Examens d applications et pare-feux d applications web clarifiés Normes : Normes en matière de sécurité des données de

ECLIPSE ET PDT (Php development tools)

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Les Architectures Orientées Services (SOA)

Les services usuels de l Internet

Annexe C Corrections des QCM

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

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

Point sur les solutions de développement d apps pour les périphériques mobiles

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

L architecture des services Web

Serveurs de noms Protocoles HTTP et FTP

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Protocoles Applicatifs

Manuel Utilisateur. Boticely

Transcription:

SOA Services Web Etendus SOAP : Communiquer Mickaël BARON 2010 (Rév. Janvier 2011) mailto:baron.mickael@gmail.com ou mailto:baron@ensma.fr

Licence Creative Commons Contrat Paternité Partage des Conditions Initiales à l'identique 2.0 France http://creativecommons.org/licenses/by-sa/2.0/fr 2

Plan du cours Généralités SOAP SOAP par l exemple : HelloWorld service Structure d un message SOAP En tête d un message SOAP (header) Corps d un message SOAP (body) SOAP et le transport HTTP Outil SOAP UI 3

Déroulement du cours Pédagogie du cours Des bulles d aide tout au long du cours Survol des principaux concepts en évitant une présentation exhaustive Logiciels utilisés Navigateur Web, SOAP UI Pré-requis Ingénierie des données, Schema XML, WSDL Remerciements TODO Ceci est une astuce Ceci est une alerte 4

Ressources Articles www.w3.org/tr/soap/ www.ibm.com/developerworks/xml/library/x-soapbx2/index.html www.soapui.org fr.wikipedia.org/wiki/soap Cours www.w3schools.com/soap apiacoa.org/publications/teaching/webservices/soap.pdf www.javapassion.com/webservices/soapbasics.pdf mbaron.developpez.com/divers/schemaxml/ 5

Ressources : Bibliothèque Programming Web Services with SOAP Auteur : James Snell, Doug Tidwell, Pavel Kulchenko Éditeur : O Reilly Edition : Déc. 2001-264 pages - ISBN : 0596000952 Java and SOAP Auteur : Robert Englander Éditeur : O Reilly Edition : Mai 2002-288 pages - ISBN : 0596001754 Understanding Web Services :, SOAP, Auteur : Eric Newcomer Éditeur : Addison-Wesley Edition : Mai 2002-368 pages - ISBN : 0201750813 6

Généralités SOAP SOAP est un protocole de communication entre application basé sur le langage XML Initialement SOAP désignait l acronyme de Simple Object Access Protocol Qui est derrière SOAP (Microsoft et IBM) Objectifs visés Assurer la communication entre applications d une même entreprise (intranet) Assurer les échanges interentreprises entre applications et services Web Spécification du W3C SOAP 1.1 : http://www.w3.org/tr/2000/note-soap-20000508/ SOAP 1.2 : http://www.w3.org/tr/soap12/ Pour comparaison, SOAP est similaire aux protocoles «RPC» 7

Comparaison 8

Où est utilisé SOAP? Annuaire UDDI Entreprise A interroge l annuaire UDDI pour obtenir une liste de Services Web répondant à ces exigences 2 3 Entreprise A télécharge les documents qui décrivent les Services Web (WSDL) 1 Entreprise B publie ses Services Web qu elle implémente dans un annuaire UDDI (transmet les WSDLs) Entreprise A Consommatrice de Services Web 4 5 Entreprise B répond en retournant des messages SOAP conformes aux WSDL Entreprise A envoie des messages SOAP conformes aux WSDL pour invoquer les Services Web de B Entreprise B Fournisseur de Services Web 9

Do you speak SOAP? Pour lire et écrire du SOAP, les pré-requis sont XML XML Schema Le pour Utile pour débugger une application Utile pour réaliser des tests via SOAP UI Intercepter les messages bas niveau SOAP (via les handlers) Le contre Les APIs fournissent une abstraction des messages SOAP 10

Concepts d un message SOAP Les messages SOAP sont utilisés pour envoyer (requête) et recevoir (réponse) des informations d un récepteur Un message SOAP peut être transmis à plusieurs récepteurs intermédiaires avant d être reçu par le récepteur final (~ chaîne de responsabilité) Le format SOAP peut contenir des messages spécifiques correspondant à des erreurs identifiées par le récepteur Un message SOAP est véhiculé vers le récepteur en utilisant un protocole de transport (HTTP, SMTP, ) 11

SOAP par l exemple : Requête vers le service HelloWorld Exemple : Appeler les opérations du service HelloWorld <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:hel="http://helloworldwebservice.lisi.ensma.fr/"> <soapenv:header/> <soapenv:body> <hel:makehelloworld> <value>mickael BARON</value> </hel:makehelloworld> </soapenv:body> </soapenv:envelope> Message SOAP pour appeler l opération makehelloworld contenant un paramètre value Message SOAP pour appeler l opération simplehelloworld ne contenant pas de paramètre <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:hel="http://helloworldwebservice.lisi.ensma.fr/"> <soapenv:header/> <soapenv:body> <hel:simplehelloworld/> </soapenv:body> </soapenv:envelope> 12

SOAP par l exemple : Réponse du service HelloWorld Exemple (suite) : Message retour de l appel des opérations du service HelloWorld <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:body> <ns2:makehelloworldresponse xmlns:ns2="http://helloworldwebservice.lisi.ensma.fr/"> <helloworldresult>hello World to Mickael BARON</helloWorldResult> </ns2:makehelloworldresponse> </soapenv:body> </soapenv:envelope> Les réponses sont sensiblement identiques <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:body> <ns2:simplehelloworldresponse xmlns:ns2="http://helloworldwebservice.lisi.ensma.fr/"> <helloworldresult>hello World to everybody</helloworldresult> </ns2:simplehelloworldresponse> </soapenv:body> </soapenv:envelope> 13

Structure d un message SOAP Un message SOAP est un document XML constitué d une enveloppe composée de deux parties Un en-tête (header) qui peut être facultatif Un corps (body) En-tête SOAP (header facultatif) Corps du message SOAP (body) Enveloppe SOAP 14

L enveloppe SOAP L enveloppe est la racine d un message SOAP identifiée par la balise <soapenv:enveloppe> La spécification impose que la balise et les sous balises soient explicitement associées à un namespace La spécification SOAP définit deux namespaces SOAP-ENV ou soapenv : http://schemas.xmlsoap.org/soap/envelope/ SOAP-ENC : http://schemas.xmlsoap.org/soap/encoding/ La requête et la réponse ont la même structure <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope"> <SOAP-ENV:Body> <!-- Contenu de la Requête --> </SOAP-ENV:Body> </SOAP-ENV:Envelope> <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope"> <SOAP-ENV:Body> <!-- Contenu de la Réponse --> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Message SOAP d une requête Message SOAP d une réponse 15

En-tête SOAP L en-tête d un message SOAP est utilisé pour transmettre des informations supplémentaires sur ce même message L en-tête est défini par la balise <SOAP-ENV:Header> L élément peut être facultatif Doit être placé avant le corps Différents usages de l en-tête? Informations authentifiant l émetteur Contexte d une transaction Pour certains protocole de transport (FTP par exemple), l en-tête peut être utilisé pour identifier l émetteur du message Un message SOAP peut transiter par plusieurs intermédiaires avant le traitement par le récepteur final Pattern «Chaîne de responsabilité» Zone lecture / écrite par les intermédiaires 16

En-tête SOAP En-tête dans une série de transferts successifs de message SOAP 1 Emetteur du message SOAP <SOAP-ENV:Envelope...> <SOAP-ENV:Header> <balise1 SOAP-ENV:Actor="http://schemas.xmlsoap.org/soap/actor/next" SOAP-ENV:mustUnderstand="1"... > </balise1> <balise2> </balise2> <balise3> </balise3> </SOAP-ENV:Header>... </SOAP-ENV:Envelope> Valeurs conventionnelles pour la transmission par chaîne Récepteur intermédiaire n 1 2 <SOAP-ENV:Envelope...> <SOAP-ENV:Header> <balise2 SOAP-ENV:Actor="http://schemas.xmlsoap.org/soap/actor/next" SOAP-ENV:mustUnderstand="1"...> </balise2> <balise3> </balise3> Le contenu de cet élément sera </SOAP-ENV:Header>... </SOAP-ENV:Envelope> traité par le récepteur intermédiaire Récepteur intermédiaire n 2 3 Récepteur final du message SOAP <SOAP-ENV:Envelope...> <SOAP-ENV:Header> <balise3 SOAP-ENV:Actor="http://schemas.xmlsoap.org/soap/actor/next" SOAP-ENV:mustUnderstand="1"...> </balise3> </SOAP-ENV:Header>... </SOAP-ENV:Envelope> 17

Corps SOAP Le corps d un message SOAP est constitué par un élément <SOAP-ENV:Body> L élément <SOAP-ENV:Body> peut contenir soit Une erreur en réponse à une requête (élément <SOAP-ENV:Fault>) Des informations adressées au destinataire du message SOAP respectant un encodage déterminé L encodage des informations est précisé par les bindings du document WSDL Attribut style (Document et RPC) Attribut use (encoded et litteral) Pour faire simple nous utiliserons les services Web dans le cadre de l appel à une procédure distante 18

Corps SOAP L objectif visé par SOAP a été de fournir un mécanisme standardisé pour l appel de procédures distant (RPC) De ce fait les informations adressées au destinataire de messages SOAP doivent respectées un certain nombre de convention Appel d une opération représentée par une struct Le nom de la structure est celui de l opération à appeler Chaque paramètre de l opération est défini comme un sous élément de la structure Si un paramètre est un type complexe (Person par exemple) une nouvelle structure est définie contenant à son tour des sous éléments Le résultat est également représenté par une struct Le nom de la structure est celui de l opération suivi de Response Les paramètres sont également structurés 19

Corps SOAP Exemple : corps de messages SOAP pour appeler des opérations du service Web Notebook <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:not="http://notebookwebservice.lisi.ensma.fr/"> <soapenv:header/> <soapenv:body> <not:addpersonwithcomplextype> <newperson> <address>poitiers</address> <birthyear>17081976</birthyear> <name>baron Mickael</name> </newperson> </not:addpersonwithcomplextype> </soapenv:body> </soapenv:envelope> Message SOAP pour appeler l opération addpersonwithcomplextype Paramètre de type complexe défini dans une structure (newperson) <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:not="http://notebookwebservice.lisi.ensma.fr/"> <soapenv:header/> <soapenv:body> <not:addpersonwithsimpletype> <name>baron Mickael</name> <address>poitiers</address> <birthyear>17081976</birthyear> </not:addpersonwithsimpletype> </soapenv:body> </soapenv:envelope> Message SOAP pour appeler l opération addpersonwithsimpletype Trois paramètres 20

Corps SOAP Exemple : corps de messages SOAP pour le résultat des opérations du service Web Notebook <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:body> <ns2:addpersonwithcomplextyperesponse xmlns:ns2="http://notebookwebservice.lisi.ensma.fr/"> <addpersonwithcomplextyperesult>true</addpersonwithcomplextyperesult> </ns2:addpersonwithcomplextyperesponse> </soapenv:body> </soapenv:envelope> Messages SOAP pour la réponse puisque les noms des opérations sont suivis de Response <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:body> <ns2:addpersonwithsimpletyperesponse xmlns:ns2="http://notebookwebservice.lisi.ensma.fr/"> <addpersonwithsimpletyperesult>true</addpersonwithsimpletyperesult> </ns2:addpersonwithsimpletyperesponse> </soapenv:body> </soapenv:envelope> Les paramètres de sorties suivent la même convention que les paramètres d entrés 21

SOAP transporté par HTTP SOAP utilise un protocole de transport pour véhiculer les messages SOAP de l émetteur au récepteur HTTP, SMTP, FTP, POP3 et NNTP Le modèle requête/réponse de SOAP convient parfaitement au modèle requête/réponse HTTP En-tête HTTP Corps HTTP En-tête SOAP (header facultatif) Corps du message SOAP (body) Enveloppe SOAP Requête / Réponse HTTP Contenu étudié précédemment 22

SOAP transporté par HTTP Requête SOAP HTTP Méthode de type POST Nécessite un attribut SOAPAction Réponse SOAP HTTP Exploite les codes retours HTTP Si code de type 2xx, message SOAP reçu Si code 500, message en erreur, le corps SOAP doit contenir fault POST http://localhost:8080/notebookwebservice/notebook HTTP/1.1 Content-Type: text/xml;charset=utf-8 SOAPAction: "" User-Agent: Jakarta Commons-HttpClient/3.1 Host: localhost:8080 Content-Length: 459 <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:not="http://notebookwebservice.lisi.ensma.fr/"> <soapenv:header/> <soapenv:body> <not:addpersonwithcomplextype> <newperson> <address>poitiers</address> <birthyear>17081976</birthyear> <name>baron Mickael</name> </newperson> </not:addpersonwithcomplextype> </soapenv:body> </soapenv:envelope> HTTP/1.1 200 OK Server: Apache-Coyote/1.1 Content-Type: text/xml;charset=utf-8 Transfer-Encoding: chunked Date: Sun, 13 Dec 2009 12:00:33 GMT <?xml version='1.0' encoding='utf-8'?> <soapenv:envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:body> <ns2:addpersonwithcomplextyperesponse xmlns:ns2="http://notebookwebservice.lisi.ensma.fr/"> <addpersonwithcomplextyperesult> true </addpersonwithcomplextyperesult> </ns2:addpersonwithcomplextyperesponse> </soapenv:body> </soapenv:envelope> 23

Traitement des messages SOAP POST http://localhost:8080/notebookwebservice/notebook HTTP/1.1 Content-Type: text/xml;charset=utf-8 SOAPAction: "" User-Agent: Jakarta Commons-HttpClient/3.1 Host: localhost:8080 Content-Length: 459 <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:not="http://notebookwebservice.lisi.ensma.fr/"> <soapenv:header/> <soapenv:body> <not:addpersonwithcomplextype> <newperson> <address>poitiers</address> <birthyear>17081976</birthyear> <name>baron Mickael</name> </newperson> </not:addpersonwithcomplextype> </soapenv:body> </soapenv:envelope> <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:not="http://notebookwebservice.lisi.ensma.fr/"> <soapenv:header/> <soapenv:body> <not:addpersonwithcomplextype> <newperson> <address>poitiers</address> <birthyear>17081976</birthyear> <name>baron Mickael</name> </newperson> </not:addpersonwithcomplextype> </soapenv:body> </soapenv:envelope> Couche d accès aux implémentations des services Web (différents langages) Conteneur Web 1 Java Couche Couche de de transport transport HTTP HTTP 3 API API SOAP SOAP.NET Réception d un message SOAP via le transport HTTP 2 La partie HTTP est nettoyée C++ Framework Web Service Invocation de la méthode en fonction de l opération SOAP PHP 24

SOAP UI : outil graphique de tests de Service Web SOAP UI est un outil pour tester des Services Web www.soapui.org Disponible pour en standalone ou intégré dans les environnements de développement (Eclipse, Intellij, Netbeans, Maven, ) Peut s utiliser pour n importe quelle plateforme de développement Fonctionnalités de SOAP UI Supporte les Services Web étendus (WSDL + SOAP + UDDI) ou REST Inspecter des Services Web Invoquer des Services Web Développer des Services Web Simuler des Services Web via des bouchons (mocks) Effectuer des tests qualités (temps de réponse, ) 25

SOAP UI : outil graphique de tests de Service Web Les projets regroupant les appels aux Services Web Les messages SOAP (requête et réponse) Les logs de SOAPUI 26