samir tata département informatique telecom · pdf file... des bases de données...

53
1 2009-2010 Services Web Samir Tata Département INFormatique TELECOM SudParis http://www-inf.it-sudparis.eu/cours/WebServices

Upload: lamtruc

Post on 02-Feb-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

12009-2010

Services Web

Samir TataDépartement INFormatique

TELECOM SudParishttp://www-inf.it-sudparis.eu/cours/WebServices

Page 2: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

22009-2010

Introduction

Source: Fabien HACQUEBART

Page 3: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

32009-2010

Références• Web

– http://www-inf.it-sudparis.eu/cours/WebServices/– Site de W3C (normes) : www.w3.org– Site de Zvon (tutoriel XML) : http://www.zvon.org/

• Livres– Georges Gardarin : Des bases de données aux services Web, Dunod,

Paris, 2002

– Hubert Kadima et Valérie Monfort : Les services Web: techniques, démarches et outils, Dunod, Paris, 2003

– Gustavo Alonso, Fabio Casati, Harumi Kuno, and Vijay Machiraju : Web Services: Concepts, Architecture and Applications, Springer-Verlag, New York, 2004

– Jorge Cardoso and Amit P. Sheth : Semantic Web Services, Processesand Applications (Semantic Web and Beyond: Computing for HumanExperience), Springer-Verlag, New York, 2006

Page 4: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

Plan

42009-2010

• Genèse de l’« orientation » service• Services Web• Panorama de technologies• Orchestration de services Web

Page 5: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

Plan

52009-2010

• Genèse de l’« orientation » service– Genèse– Définition– Architecture

• Services Web• Panorama de technologies• Orchestration de services Web

Page 6: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

62009-2010

« Orientation » service

Genèse, Définition et Architecture

Page 7: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

72009-2010

Genèse (1/3)

• Paradigme procédure– procédures, fonctions et données structurées– applications monolithiques, applications serveurs isolées

• Paradigme objet– classes (fonctions et données structurées)– lié à un langage de programmation– applications monolithiques, applications c/s isolées

• Paradigme composant– composant (groupe d’interfaces)– lié à un modèle de composant – entité de plus gros grain, – décrit par ce qu’il offre et ce qu’il requiert, – supporte des propriétés non fonctionnelles de manière déclarative,– utilisation indépendante de l’implémentation (pour certains

modèle/plateforme de composants)– interaction application-application

Page 8: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

82009-2010

Genèse (2/3)

• POS, POO, POC : pourquoi on veut améliorer ?– Paradigmes ?

• on parle du code et non de l’architecture • l’architecture suit le modèle de programmation

– et alors ?• Concepts abstraits et mapping concrets

– mapping vers Java, C++, CORBA, COM …– Réutilisation entre domaines différents difficile sinon

impossible

• Besoins ?– Support de l’hétérogénéité : plusieurs plate-formes

logicielles et matérielles– Accès et manipulation des données de partout

Page 9: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

92009-2010

Genèse (3/3)

**

objets

*

servicesservicesservicescomposants

Niveaux d’abstraction grandissant

Langagesprocéduraux

CORBA

CCMEJB.NET

Machinesvirtuelles

Ass

embl

eur

Lang

ages

mac

hine

01011101001100001011

Page 10: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

102009-2010

Définition (1/2)

• C’est quoi alors un service– un block avec des propriétés fonctionnelles et non

fonctionnelles• Localisations, plate-forme et code sont peu importants

• implications sur – le service qui peut être

• destinataire d’un message (application)• manipulateur d’un message (infrastructure)• transporteur d’un message (protocole)

– l'utilisation d’un service qui• est toujours supposée distante• passe toujours au dessus des plate-formes• ignore l’implémentation

Page 11: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

112009-2010

Définition (2/2)Un Service expose un Contrat

Les services communiquent par messages

Conditions Générales de VenteRèglement Intérieur

Vos droits/Vos devoirsin

out

Un Service est Autonome(et sans état)

Les Frontières entre services sont Explicites

Source A. Occello

Page 12: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

122009-2010

Architecture (1/2)

ServiceRegistry

ServiceRequestor

ServiceProvider

Find Publish

Bind

ServiceDescription

ServiceDescription

Service

Page 13: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

132009-2010

Architecture (2/2)

