You are on page 1of 12

Introduction au Web Service

Par
Frank CHANG, Technical Support, 4D Inc.
Note technique 4D-200401-01-FR
Version 1
Date 1 Janvier 2004
Rsum
Ce document constitue un guide pour les dbutants dans l'utilisation des Services Web avec 4me Dimension.
Son principal objectif vise procurer une vue densemble des services Web et de la manire dont cette
technologie permet 4D de jouer un rle majeur dans lintgration et la communication entre applications en
environnement distribu.
4D Notes techniques
Copyright 1985-2004 4D SA - Tous droits rservs
Tous les efforts ont t faits pour que le contenu de cette note technique prsente le maximum de fiabilit possible.
Nanmoins, les diffrents lments composant cette note technique, et le cas chant, le code, sont fournis sans garantie d'aucune sorte.
L'auteur et 4D S.A. dclinent donc toute responsabilit quant l' utilisation qui pourrait tre faite de ces lments, tant l'gard de leurs
utilisateurs que des tiers.
Les informations contenues dans ce document peuvent faire l'objet de modifications sans pravis et ne sauraient en aucune manire engager
4D SA. La fourniture du logiciel dcrit dans ce document est rgie par un octroi de licence dont les termes sont prciss par ailleurs dans la
licence lectronique figurant sur le support du Logiciel et de la Documentation affrente. Le logiciel et sa documentation ne peuvent tre
utiliss, copis ou reproduits sur quelque support que ce soit et de quelque manire que ce soit, que conformment aux termes de cette
licence.
Aucune partie de ce document ne peut tre reproduite ou recopie de quelque manire que ce soit, lectronique ou mcanique, y compris par
photocopie, enregistrement, archivage ou tout autre procd de stockage, de traitement et de rcupration d'informations, pour d'autres buts
que l'usage personnel de l'acheteur, et ce exclusivement aux conditions contractuelles, sans la permission explicite de 4D SA.
4D, 4D Calc, 4D Draw, 4D Write, 4D Insider, 4me Dimension , 4D Server, 4D Compiler ainsi que les logos 4e Dimension, sont des marques
enregistres de 4D SA.
Windows,Windows NT,Win 32s et Microsoft sont des marques enregistres de Microsoft Corporation.
Apple, Macintosh, Power Macintosh, LaserWriter, ImageWriter, QuickTime sont des marques enregistres ou des noms commerciaux de
Apple Computer,Inc.
Mac2Win Software Copyright 1990-2002 est un produit de Altura Software,Inc.
4D Write contient des lments de "MacLink Plus file translation", un produit de DataViz, Inc,55 Corporate drive,Trumbull,CT,USA.
XTND Copyright 1992-2002 4D SA. Tous droits rservs.
XTND Technology Copyright 1989-2002 Claris Corporation.. Tous droits rservs ACROBAT Copyright 1987-2002, Secret
Commercial Adobe Systems Inc.Tous droits rservs. ACROBAT est une marque enregistre d'Adobe Systems Inc.
Tous les autres noms de produits ou appellations sont des marques dposes ou des noms commerciaux appartenant leurs propritaires
respectifs.
1 / 12
Introduction aux services Web
Introduction
Au fur et mesure que se dveloppent les besoins dinteroprabilits et de communication entre applications,
se rpand de plus en plus lusage des services Web en rponse ces besoins. Un service Web est un systme
logiciel conu pour procurer une interaction entre machines au travers dun rseau. Il dispose dune interface
dcrite dans un format analysable par une machine : le WSDL (Web Service Description Language). Les autres
applications interagissent avec les services Web par lintermdiaire de messages SOAP formats en XML et
transports par HTTP. SOAP (Simple Object Access Protocol) est un protocole conu pour changer de
linformation en environnement dcentralis et distribu et constitue un aspect fondamental des services Web.
Ce document constitue un guide pour les dbutants dans l'utilisation des Services Web avec 4
me
Dimension.
Son principal objectif vise procurer une vue densemble des services Web et de la manire dont cette
technologie permet 4D de jouer un rle majeur dans lintgration et la communication entre applications en
environnement distribu.
Quest-ce quun service Web ?
Les services Web sont constitus de ressources logicielles ou composants pouvant tre invoqus par une URI
(Uniform Resource Identifier) Internet. Les services Web respectant le standard se fondent sur XML pour
interagir, ce qui leur permet de converser la demande en recourant un couplage lche. Les services Web sont
constitus dapplications modulaires, autonomes et auto-descriptives pouvant tre publies, localises et
invoques au travers du Web. Les services Web sacquittent de tches qui peuvent aller de simples requtes
jusqu des processus mtiers complexes. Une fois quun service Web est dploy, les autres applications (et
les autres services Web) peuvent le dcouvrir et invoquer automatiquement le service publi.
La dfinition dun service Web peut galement se considrer sous deux aspects :
Aspect technologique
Les services Web accdent des fonctions de programmes au travers de protocoles utilisant XML et HTTP.
Ils procurent un mcanisme pour invoquer des mthodes distance.
Aspect mtier
Un service Web publie une fonctionnalit extraite des processus mtiers dune entreprise et la rend accessible
au travers dInternet.
Bnfices
Interoprabilit
2 / 12
Les services Web fournissent un lien entre applications, services et machines. Des applications utilisant des
technologies diffrentes peuvent ainsi envoyer et recevoir des donnes au travers dun protocole
comprhensible par tout le monde.
Java, Visual Basic, 4D et beaucoup dautres applications peuvent maintenant communiquer entre elles grce aux
services Web.
Indpendance de plate-forme
Comme les services Web utilisent XML et HTTP pour transfrer des donnes, ils liminent les restrictions de
dpendance de plateforme. En grande partie comme un site Web, les services Web peuvent tre publis et
consomms depuis nimporte quelle plateforme. Linformation qui est envoye et reue par lapplication est
structure et transmise sa destination sous forme de document XML.
Une voie aise pour mlanger des systmes existants avec de nouvelles applications et services.
Les services Web reprsentent la manire la plus efficace de partager des ressources et des fonctionnalits entre
les socits. Ils rduisent le temps de ralisation en permettant de tirer directement parti de services existants.
Du ct mtier, les services Web acclrent la collaboration entre socits, fournisseurs, partenaires et clients et
tendent la porte de votre offre.
Il peut par exemple exister un service Web pour la rservation dhtel, lachat de billet davion et la location de
voiture.Vous pouvez alors construire une application unique qui permet lutilisateur de constituer son achat
ou sa rservation de voyage sous forme d'un service intgr, tout-en-un, accessible au travers dune seule
application.
Voici un chantillon de services Web commerciaux dj disponibles :
Fed-EX le service Web Fed-EX offre le suivi de vos envois.
Amazon le service Web dAmazon fournit la possibilit de rechercher un livre ou un film.
BabelFish le service Web BabelFish propose une traduction dans diffrentes langues.
Vous pouvez trouver quelques exemples dintgration de ces services Web dans des applications 4D ici :
http://www.4d.com/2003/integration.html
3 / 12
http://www.4d.fr/support/learning/databasesample2003.html#webservices
Pour une liste plus complte des services Web disponibles, consultez le site :
http://www.xmethods.net/
Rduire le temps et le cot dimplmentation
Le processus de ralisation peut prendre du temps pour certaines solutions. Beaucoup de services Web tant
dj disponibles sur Internet, vous gagnerez du temps et de largent implmenter une fonctionnalit qui existe
dj et se trouve propose sous la forme de service Web par une autre socit.
Indpendance de langage
Les services Web peuvent tre implments et intgrs avec quasiment nimporte quel langage.
Une amlioration globale de lexprience du consommateur
Les services Web se dgagent du concept de web interactif pour se diriger vers le web programmable. Les
restrictions daffichage et de navigation dues lHTML peuvent alors tre vites. Les dveloppeurs peuvent
maintenant proposer une navigation plus intuitive et riche afin d'amliorer lexprience de lutilisateur final.
Solutions possibles
Voici quelques exemples de solutions pouvant tre proposes sous la forme de service Web.
Demande dinformation sur un vol Ce peut tre un service retournant lheure de dpart et darrive du vol.
Service de rservation (pour les htels, restaurants, transports). Permet lutilisateur de rserver une
chambre dhtel et dacheter des billets de transport ou mme deffectuer une rservation pour un restaurant.
Blogging - (Web Log) Etant donn que le texte est un type de donne standard, vous pouvez crer un service
Web permettant nimporte qui de partager des notes et des commentaires.
Enchre les enchres interactives en direct offrent la possibilit lutilisateur de suivre lvolution du cours
dun objet.
La vente de livres, billets et dautres produits la vente en ligne est la cl du commerce moderne. Les services
Web peuvent aider acclrer normment ces processus.
Cartographie et aide la navigation - tant donn quun service Web peut transfrer la plupart des types de
donnes, vous pouvez maintenant crer un service qui fournit une carte sous la forme dune image et une aide
la navigation la demande dune manire particulirement efficace.
4D-4D ou 4D vers dautres applications les services Web peuvent tre utiliss la place de plug-ins de
connectivit comme 4D Open ou 4D ODBC.
ARCHITECTURE
4 / 12
Les services Web reposent sur un petit nombre de spcifications, en voici les deux principales :
Simple Object Access Protocol (SOAP)
SOAP dcrit le mcanisme de message format en XML qui permet le transfert dinformation structure entre
des systmes htrognes. Le protocole dfinit quune enveloppe de message SOAP comprend une entte
(Header) et un corps (Body). Lentte permet dajouter des informations optionnelles (mta-donnes) relatives
au message. Le corps contient les donnes applicatives qui doivent tre dlivres destination. Le protocole
SOAP ajoute une couche entre lapplication et le mcanisme de transport sous-jacent (habituellement HTTP)
charg de dlivrer le message. Nous prsenterons les bases de SOAP un peu plus loin dans cette note technique.
Web Services Description Language (WSDL)
WSDL est une description XML des services proposs par un service Web. Il dcrit les oprations et les
paramtres dentre et de sortie associs ces oprations.
Un WSDL peut tre utilis pour gnrer automatiquement du code proxy dans 4D afin dappeler un service
Web. Lillustration ci-dessus prsente un WSDL gnr par 4D. Comme vous pouvez le constater, ce fichier
dcrit les mthodes publies. La seule mthode disponible est Reservation_LivreRequest . Cette mthode
attend trois paramtres de type chane et entier, ceci tant prcis dans l'lment <message> d'attribut
Reservation_LivreRequest . La valeur retourne par la mthode est de type Chane, comme lindique
l'lment d'attribut Reservation_LivreResponse .
5 / 12
Le WSDL fournit toute linformation ncessaire un client pour appeler les services offerts par le serveur. En
utilisant 4D comme client de service Web, le WSDL sera analys et une mthode proxy sera gnre pour
raliser lappel spcifique vers ce service.
On appelle dcouverte le processus d'analyse du WSDL d'un service Web.
SOAP
Il sagit de la spcification qui dfinit le format XML des messages. Un message SOAP se constitue dun
fragment XML bien-form inclus dans un couple dlments SOAP. Vous pourriez imprimer un message
SOAP, le faxer un utilisateur distant, ou le saisir au clavier sur la machine distante sans enfreindre le standard
SOAP. Vous transmettrez plus vraisemblablement un message SOAP grce HTTP. Il nexiste pas d'obligation
dans le standard concernant le mode de transport dun message : SOAP ne se proccupe pas de la couche de
transport. Quoique le standard SOAP ne pr-suppose pas de mthode de transport, il sagit pratiquement
toujours dHTTP.
Les styles de service Web
Il existe deux types de service Web : style RPC (Remote Procedure Call) et DOC (Document).
Style RPC
Appel de Procdure distance (RPC) Ces services Web sont synchrones, les clients invoquent le service Web
en lui passant des paramtres et attendent que la mthode retourne des valeurs avant de poursuivre. Les
services Web de style RPC sont troitement coupls car les paramtres dentre et de sortie sont contenus
explicitement dans le corps du message SOAP (SOAP Body). Ces paramtres sont dcrits dans le WSDL.
Style Doc
Les services Web de style DOC sont faiblement coupls et orients document. Le client envoie ses paramtres
au service sous forme de document XML, au lieu dune liste finie de paramtres typs. la diffrence des
services Web de style RPC, les services Web de style DOC ne suivent pas un schma requte/rponse. Le
service Web reoit un document entier, lanalyse et il peut ou non retourner un message de rponse.
Les documents XML changs peuvent tre dcrits dans le WSDL.
Le corps du message SOAP en style DOC comprend un ou plusieurs documents XML. Le protocole ne dfinit
aucune contrainte quant la structure que doit respecter le document, celle-ci tant totalement gre par la
couche applicative. Les services Web de style DOC suivent un processus asynchrone.
SOAP avec 4D
A partir de la version 2003, 4
me
Dimension apporte vos applications le support direct des services Web, tant
en publication (aspect serveur) qu'en consommation (aspect client). Quoiqu'il ait t plusieurs fois fait mention
d'XML dans cette note, vous n'avez pas besoin de connatre XML pour utiliser les services Web avec 4
me
Dimension. L'interaction entre 4D et XML s'effectue en interne. Cela signifie que le dveloppeur n'aura grer
les services Web qu'au plus haut niveau (Interface).
4D serveur SOAP
6 / 12
La publication d'un service Web avec 4
me
Dimension s'effectue simplement en fixant des options dans les
proprits de la mthode. Une fois qu'un service Web a t publi, il peut tre trouv et dcouvert par n'importe
quelle autre application.
Imaginez que vous ayez dj la fonction suivante qui effectue une rservation de livre dans votre base de
donnes 4D.

