pour développer des applications sous WinDev, nécessiste l'utilisation des bases de données, ce...

16
COURS WINDEV NUMERO 7 14/02/2015 Création d’un Web Service Paramétrage d’un serveur Web, Création du Service Web, Création du client consommateur, Approche XML, SOAP

description

pour développer des applications sous WinDev, nécessiste l'utilisation des bases de données, ce cas pratique permet d'expliquer la méthodes d'accés aux bases de données

Transcript of pour développer des applications sous WinDev, nécessiste l'utilisation des bases de données, ce...

  • 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

    http://www.btsig.org/ Jean-Luc Baptiste Page 1 sur 15

    Cours Windev Numro 7 V E R S I O N 1 9

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

  • Cours Windev Numro 7

    http://www.btsig.org/ Jean-Luc Baptiste Page 2 sur 15

    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 !

  • Cours Windev Numro 7

    http://www.btsig.org/ Jean-Luc Baptiste Page 3 sur 15

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

    dessous :

    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.

  • Cours Windev Numro 7

    http://www.btsig.org/ Jean-Luc Baptiste Page 4 sur 15

    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

  • Cours Windev Numro 7

    http://www.btsig.org/ Jean-Luc Baptiste Page 5 sur 15

    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 :

  • Cours Windev Numro 7

    http://www.btsig.org/ Jean-Luc Baptiste Page 6 sur 15

    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.

  • Cours Windev Numro 7

    http://www.btsig.org/ Jean-Luc Baptiste Page 7 sur 15

    Cliquez sur suivant.

    Ca deviendrait presque lassant ! Cliquez encore sur suivant.

  • Cours Windev Numro 7

    http://www.btsig.org/ Jean-Luc Baptiste Page 8 sur 15

    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 !

    Gardez ce choix si votre

    serveur web est actif

  • Cours Windev Numro 7

    http://www.btsig.org/ Jean-Luc Baptiste Page 9 sur 15

    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.

  • Cours Windev Numro 7

    http://www.btsig.org/ Jean-Luc Baptiste Page 10 sur 15

    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 !

  • Cours Windev Numro 7

    http://www.btsig.org/ Jean-Luc Baptiste Page 11 sur 15

    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 :

  • Cours Windev Numro 7

    http://www.btsig.org/ Jean-Luc Baptiste Page 12 sur 15

    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

  • Cours Windev Numro 7

    http://www.btsig.org/ Jean-Luc Baptiste Page 13 sur 15

    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:

  • Cours Windev Numro 7

    http://www.btsig.org/ Jean-Luc Baptiste Page 14 sur 15

    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 !

  • Cours Windev Numro 7

    http://www.btsig.org/ Jean-Luc Baptiste Page 15 sur 15

    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 !