• Les partenaires– Le fournisseur de services crée le service Web, puis publie

son interface ainsi que les informations d'accès au service, dans un annuaire de services Web.

– L'annuaire de services rend disponible l'interface du service ainsi que ses informations d'accès, pour les demandeur potentiel de service.

– Le demandeur de services accède à l'annuaire de service pour effectuer une recherche afin de trouver les services désirés. Ensuite, il se lie au fournisseur pour invoquer le service.

Page 14: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

Plan

142009-2010

• Genèse de l’« orientation » service• Services Web

– Origines et définition– WSDL : Web Service description Language– SOAP : Simple Object Access Protocol– Développement de SW avec Axis

• Panorama de technologies• Orchestration de services Web

Page 15: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

152009-2010

Services Web

Origines et Définitions

Page 16: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

162009-2010

Service Web : les origines• Le Web d’aujourd’hui

– conçu pour une interaction client-application– développé autour de 2 standards http et html– permet de supporter le B2C

• Le Web de demain ?– Le Web est partout. Que peut-on faire avec ?

• Supporter des places de marché électronique (E-marketpalces)

• intégrer des procédés métiers• partager des ressources

– Les approches existantes sont ad hoc • e.g. interactions application-application avec des

formulaires html– But: permettre une interaction application-application

Page 17: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

172009-2010

Trois générations d’applications Web

• 1ère génération– Ressources statiques (rôle de serveur)– Documents– e.g. pages Web statiques (HTML)

• 2ème génération– Ressources dynamiques (rôle de serveur)– Applications– e.g. pages Web dynamiques, ASP, JSP, PHP, ...

• 3ème génération– Services (rôles de serveur & client)

Page 18: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

182009-2010

Service Web : définition

A Web service is a software application identified by a URI, whose interfaces and binding(1) are capable of being defined, described and discovered by XML artefacts and supports direct interactions with other software applications using XML based messages via Internet-based protocols. (W3C definition)

(1) An association between an Interface, a concrete protocol and a data format

Un service Web est une application logicielle 1. identifiée par un URI dont les interfaces et les

liaisons sont définies, décrites et découvertes avec des mécanismes XML, et

2. supporte une interaction directe avec les autres applications logicielles en utilisant des messages XML via un protocole Internet.

Page 19: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

192009-2010

Service Web : caractéristique

• Les services Web sont – des service

• autonome• exposant des contrats• dont les frontières sont explicites• qui communiquent par messages

– accessible sur le Web• Les messages sont véhiculés par des protocoles Web

Page 20: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

202009-2010

Architecture Web service

Page 21: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

212009-2010

Architecture Web service

• Les partenaires– Le fournisseur de services crée le service Web, puis publie

son interface ainsi que les informations d'accès au service, dans un annuaire de services Web.

– L'annuaire de services rend disponible l'interface du service ainsi que ses informations d'accès, pour les demandeur potentiel de service.

– Le demandeur de services accède à l'annuaire de service pour effectuer une recherche afin de trouver les services désirés. Ensuite, il se lie au fournisseur pour invoquer le service.

• Les standards– Protocole SOAP : Achemine les messages entre fournisseur,

annuaire et demandeur de services – Langage WSDL : Décrit les interface des services– Norme UDDI : spécifie la structure des annuaires de services

Page 22: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

222009-2010

Services Web

WSDL : Web Service description Language

Page 23: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

Rôle du langage WSDL

232009-2010

• WSDL est un langage qui permet de décrire :– l’interface d’un service Web (types de données, opérations,

entrées, sorties)– comment invoquer un service Web

• Objectif :– Décrire les services comme un ensemble d’opérations et de

messages abstraits reliés à des protocoles et des serveurs réseaux

• Permet de décharger les utilisateurs des détails techniques de réalisation d’un appel

• WSDL est un langage qui standardise les schémas XML utilisés pour établir une connexion entre émetteurs et récepteurs.

Page 24: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

242009-2010

Web service description using WSDL

Source : Hubert Kadima & Valérie Monfort

Page 25: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

252009-2010

Structure d’un document WSDL

<definitions><types>définition des types</types><message>définition des messages</message><portType>définition des interfaces </portType><binding>définition des bindings</binding><services>définition de endpoint </service>

</definitions>