C_TEXTE($1) ` Auteur
C_TEXTE($2) ` Titre
C_ENTIER LONG($3) ` Member ID
C_TEXTE($0) ` Confirmation Message
CHERCHER([Emprunteur];[Emprunteur]ID_Emprunteur=$3)
Si (Enregistrements trouves([Emprunteur]))
CHERCHER([Librairie];[Librairie]Nom_Auteur=$1;*)
CHERCHER([Librairie]; & ;[Librairie]Titre=$2;*)
CHERCHER([Librairie]; & ;[Librairie]Quantit_en_Stock>0)
Si (Enregistrements trouves([Librairie])>0)
[Librairie]Quantit_en_Stock:=[Librairie]Quantit_en_Stock-1
STOCKER ENREGISTREMENT([Librairie])
CREER ENREGISTREMENT([Rservation])
[Rservation]ID_Livre:=[Librairie]ID_Livre
[Rservation]Rserv_par:=$3
[Rservation]ID_rservation:=[Rservation]ID_Livre+Sous chaine([Rservation]Rserv_par;1;3)
STOCKER ENREGISTREMENT([Rservation])
$0:="Rservation n "+[Rservation]ID_rservation+" faite."
Sinon
$0:="Le livre demand n'est pas en stock. Merci de revrifier plus tard."
Fin de si
Sinon
$0:="Votre ID d'abonn n'est pas valide. Merci de ressayer."
Fin de si
Avant de publier votre mthode en tant que service Web, il est intressant d'inclure une description indiquant la
manire d'utiliser cette mthode. La description de la mthode se rdige dans la fentre de commentaire de
mthode de l'Explorateur.
7 / 12
Vous pouvez rendre cette fonction disponible pour d'autres applications (Java, Excel, ColdFusion, Oracle, etc.)
en la publiant en tant que service Web. Pour autoriser le serveur rpondre une requte de service Web,
ouvrez les prfrences de la base de donnes et cochez "Autoriser requtes Web Services".
Cette option n'a besoin d'tre active qu'une seule fois. L'tape suivante consiste publier la mthode comme
service Web. Depuis l'diteur de mthode (ditant la mthode que vous dsirez rendre disponible), choisissez
les proprits de la mthode depuis le menu Mthode. Cochez "Offert comme Web Service" pour permettre
une requte de service Web vers cette mthode. Cochez "Publiez dans WSDL" pour permettre un client de
service Web de dcouvrir cette mthode.
8 / 12
La dernire tape consiste dmarrer le serveur Web pour rendre possible l'accs au travers d'Internet.
4D comme client SOAP
Souscrire un service Web depuis 4
me
Dimension se fait facilement en ayant recours l'assistant de service
Web. Dans la plupart des cas, l'assistant se rvlera suffisant pour vous permettre d'utiliser le service Web.
L'assistant de service Web permet aux dveloppeurs 4D de dcouvrir rapidement un service Web et de crer une
mthode SOAP au sein de leur application 4D sans avoir besoin de se pencher sur l'analyse bas-niveau des
messages XML.
La cration d'une mthode cliente de service Web sera enregistre comme une mthode projet (cf. ci-dessous).

