Vous êtes sur la page 1sur 16

COURS WINDEV NUMERO 7

14/02/2015

Cration dun Web Service


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

Cours Windev Numro 7

Cours Windev Numro 7


VERSION 19

Outils :
Un serveur dapplication
Ce TP a t cr avec WinDev 19
Le but de cet exercice est de vous faire pntrer dans le monde merveilleux et surtout la mode des
Web-Services. 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 quIBM, 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 intgration 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 ...

http://www.btsig.org/

Jean-Luc Baptiste

Page 1 sur 15

Cours Windev Numro 7

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 ...

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


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.

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.

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.

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 !

http://www.btsig.org/

Jean-Luc Baptiste

Page 2 sur 15

Cours Windev Numro 7

Les tapes de l'utilisation d'un WebService

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 cidessous :

Quoi

POST

GET

SOAP

Transporter des types primitifs (Integer, Long, String, ...)


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.
http://www.btsig.org/

Jean-Luc Baptiste

Page 3 sur 15

Cours Windev Numro 7


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 cr 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
groupe 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.

2.2.2 RMI :
RMI ( Remote Method Invocation ) est un protocole trs simple a utiliser et trs efficace mais limit
lenvironnement Java
http://www.btsig.org/

Jean-Luc Baptiste

Page 4 sur 15

Cours Windev Numro 7

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 postulat 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

CREATION DU WEB SERVICE QUI SERA CONSOMME (COTE 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 :

http://www.btsig.org/

Jean-Luc Baptiste

Page 5 sur 15

Cours Windev Numro 7

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 ?!!!
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.

http://www.btsig.org/

Jean-Luc Baptiste

Page 6 sur 15

Cours Windev Numro 7

Cliquez sur suivant.

Ca deviendrait presque lassant ! Cliquez encore sur suivant.

http://www.btsig.org/

Jean-Luc Baptiste

Page 7 sur 15

Cours Windev Numro 7

Gardez ce choix si votre


serveur web est actif

On continue cliquer sur suivant

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 !

http://www.btsig.org/

Jean-Luc Baptiste

Page 8 sur 15

Cours Windev Numro 7

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

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

http://www.btsig.org/

Jean-Luc Baptiste

Page 9 sur 15

Cours Windev Numro 7

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.

Et voil ! Cest fini. Le web Service est termin et install sur un serveur Web. Il est donc prt tre
consomm !

http://www.btsig.org/
15

Jean-Luc Baptiste

Page 10 sur

Cours Windev Numro 7

Fermez le projet, nous allons passer ltape 2, la cration du programme consommateur de Web
Service
Prenez 5 minutes de pause, la cafetire fume !

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 :

http://www.btsig.org/
15

Jean-Luc Baptiste

Page 11 sur

Cours Windev Numro 7

Cliquez sur suivant.

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

http://www.btsig.org/
15

Jean-Luc Baptiste

Page 12 sur

Cours Windev Numro 7

Si tout se passe bien vous devriez voir ceci.

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:

http://www.btsig.org/
15

Jean-Luc Baptiste

Page 13 sur

Cours Windev Numro 7

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.

a va ? Vous ntes pas au fond du trou ?


Bon alors testons !

http://www.btsig.org/
15

Jean-Luc Baptiste

Page 14 sur

Cours Windev Numro 7

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 !

http://www.btsig.org/
15

Jean-Luc Baptiste

Page 15 sur