Page 26: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

262009-2010

Exemple : un annuaire

• Opérations– Ajouter une entrée

• Entrée :– Nom : Tata– Prénom : Samir– Adresse : 9 rue Charles Fourier 91011 Evry France

– Chercher une adresse• Entrée : nom• Sortie : Entrée ou message d’érreur

Page 27: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

272009-2010

WSDL : <types> <wsdl:types>

<schema targetNamespace="urn:AnnuaireTypes"><import namespace="http://schemas.xmlsoap.org/soap/encoding/"/><complexType name="AdresseType">

<sequence><element name="code" nillable="true" type="soapenc:string"/><element name="numero" type="xsd:int"/><element name="pays" nillable="true" type="soapenc:string"/><element name="rue" nillable="true" type="soapenc:string"/><element name="ville" nillable="true" type="soapenc:string"/>

</sequence></complexType><complexType name="EntreeType">

<sequence><element name="adresse" nillable="true" type="tns1:AdresseType"/><element name="nom" nillable="true" type="soapenc:string"/><element name="prenom" nillable="true" type="soapenc:string"/><element name="telephone" type="xsd:int"/>

</sequence></complexType><complexType name="EntreeInexistanteType">

<sequence><element name="messageErreur" nillable="true" type="soapenc:string"/>

</sequence></complexType>

</schema></wsdl:types>

Page 28: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

282009-2010

WSDL : <message> — décrit les noms et types d’un ensemble de champs à transmettre— peut-être comparé aux paramètres d'un appel de procédure

<wsdl:message name="chercherEntreeRequest"><wsdl:part name="nom" type="soapenc:string"/>

</wsdl:message>

<wsdl:message name="ajouterEntreeRequest"><wsdl:part name="entree" type="tns1:EntreeType"/>

</wsdl:message>

<wsdl:message name="EntreeInexistante"><wsdl:part name="fault" type="tns1:EntreeInexistanteType"/>

</wsdl:message>

<wsdl:message name="chercherEntreeResponse"><wsdl:part name="chercherEntreeReturn" type="tns1:EntreeType"/>

</wsdl:message>

<wsdl:message name="ajouterEntreeResponse"><wsdl:part name="ajouterEntreeReturn" type="soapenc:string"/>

</wsdl:message>

Page 29: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

292009-2010

WSDL : <portType><wsdl:portType name="Annuaire"><wsdl:operation name="chercherEntree" parameterOrder="nom">

<wsdl:inputmessage="impl:chercherEntreeRequest" name="chercherEntreeRequest"/>

<wsdl:outputmessage="impl:chercherEntreeResponse" name="chercherEntreeResponse"/>

<wsdl:faultmessage="impl:EntreeInexistante" name="EntreeInexistante"/>

</wsdl:operation><wsdl:operation name="ajouterEntree" parameterOrder="entree">

<wsdl:inputmessage="impl:ajouterEntreeRequest" name="ajouterEntreeRequest"/>

<wsdl:outputmessage="impl:ajouterEntreeResponse" name="ajouterEntreeResponse"/>

</wsdl:operation></wsdl:portType>

Page 30: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

302009-2010

WSDL : <porttype>

• Les types de port (port Type) décrivent un ensemble d’opérations et euvent être comparés à une interface Java– One-way

• le service reçoit un message en entrée (<input>). – Request-response

• le service reçoit un message en entrée (<input>) et renvoie un message en sortie <output> ou un ou plusieurs messages d’erreur (<fault>)

– Solicit-response• Le service envoie un message (<output>) et reçoit un message

corrélé (<input>) ou un ou plusieurs messages d’erreur (<fault>).

– Notification• le service envoie un message de notification (<output>)

Page 31: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

312009-2010

WSDL : <binding>

• Les Liaisons (binding) définissent le format des messages et le protocole utilisépar chaque type de port

<wsdl:binding name="AnnuaireServiceSoapBinding" type="impl:Annuaire"><wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>

<wsdl:operation name="chercherEntree"><wsdl:input name="chercherEntreeRequest">

<wsdlsoap:bodyencodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>

</wsdl:input><wsdl:output name="chercherEntreeResponse">

<wsdlsoap:bodyencodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />

</wsdl:output><wsdl:fault name="EntreeInexistante">