` proxy_Reservation_Livre
` url: 127.0.0.1/4dwsdl
` Mthode gnre automatiquement par l'assistant Web Services de 4D.
`
9 / 12
` ----------------------------------------------------------------
C_TEXTE($1)
C_TEXTE($2)
C_ENTIER LONG($3)
C_TEXTE($0)
FIXER PARAMETRE WEB SERVICE("FourD_arg1";$1)
FIXER PARAMETRE WEB SERVICE("FourD_arg2";$2)
FIXER PARAMETRE WEB SERVICE("FourD_arg3";$3)
APPELER WEB SERVICE("http://127.0.0.1/4DSOAP/";"A_WebService#Reservation_Livre";
"Reservation_Livre";"http://www.4d.com/namespace/default";Web Service dynamique )
Si (OK=1)
LIRE RESULTAT WEB SERVICE($0;"FourD_arg0";*) ` Libration de la mmoire aprs retour de la valeur.
Fin de si
Une fois qu'une mthode de service Web a t dcouverte et cre dans votre application 4D, vous pouvez
l'appeler de la mme faon qu'une mthode projet ou qu'une commande 4D.
$result:=proxy_Reservation_Livre (vNomAuteur;vTitreLivre;vIDMembre)
Types de donnes supports :
Boolen Tableaux
Blob - Boolen
Date - Date
Entier - Entier
Entier long - Entier long
Rel - Rel
Chane - Chane
Texte - Texte
Temps
Pour dclarer les types des paramtres d'entre et de sortie, vous pouvez utiliser la commande Compiler ou la
commande DECLARATION SOAP. Voici quelques exemples :
Exemple 1 : Cet exemple montre comment dclarer un paramtre d'entre et de sortie pour une mthode grce
aux commandes du compilateur. Dans ce cas, vous pouvez dclarer plusieurs entres, mais vous tes limits
un seul retour.
` Mthode WebService :
C_TEXTE($1) ` Paramtre d'entre - type Texte
C_BLOB($0) ` Paramtre de retour - type Blob
Exemple 2 : Cet exemple vous montre comment dclarer un paramtre d'entre et de retour en utilisant la
commande DECLARATION SOAP. Cette commande dfinit une variable process 4D et la lie un paramtre
d'entre ou de sortie de la mthode SOAP. L'avantage de l'emploi de cette commande pour dclarer vos variables
consiste vous permettre de disposer de plusieurs paramtres d'entre ET de sortie.
10 / 12
` Mthode WebService :
DECLARATION SOAP(vtInput1;Est un texte;SOAP entre;"TextInputVar1")
DECLARATION SOAP(vtInput2;Est un texte ;SOAP entre ;"TextInputVar2")
DECLARATION SOAP(vNumOutput;Est un entier long ;SOAP sortie ;"NumberOutput")
DECLARATION SOAP(vblobOutput;Est un BLOB ;SOAP sortie ;"BlobOutput")
Note : dclarer un paramtre d'entre avec la commande DECLARATION SOAP requiert que la variable soit dclare au sein d'une
mthode Compiler_Web. Voici comment devrait se prsenter dans la mthode Compiler_Web la variable utilise ci-dessus :
` Mthode Compiler_Web :
C_TEXTE(vtInput1)
C_TEXTE(vtInput2)
C_ENTIER LONG(vNumOutput)
C_BLOB(vblobOutput)
SCURIT
Chaque mthode dans 4D dispose de ses propres options de publication comme service Web. Cela signifie que
la mthode ne sera pas automatiquement publie, il faudra que vous le dcidiez.
Le fait que les services Web utilisent le protocole HTTP pour transfrer de linformation les rend faciles
vhiculer au sein de tunnels au travers des pare-feux dentreprise qui sont normalement configurs pour laisser
passer le trafic HTTP. Cependant, cette facult entrane une ncessit accrue de contrle et dauthentification
des utilisateurs.
Authentification HTTP
(Ncessite le nom de lutilisateur et le mot de passe pour chaque requte)
Lauthentification HTTP procure une scurit basique sous la forme du transfert du nom de lutilisateur et de
son mot de passe vers le serveur. Dans 4D, cette authentification seffectue dans la mthode base Sur
authentification Web.
Utiliser le systme de mots de passe 4D
1) ne crez pas de mthode base Sur authentification Web.
2) Dans les prfrences, activez Utiliser mots de passe et cochez Inclure les mots de passe 4D.
Utiliser la mthode Sur authentification Web
Voici un exemple de ce quoi devrait ressembler la mthode Sur authentification Web.
C_TEXTE($1;$2;$3;$4;$5;$6)
C_BOOLEEN($0)
Si (Est une requete SOAP)
Si( SiUtilisateurAutorise($5;$6))
11 / 12
$0:=Vrai
Sinon
$0:=Faux
Fin de si
Fin de si
SSL (HTTPS)
Comme SOAP transmet simplement un message au-dessus dHTTP, ce message peut tre encrypt et scuris
par SSL. SSL constitue actuellement la mthode la plus sre de scurisation des transactions.
En utilisant SSL, toutes les donnes qui sont changes entre le client du service Web et le serveur sont
encryptes. Cela signifie que si vous devez transmettre lID de lutilisateur et son mot de passe dans une
requte SOAP, vous pouvez vous assurer que ces donnes seront scurises, tout comme lintgralit du
message SOAP.
Supposez que vous soumettiez des informations prives comme un numro de scurit sociale ou de carte de
crdit. SLL vous permet de protger cette information de toute tentative dintrusion tout au long du transport.
12 / 12

You might also like