Vous êtes sur la page 1sur 15

TP 13 Cration dun Web-Service

Tp WinDev Numro 13
Objectifs :

Cration dun WebService


Paramtrage dun serveur Web,
Cration du Service Web,
Cration du client consommateur,
Approche XML, SOAP

Outils :
Un serveur dapplication
Ce TP a t cr avec WinDev 18
Le but de cet exercice est de vous faire pntrer dans le monde merveilleux et surtout la mode des WebServices. En effet lheure actuelle est rpartition des charges et des serveurs, cest dans ce contexte quinterviennent
les Web-Services. Mais dabord quelques dfinitions :

1. Les Webservices :
Dans ce chapitre, nous allons vous prsenter les WebServices : c'est--dire pourquoi les WebServices ont t
crs et quelle demande rpond cette nouvelle technologie.
Nous verrons ensuite le fonctionnement d'un WebService
1.1. Prsentation :
Auparavant pour mettre en place des applications distribues, il fallait utiliser des technologies assez
complexes telles que COM. Certes ces technologies taient abordables pour un dveloppeur, mais il fallait que le
dveloppeur passe du temps tablir un protocole de transmission.
Les WebServices sont alors apparus pour faciliter tout d'abord la tche des dveloppeurs. Avant toute chose,
Microsoft, contrairement aux ides reues, n'a pas cr les WebServices mais Microsoft a particip avec de grandes
entreprises telles que IBM, SUN ... la standardisation des WebServices. Ceci montre bien que la technologie des
WebServices est une technologie trs jeune, ce qui bien sr peut tre un inconvnient pour son intg ration au sein
des entreprises. Mais les plus grands spcialistes prvoient une explosion de l'utilisation des WebServices toutes
technologies confondues (.NET, Java ...).
1.2. Fonctionnement des WebServices
L'un des plus gros avantages des WebServices est qu'ils reposent sur des protocoles standardiss. Cela
permet que cette technologie soit exploitable par de nombreux langages.
En effet, les WebServices se reposent sur des protocoles tels que XML et http, donc SOAP. Pour vulgariser ce
dernier protocole, SOAP permet de faire circuler du XML via du HTTP. Donc lorsqu'on interroge un WebService,
les donnes sont transmises en XML via le port 80 (HTTP). Rien de plus simple ensuite pour le dveloppeur de
traiter l'information reue.
A l'heure actuelle, la quasi totalit des langages informatiques supporte ces protocoles : ils disposent en effet de
fonctions pour lire un fichier XML (Parseur XML). Donc un WebService peut tre utilis via le langage Perl, PHP,
Python, Dot Net, Cobol ...
1.3 Pourquoi les WebServices ?
Comment faire communiquer des programmes tournant sur des machines distantes, des OS diffrents,
dvelopps par des compagnies diffrentes ? Comment dans ce cas de figure faire du remoting ? A moins d'utiliser des
nombreux ponts qui existent, c'est quasi impossible. Bien videmment, des bauches de solutions ont t apportes et
ont fait leur preuve (CORBA, COM, DCOM, ...)
Les WebServices sont eux universels et de plus le HTTP passe sans peine par un firewall ...

Jean-Luc Baptiste

www.btsig.org

Page 1 / 15

TP 13 Cration dun Web-Service

L'utilisation d'un WebService peut se diviser en diffrentes tapes :


1.
On demande au WebService son contrat WSDL (Web Service Description Language) : c'est un document
formalis (XML, W3C) qui spcifie quels sont les mthodes pouvant tre appeles sur ce WebService.
2.
Il le retourne, et on mmorise comment il marche (mthodes, format des appels, paramtres, valeurs
retournes, etc...). Pour cela, on cre ce que l'on appelle en Java un classe stubs (souche). En C# et sous .NET, le terme
consacr est classe proxy : gnr par l'outil wsdl.exe, c'est une classe qui prsente les mmes mthodes que le
WebService, et qui permet de les appeler de manire synchrone ou asynchrone.

3.
A l'utilisation : on appelle la mthode (SOAP+XML) dsire conformment au format prcdemment acquis.
Et ceci, tout simplement en instanciant et en utilisant ses mthodes. C'est transparent.
4.
On rcupre le rsultat de la mthode, ou une erreur. Je vous souhaite le rsultat, mais une erreur sera leve si
le schma WSDL du WebService a chang !

Les tapes de l'utilisation d'un WebService

Jean-Luc Baptiste

www.btsig.org

Page 2 / 15

TP 13 Cration dun Web-Service

Les WebServices passant (sauf si vous en dcidez autrement) par http, peuvent utiliser d'autres protocoles que SOAP
pour transporter des donnes. Mais ceci implique des restrictions, nonces ci-dessous :
Quoi
Transporter des types primitifs (Integer, Long, String, ...)

POST

GET

SOAP

Transporter des numeration


Transporter des tableaux
Objets
Structures
DataSets, fichiers XML, tableau de n'importe quoi
Passage par rfrence
NB : GET et POST sont les mthodes de passage de valeur propres HTTP.

