Vous êtes sur la page 1sur 47

Web Services

Plan

Principes Besoins pour assurer le web services (SOAP, WSDL, UDDI) Cycle de vie dun web service Tomcat / Axis Exemple de dveloppement dun Web service Conclusion

Dfinition

L'architecture du Web remplace les concepts applicatifs clients et serveurs par les concepts agents et ressources. Les services web traitent donc d'agents ressources l o le mode opratoire classique du Web parle d'agents utilisateurs. Il n'y a donc pas de diffrence fondamentale entre l'interaction d'un navigateur avec une ressource et celle d'un Service Web avec une ressource. La principale diffrence se situe au niveau du format de la reprsentation des donnes: HTML pour les navigateurs ou agents utilisateurs, XML pour les Services Web ou agents ressources...

Dfinition

Les Web Services sont des services offerts via le web. Par exemple, un client demande le prix dun article en envoyant un message sur le web. Ce message contient la rfrence de larticle. Le Web Service va recevoir la rfrence, effectuer le traitement du service et renvoyer le prix au client via un autre message.

Dfinition

un Service Web est l'implmentation logicielle d'une ressource, identifie par une URL, et accessible en utilisant les protocoles internet. Les agents s'occupent du contenu, de la reprsentation de leur tat, pas du type de contenu. Il faut donc voir les Services Web comme le moyen de manipuler l'information, et non comme un simple fournisseur de services.

Avantage du web service


Peut appeler distance travers un rseau, indpendamment du systme d'exploitation et du langage de programmation utilis. Par exemple, un client crit en PHP s'excutant sur Unix peut utiliser un service web dvelopp en Java qui s'excute sur Windows et inversement.

Service Web
Les Services Web dsignent l'implmentation logicielle des spcifications WS et reposent tous sur un ensemble de protocoles et de standards de base utiliss pour l'change de donnes entre applications dans des environnements htrognes :
1. le SOAP (Simple Object Access Protocol) pour l'change de messages, 2. le WSDL (Web Service Description Language) pour la description : des services web, de leurs oprations, des messages utiliss, des types de donnes utilises, des protocoles utiliss et de leur localisation au sens internet (URI / URL), 3. les annuaires UDDI qui peuvent rfrencer des services web.

Principes
Pourquoi proposer des nouveaux Approches pour le web services

Besoins pour un service

Invocation, visant dcrire la structure des messages changs par les applications. Dcouverte, pour permettre de rechercher et de localiser un service web particulier dans un annuaire de services dcrivant le nom de la socit, l'objectif de chaque service, etc. Description, dont l'objectif est la description des interfaces (paramtres des fonctions, types de donnes) des services web.

Standards utilise pour le web service

Un nouveau Protocole : SOAP = HTTP + XML


Requte/rponse

= message xml

WSDL - Description de service web


Description

des interfaces des services

UDDI - Dcouverte automatique des services (dynamicit)

Annuaire contenant les interfaces (Pages Jaunes, Vertes, Blanches)

The basic standards for web services are:


XML (Extensible Markup Language) SOAP (simple object access protocol)

WSDL (web services description language)


UDDI (universal description, discovery and integration)

SOAP

Actually used to communicate with the Web Service


Both the request and the response are SOAP messages The body of the message (whose grammar is defined by the WSDL) is contained within a SOAP envelope

Binds the client to the web service

SOAP (Simple Object Access Protocol)

Protocole dchange de messages (client / serveur) Protocole permettant des appels de procdures distances (RPC) Bas sur 2 standards

XML pour bien structure les messages HTTP pour le transport des messages
Message = Enveloppe ( Header + Body ) Port sur HTTP, SMTP,

Concepts

Extensibilit

SOAP (Simple Object Access Protocol)

Dfinition
SOAP

envelope Encoding rules RPC

Structure dun message Rgle dencodage des types de donnes Convention de reprsentation des appel de methodes

SOAP

SOAP

HTTP

Extension framework

Echange de message sur http

Structure dun Message SOAP

XML

All Web Services documents are written in XML


XML Schema are used to define the elements used in Web Services communication

WSDL
Web Services Description Language

WSDL

Describes the Web Service and defines the functions that are exposed in the Web Service
Defines the XML grammar to be used in the messages
Uses

the W3C Schema language

WSDL
Langage de dfinition de Web Services Bas entirement sur XML Standard W3C (Initiative IBM et Microsoft)

Actuellement

WSDL 1.1

Dfinition de linterface, de lURL et du port du Web Service. Utilise le systme de typage de XML Schma

Prsentation
Une description WSDL :
1.

Dcrit le type dun service web (mthodes, types des paramtres) Cette description peut tre compare la description IDL CORBA, elle peut servir gnrer automatiquement des amorces. Dcrit les aspects techniques dimplantation dun service web (quel est le protocole utilis, quel est ladresse du service) Cette description sert se connecter concrtement un service web.

2.

Structure du fichier WSDL

Un fichier WSDL contient une description de tout ce qui est ncessaire l'appel d'un service Web SOAP :

types: cette balise dcrit les types utiliss message: cette balise dcrit la structure dun message chang portType: cette balise dcrit un ensemble doprations (interface dun service web)

operation: cette balise dcrit une opration ralise par le service web. Une opration reoit des messages et envois des messages.

binding: dcrit le lien entre un protocole (http) et un portType. service: cette balise dcrit un service comme un ensemble de ports.

port: cette balise dcrit un port au travers duquel il est possible daccder un ensemble doprations. Un port rfrence un Binding

Web Services Architecture

Web Services involve three major roles


Service

Provider Service Registry Service Consumer