<wsdlsoap:faultencodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="EntreeInexistante"/>

</wsdl:fault></wsdl:operation><wsdl:operation name="ajouterEntree">…</wsdl:operation>

</wsdl:binding>

Page 32: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

322009-2010

WSDL : <service>• Le port est un point de terminaison identifié de manière unique par la

combinaison d'une adresse Internet et d'une liaison• Un Service est une collection de points d’entrée (endpoint) relatifs.

<?xml version="1.0" encoding="UTF-8"?><wsdl:definitions targetNamespace="http://localhost:8080/axis/services/AnnuaireService"

xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost:8080/axis/services/AnnuaireService" xmlns:intf="http://localhost:8080/axis/services/AnnuaireService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns1="urn:AnnuaireTypes“xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">…

<!-- service decln --><wsdl:service name="AnnuaireService">

<wsdl:port binding="impl:AnnuaireServiceSoapBinding" name="AnnuaireService"><wsdlsoap:address location="http://localhost:8080/axis/services/AnnuaireService"/>

</wsdl:port></wsdl:service>

</definitions>

Page 33: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

332009-2010

Exercice

• Écrire la description WSDL d’un service qui calcule la somme de deux entiers naturels

Page 34: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

342009-2010

Services Web

SOAP: Simple Object Access Protocol

Page 35: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

352009-2010

SOAP

• Simple Object Access Protocol • Intégration de XML au-dessus de HTTP :

– Pour accéder services, objets et serveurs– Indépendant de toute plate-forme

• Codage universel XML par opposition aux spécifiques :– DCOM - DCE/NDR– CORBA - IIOP/CDR– JAVA - RMI/JRMP– RDA - XDR

• Résolution des problèmes de sécurité :– Les firewalls supportent des ports spécifiques (HTTP, FTP)– La plupart des middlewares assignent des ports dynamiques

…• Associé à WSDL pour publication d'interfaces

Source G. Gardarin

Page 36: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

362009-2010

Un échange type

Port de connexion (URL)

Application Cliente

Parser XML

Procuration

d'interface

Translateur

SOAP

Parser XML

RPC

local

Pare-feu Pare-feuMessages

SOAP Appel

HTTP

Réponse

Serveurd'application

Source G. Gardarin

Page 37: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

372009-2010

Eléments d'un message

• Envelope– Élément pouvant contenir des déclarations d'espaces de

noms ou des sous-éléments

• Header– Élément optionnel fils de Envelope– Permet des extensions telles que authentification,

session, etc.

• Body – Élément obligatoire fils de Envelope– Définit la méthode appelée, contient les paramètres– Peut contenir un élément Fault en cas d'erreur

Source G. Gardarin

XML-RPC et SOAP

Page 38: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

382009-2010

Structure d’un message SOAP

SOAP Message

SOAP EnvelopeSOAP Header

SOAP Body

Method Call & Data

Headers

HTTP Headers

Appel de mAppel de mééthode et descriptionthode et descriptionen XML de donnen XML de donnééeses

Corps qui contient lesCorps qui contient lesappels de mappels de mééthodes SOAPthodes SOAP

Entête individuelleEntête individuelleEntêteEntêteEnveloppeEnveloppe

Entête standard HTTPEntête standard HTTPet entête SOAP HTTPet entête SOAP HTTP

Le message SOAP CompletLe message SOAP Complet

Page 39: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

392009-2010

SOAP : Message

<soap:Envelope<soap:Header>

... entête... </soap:Header><soap:Body>

... Corps du message... <soap:Fault>

... Erreurs éventuelles ...</soap:Fault>

</soap:Body></soap:Envelope>

Page 40: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

402009-2010

L’enveloppe et l’entête• L’enveloppe définit le document XML comme étant un

message SOAP<soap:Envelopexmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"

soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

</soap:Envelope>• L ’entête contient des éléments définis par l’utilisateur

<soap:Header> <m:local xmlns:m="http://www.Computer.com/local/">

<m:language>fr</m:language> <m:currency>Euro</m:currency>

</m:local> </soap:Header>

Page 41: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

412009-2010

Le corps : Appel

• Le corps– Doit être présent dans le message SOAP– Contient le message

<soap:Envelope><soap:Body>