2. Soap
2.1 Prsentation
Nous allons dcrire dans ce chapitre le protocole SOAP et ses concurrents (COM, CORBA ...). En effet,
comme nous l'avons vu dans le chapitre prcdent, la technologie des WebServices repose en autres sur le protocole
SOAP.
SOAP est un protocole adopt par le Consortium W3C. Le Consortium W3C cre des standards pour le
Web : son but est donc de crer des standards pour favoriser l'change d'information. Un standard veut tout
simplement dire qu'il peut tre accessible tout le monde, et donc qu'il n'est pas propritaire. Ce qui a pour
consquence qu'un protocole standard contrairement un protocole propritaire pourra tre utilis sous n'importe
quelle plateforme.
Les spcifications du protocole SOAP sont disponibles l'adresse suivante :
http://www.w3.org/TR/SOAP/
SOAP veut dire : Simple Object Access Protocol. Si l'on voulait traduire cette dfinition en franais cela donnerait
Protocole Simple d'Accs aux Objets. En effet, le protocole SOAP consiste faire circuler du XML via du http sur le
port 80. Cela facilite grandement les communications, car le XML est un langage standard et le port utilis est le port
80, qui ne pose donc pas de problmes pour les firewalls de l'entreprise, contrairement d'autres protocoles.
Tout comme la technologie des WebServices, le protocole SOAP est trs jeune. Le protocole SOAP a t cre en
septembre 98, avec la version 0.9, par trois grandes entreprises : Microsoft, UserLand et DevelopMentor. lBM n'a
particip au protocole SOAP qu' partir de la version 1.1 en avril 2000. C'est cette mme anne que SOAP a t
soumis au W3C.
Depuis septembre 2000, SOAP l. l est en refonte complte pour donner jour la version 1.2 avec un g roupe de
travail de plus de 40 entreprises ! Parmi ces 40 entreprises, on retrouve bien sr Microsoft, IBM mais aussi HP, Sun,
Intel ...)
2.2 Les autres protocoles... :
Jusqu' la cration du protocole SOAP, trois grands protocoles taient utiliss : COM et DCOM :
Les protocoles COM (Component Object Model) et DCOM (Distributed Component Object Model) ont t crits par
Microsoft et permettaient de faciliter la communication entre les composants Windows. II y a eu un portage de COM
sous Unix, mais ce protocole n'a t utilis par que par des plateformes Windows et pour l'Intranet.
Les protocoles COM et DCOM n'taient utiliss la plupart du temps que pour l'Intranet, car le port d'coute des
communications tait statique : c'est--dire qu'on ne pouvait pas changer ce port et cela posait de gros problmes de
scurit pour les entreprises qui voulaient utiliser ce protocole pour communiquer entre elles.
2.2.1. CORBA :
CORBA (Common Object Request Broker Architecture) a t cr par l'OMG (Object Management Group)
pour faciliter la communication sous n'importe quelle plateforme. Ceci a t ralis via un langage neutre de
dfinition d'interface appel IDL (Interface Definition Language) et un protocole commun de transport des donnes.
Malheureusement, les spcifications de ce protocole sont trs denses et l'architecture est donc au final trs lourde
dployer.
Jean-Luc Baptiste

www.btsig.org

Page 3 / 15

TP 13 Cration dun Web-Service

2.2.2 RMI :
RMI ( Remote Method Invocation ) est un protocole trs simple a utiliser et trs efficace mais limit
lenvironnement Java

3. La mise en uvre
La prsentation tant faite passons laction !
Pour pouvoir tester le WebService sur votre machine de dveloppement il va vous falloir un serveur Web en
fonctionnement.
Je vais partir du postula que vous avez un serveur web en ligne.
Vous pouvez crer une machine virtuelle avec une version de Windows et dessus y installer le serveur d'application
WebDev - 10 connexions

Cration du Web Service qui sera consomm (cot serveur)


Bon, on y va ?
Ok, cest parti !
Crez un nouveau projet : Webservice - Serveur. Ce projet ne contiendra aucune analyse, ni aucune fentre. Un
Webservice tant comparable une collection de procdures les fentres ne sont daucunes utilits.
Comme je viens de vous le dire un WebService est un ensemble de procdures ou de classes. Dans cet exercice nous
allons utiliser les procdures globales. Crez en une nomme Hello

Le code est le suivant :

Comme vous le voyez : on se fatigue ! En fait pour ce premier exercice on se contente dillustrer les principes donc je
vous prie de mexcuser pour la faiblesse de lillustration !!! Vous ferez mieux plus tard ;-)))
Vous venez de le comprendre que lorsquun client consommateur appellera la mthode Hello du WebService en
passant un paramtre (lenom) il aura une chane de caractre Coucou + Lenom comme rponse. Cest puissant,
non ?!!!

Jean-Luc Baptiste

www.btsig.org

Page 4 / 15

TP 13 Cration dun Web-Service