Three major operations surround web services


making a service available Finding locating web services Binding using web services
Publishing

UDDI

UDDI is used to register and look up services with a central registry


Service Providers can publish information about their business and the services that they offer Service consumers can look up services that are available by

Business Service category Specific service

Making a service available (1)


In order for someone to use your service they have to know about it.

To allow users to discover a service it is published to a registry (UDDI). To allow users to interact with a service you must publish a description of its interface (methods & arguments). This is done using WSDL.

Making a service available (2)

Once you have published a description of your service you must have a host set up to serve it.
A web server is often used to deliver services (although custom application application communication is also possible). This is functionality which has to be added to the web server. In the case of the apache web server a container application (Tomcat) can be used to make the application (servlet) available to apache (deploying).

Cycle de vie dun Web Service avec Tomcat / Axis

Infrastructure
Apache Web Server Serveur d applications TOMCAT (Servlets, JSP) Xerces, API Java de parsing XML API SOAP

Introduction

Dfinition du Servlet (Notion)


Une

Servlet est un objet Java qui fonctionne en mode requte/reponse Une Servlet http est une serlvet qui est capable de traiter des requte http et qui est capable de renvoyer des rponses http.

Un moteur (container) de Servlet est une application qui reoit des requtes http et qui les transmet aux Servlet
Tomcat

(couplage avec Apache),

Axis

Axis fournit une Servlet (AxisServlet) qui reoit des message SOAP sur http et qui transforme lappel en un appel de mthode classique Java Dvelopper un Web Service revient alors dvelopper un objet Java et enregistrer ses mthodes auprs de la Servlet AxisServlet. Les clients envoient alors leurs messages SOAP sur http AxisServlet.

Conception du service dans le serveur Tomcat / Axis


Annuaire UDDI
yp wp wsdl

Tomcat

Client

HTTP

APACHE

XML parser 1. Conception

Services

Disponibilit de Service aprs le dploiement


Annuaire UDDI
yp wp wsdl

Tomcat

Client

HTTP

APACHE

Service a t dploy donc sera disponible

XML parser

Services

Enregistrement du fichier WSDL dans lannuaire UDDI pour assurer la dcouverte automatique
Annuaire UDDI
yp wp 2. Enregistrement wsdl wsdl
Tomcat

Client

HTTP

APACHE

XML parser

Services

Dcouverte du service
Annuaire UDDI
wsdl 4. Envoi fichier WSDL yp wp 3. Demande service wsdl

Tomcat

Client

HTTP

APACHE

XML parser

Services

Client envoie le message au serveur par le protocole SAOP


Annuaire UDDI
yp wp wsdl

Tomcat

Client

HTTP

APACHE

4. Invocation service par message SOAP

wsdl

XML parser

Services

Traitement de la demande
Annuaire UDDI
yp wp wsdl
Traitement du service demande Gnration de la rponse

Tomcat

Client

HTTP

APACHE

wsdl
AxisServlet reoit le message du client

XML parser

Services

mission la rponse par message SOAP


Annuaire UDDI
yp wp wsdl

Tomcat

5. Envoie la rponse

Client

HTTP

APACHE

wsdl

mission de la rponse

XML parser

Services

Exemple de dveloppement de web service

Dveloppement dun Web Service


Dvelopper une classe Java
public class MyFirstWebService { public final String BOOK1 = "La mthode"; public final String BOOK2 = "Le Macroscope"; public int getPrice(String bookTitle) { if (bookTitle.compareTo(BOOK1)==0) { return 15; } else if (bookTitle.compareTo(BOOK2)==0) { return 20; } else return 300; } }

Dploiement un Web Service


Elaborer un descripteur SOAP de votre classe
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <service name="MyFirstWebService" provider="java:RPC"> <parameter name="className value="MyFirstWebService"/> <parameter name="allowedMethods" value="*"/> </service> </deployment>

Exporter le descripteur
java org.apache.axis.client.AdminClient deploy.wsdd

Dploiement un Web Service


Le fichier jws sont les quivalents des jsp pour les Web Service. Construction dun fichier jws partir dune classe java:

Copy

MyFirstWebService.java //MyFirstWebService.jws

Le Client partir du WSDL

Gnration dun ensemble de classes facilitant lenvoi de message SOAP:


java

org.apache.axis.wsdl.WSDL2Java file.wsdl

Classes gnres:
Pour

les Type Pour les PortType Pour les Binding Pour les Port Pour les Service

Le Client partir du WSDL

Construction du client :
Instancier

un Service Obtenir un Port partir du Service Utiliser les mthodes du Port

Construire les paramtres en fonction des Types

Obtention du WSDL de lexemple


Sous axis, dans un navigateur, mettre ladresse du Web Service suivie de ?WSDL http://localhost:8080/axis/jwspages/MyFirs tWebService.jws?WSDL

Les classes gnres partir de lexemple


MyFirstWebService.java MyFirstWebServiceService.java MyFirstWebServiceLocator.java MyFirstWebServiceBindingStub.java

Un exemple de Client
public class Client { public static void main(String[] args) { try { MyFirstWebServiceService service = new MyFirstWebServiceServiceLocator(); MyFirstWebService port = service.getMyFirstWebService(); String st = ""; int price = port.getPrice(st); System.out.println("Le prix est : "+price); } catch (Exception ex) { ex.printStackTrace(); } } }

Rfrences

SOAP : http://www.w3.org/TR/SOAP/ WSDL : http://www.w3.org/TR/2001/NOTE-wsdl20010315 UDDI : http://www.uddi.org/ Apache SOAP : http://xml.apache.org/soap/