<sommeDemande xmlns:m="urn:MonPremierService"> <param1>25</param1> <param2>-25</param2>

</sommeDemande> </soap:Body>

</soap:Envelope>

Page 42: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

422009-2010

Le corps: réponse

<soap:Envelope><soap:Body>

<sommeReponse xmlns:m=“urn:MonPremierService”> <return>0</return>

</sommeReponse> </soap:Body>

</soap:Envelope>

Page 43: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

432009-2010

Le corps : réponse

• Erreurs qui apparaissent pendant l’exécution du message

<soap:Envelope><soap:Body>

<soap:Fault> <faultstring>

On ne peut sommer des entiers négatifs</faultstring>

</soap:Fault> </soap:Body>

</soap:Envelope>

Page 44: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

442009-2010

Exercice

• Écrire un exemple d’un message SOAP envoyé à ou par le service Web « annuaire »

Page 45: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

452009-2010

Services Web

Développement de SW avec Axis

Page 46: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

462009-2010

Introduction

• Implantation de SOAP1.1– Java– OpenSource

• Communauté Apache– Apache, Tomcat, Xerces, Struts, Cocoon

• Support coté serveur – Servlet qui reçoit et envoie des messages SOAP HTTP

(pont SMTP)• Support coté client

– API pour envoyer des messages SOAP sur HTTP et SMTP

Page 47: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

472009-2010

Moteur de Servlets (Notion)

• Une Servlet (HTTP) – objet Java qui fonctionne en mode requête/réponse (HTTP)

• Un moteur (container) de Servlet

– application qui reçoit des requêtes http et qui les transmet aux Servlets

– Exemples• Tomcat (couplage avec Apache), • Websphere (couplage avec IBM http Server), • Weblogic …

Page 48: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

482009-2010

Architecture (Serveur)

• Le client envoie des messages SOAP/HTTP• La Servlet AxisServlet reçoit et renvoie les messages SOAP et transmet

aux objets Java correspondant• Les Objets Java effectuent les services. Ils sont des objets Java

classiques.

JVM

Moteur de Servlet(Tomacat)

AxisServletSOAP/HTTP

Page 49: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

492009-2010

Tomcat File System

anotherapp

TOMCAT

webapps

index.htmlWEB-INF

web.xml classes lib

examples

jsp

*.jar*.class

Exp.jsp

WEB-INF

web.xml classes lib

axis

Somme.jws

*.class *.jar

Page 50: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

502009-2010

Développement d’un Web Service JWS (axis1)

• Développer une classe Javapublic class Somme {

public int sommer(int i1, int i2) {return i1+i2;

}}

• Sauvegarder la classe dans Somme.jws • Copier Somme.java dans le répertoire axis • Lancer le serveur tomcat• Obtention de la description WSDL

http://postex:8080/axis/Somme.jws?WSDL

Page 51: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

512009-2010

Développement d’un client à partir du WSDL (axis1)

• Génération d’un ensemble de classes facilitant l’envoi de messages SOAP:– java org.apache.axis.wsdl.WSDL2Java file.wsdl

• Classes générées:– Type, PortType, Binding et Service

• Construction du client :– Instancier un Service– Obtenir un Port à partir du Service– Utiliser les méthodes du Port

• Construire les paramètres en fonction des Types

Page 52: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

522009-2010

Le client (axis1)

public class Client {public static void main(String[] args) {

try {// Instancier un ServiceSommeService service=new SommeServiceLocator();

// Obtenir un Port à partir du ServiceSomme port=service.getSomme();

// Utiliser les méthodes du Portint result = port.sommer(2,3);System.out.println("La somme est : "+result);

} catch (Exception ex) {ex.printStackTrace();

}}}

Page 53: Samir Tata Département INFormatique TELECOM · PDF file... Des bases de données aux services Web, Dunod, ... – accessible sur le Web • Les messages sont véhiculés par des protocoles

532009-2010

Axis2 avec ADB

• Génération d’un ensemble de classes facilitant l’envoi de messages SOAP:– $AXIS2_HOME/bin/wsdl2java.sh –uri file.wsdl -d adb -s

• Classes générées:– Sub

• Construction du client :– Instancier le stub– Instancient et initialiser la requête (sous classe du stub)– Utiliser les méthodes du stub

• Construire les paramètres en fonction des Types