Bon, si je vous disais que le WebService est fini, vous le croiriez ? et pourtant cest vrai !. Ah non, il reste le dployer,
on va le faire de suite :
Allez dans le menu Atelier puis WebServices ( SOAP, .net, J2EE) puis Gnrer un service Web partir de ce
projet
Lassistant se lance:

Slectionnez les lments comme ci-dessus et cliquez sur le bouton suivant.

Jean-Luc Baptiste

www.btsig.org

Page 5 / 15

TP 13 Cration dun Web-Service

Cliquez sur suivant.

Ca deviendrait presque lassant ! Cliquez encore sur suivant.


Jean-Luc Baptiste

www.btsig.org

Page 6 / 15

TP 13 Cration dun Web-Service

Gardez ce choix si votre


serveur web est actif

On continue cliquer sur suivant

Jean-Luc Baptiste

www.btsig.org

Page 7 / 15

TP 13 Cration dun Web-Service

Comme vous le voyez, pour des raisons de test, jai dj implment une installation sur www.btssio.org. Vous risquez
de ne pas un affichage identique. Je vous laisse configurer le profil de dploiement et vous attends un peu plus loin !

Linstallateur vous propose de slectionner les lments du projet, ne changez rien et passez lcran suivant.
Jean-Luc Baptiste

www.btsig.org

Page 8 / 15

TP 13 Cration dun Web-Service

Comme vous pouvez le lire le Web Service est prt tre dployer, passons lcran suivant.

Ici, vous indiquez o sera le fichier de log pour analyser les frquentations (ou consommations) de votre Web Service.
Sur lcran suivant on vous indique que lassistant toutes les informations pour clturer la cration du Web Service.
Cliquez donc sur Terminer.

Jean-Luc Baptiste

www.btsig.org

Page 9 / 15

TP 13 Cration dun Web-Service

Et voil ! Cest fini. Le web Service est termin et install sur un serveur Web. Il est donc prt tre consomm !
Fermez le projet, nous allons passer ltape 2, la cration du programme consommateur de Web Service
Prenez 5 minutes de pause, la cafetire fume !

Jean-Luc Baptiste

www.btsig.org

Page 10 / 15

TP 13 Cration dun Web-Service

Consommation du Web Service.


Maintenant, le morceau de bravoure : le client ou consommateur du WebService.
Nous allons crer le client.
Fichier ->Nouveau ->Projet.
Vous nommerez ce projet WebService-Client. Il nutilisera pas danalyse.
Crez une fentre nomme Dpart qui ressemblera ceci :

Elle est hyper minimaliste, mais va nous permettre dillustrer la consommation du Web Service.
Nommez le champ texte Prnom : Sprnom
Nommez le bouton : appel
Nous allons maintenant intgrer la dfinition du service Web lintrieur de ce projet, pour cela :
Cliquez sur le menu Atelier puis WebServices ( SOAP, .net, J2EE), puis sur Importer et utiliser un WebService
dans ce projet
Lassistant dimportation se lance par la fentre suivante :

Jean-Luc Baptiste

www.btsig.org

Page 11 / 15

TP 13 Cration dun Web-Service

Cliquez sur suivant.

Jean-Luc Baptiste

www.btsig.org

Page 12 / 15

TP 13 Cration dun Web-Service

On fait pointer le chargement de la description sur ladresse du serveur web sur lequel nous avons install le Web
Service et ensuite cliquez sur suivant

Si tout se passe bien vous devriez voir ceci.

Jean-Luc Baptiste

www.btsig.org

Page 13 / 15

TP 13 Cration dun Web-Service

Un petit coup dans lexplorateur de projet vous permettra de dcouvrir lintgration du Web Service.
Maintenant nous allons donner vie tout a, voici le code du bouton appel:

Explications :
Vous vous rappelez que la procdure Hello du WebService neffectue quun renvoi dune chane texte contenant
coucou + le Prnom pass en paramtre. Donc logiquement en cliquant sur le bouton de la fentre nous devrions
avoir une fentre dinformation contenant la chane coucou + Le prnom
Dans le code nous initialisons 2 variables :
Une nomme reponse est de type Webservice_Serveur.HelloResponse. Elle contiendra le retour du Web Service.
Une autre nomm parametre qui est du type Webservice_Serveur.Hello. Elle contiendra le paramtre envoyer.
parametre.lenom=SPrnom contiendra le prnom saisi dans la zone de texte SPrnom.
reponse=Webservice_Serveur.Hello(parametre). Ici, le type rponse va recevoir le retour du web service.
Info(reponse.HelloResult). Maintenant, nous faisons afficher la zone HelloResult du type reponse.
Ca va ? Vous ntes pas au fond du trou ?
Bon alors testons !

Jean-Luc Baptiste

www.btsig.org

Page 14 / 15

TP 13 Cration dun Web-Service

Si vous cliquez sur le bouton Appel, vous devriez voir ceci :

Et voil ! Le tour est jou ! Vous venez de faon simple et ludique de crer et manipuler des web services ! Trop fort !

Jean-Luc Baptiste

www.btsig.org

Page 15 / 15

Vous aimerez peut-être aussi