REPUBLIC OF CAMEROON
Peace – Work – Fatherland Département de Mathématiques et Informatique
Department of Mathematics and Computer Science
UNIVERSITÉ DE DSCHANG BP 67, Dschang (Cameroun)
UNIVERSITY OF DSCHANG Tél. : (237) 243 69 15 09
Scholae Thesaurus Dschangensis Ibi Cordum E-mail : faculte.sciences@univ-dschang.org
IN4, 2018-2019
RSD57
Table des matières
Introduction ......................................................................................................................... 6
I. Applications web. ........................................................................................................ 7
I.1. Définition .................................................................................................................. 7
I.2. Architecture des applications web ............................................................................ 7
a. Architecture en couche ou 3-tiers......................................................................... 7
b. Architecture 2-tiers............................................................................................... 9
II. Les web services ...................................................................................................... 10
II.1. Définition .............................................................................................................. 10
II.2. Intérêt d’un web service .........................................................................................11
II.3. Caractéristiques d’un web service ..........................................................................11
II.4. Architecture d’un web service ............................................................................... 12
II.5. Fonctionnement des services Web ........................................................................ 13
II.6. Description en couche des services Web ............................................................... 14
III. Le protocole SOAP ................................................................................................... 16
III.1. Historique et définition ....................................................................................... 16
a. Historique ........................................................................................................... 16
b. Définition ........................................................................................................... 16
III.2. Principe de SOAP ................................................................................................ 17
III.3. Modèle d’échange de message SOAP ................................................................. 17
III.4. Rélation avec XML .............................................................................................. 18
III.5. Format d’un message SOAP ................................................................................ 18
a. L’enveloppe SOAP ............................................................................................. 19
b. L’en-tête SOAP .................................................................................................. 20
c. Le corps du message SOAP (Body) ................................................................... 20
d. Message ‘Fault’ .................................................................................................. 22
IV. Avantages et inconvénients du SOAP.................................................................... 23
a. Avantages ........................................................................................................... 24
b. Inconvénients ..................................................................................................... 24
V. Mise en œuvre. .......................................................................................................... 24
Conclusion ........................................................................................................................ 43
Référence .......................................................................................................................... 44
NOMS CYCLES
b. Architecture 2-tiers
L’architecture 2-tiers (aussi appelé architecture 2-tier, le mot tiers
signifiant rangée en anglais) caractérise les systèmes clients / serveurs pour
Inconvénients
Charge importante du poste client qui réalise l’ensemble des
traitements applicatifs
Maintenance et mises à jour difficiles à gérer
Conversation entre client et serveur est assez bruyante
Ces limites proviennent de type du client : client lourd
b. Définition
SOAP (simple Object Access Protocol) est un protocole de
communication basé sur XML, pour permettre aux applications de
s’échanger des informations via http. Il permet ainsi l’accès aux services
web et l’interopérabilité des applications à travers le web. SOAP repose
exclusivement sur XML pour fournir des services de messagerie.
Les applications communiquent grâce au RPC (remote procedure call)
entre les objets. Mais http n’a pas été conçu pour ça. Or RPC ne résout pas
les problèmes de sécurité et de compatibilité car certain firewall et proxy
bloque ce genre de trafic. L’utilisation de la communication via http reste
incontournable car il est supporté par tous les navigateurs et serveurs. Ainsi
donc SOAP a été créé pour :
pallier à ce manque de sécurité et compatibilité
a. L’enveloppe SOAP
Un message SOAP est un document XML qui consiste en une
enveloppe mandataire SOAP, un header optionnel et un body. Un message
SOAP contient :
L’enveloppe est l’élément de base du document XML, qui représente
le message ;
Le header est un mécanisme générique qui permet d’ajouter des
fonctionnalités à un message SOAP de manière décentralisé sans
agrément entre les parties qui communiquent. C’est ici qu’il est
indiqué si le message est mandataire ou optionnel ;
Le body est un container pour les informations mandataires à
l’intention du récepteur du message. SOAP définit un élément pour
le body, qui est l’élément ‘Fault’ utilisé pour reporter les erreurs.
Les règles de grammaires sont les suivantes :
Enveloppe :
Le nom de l’élément est ‘envelope’ ;
L’élément doit être présent dans un message SOAP ;
b. L’en-tête SOAP
SOAP fournit un mécanisme permettant d ‘étendre un message d’une
manière modulaire et décentralisée sans mécanisme d’apprentissage entre les
deux parties communicantes. Des exemples d’extension qui peuvent être
implémentées comme des en-têtes sont des authentifications, des
transactions, des paiements…
L’élément Header est encodé en tant que premier enfant de l’enveloppe
SOAP. Tous les enfants immédiats du header sont appelés des entrés du
header.
Les règles d’encodage pour les entrées du header sont les suivantes :
Une entrée d’header est identifiée par son nom d’élément, qui
consiste en le namespace URI et le nom local ;
L’attribut SOAP : ‘encodingStyle’ peut être utilisé pour indiquer le
style de codage de l’entrée ;
L’attribut SOAP : ‘mustUnderstand’ peut être utilize pour indiquer
comment traiter l’entrée.
c. Le corps du message SOAP (Body)
Le corps d’un message SOAP fournit un mécanisme pour échanger les
Exemple :
b. Inconvénients
Pour la suite, nous allons voir comment implémenter un web service basé
sur JAXWS. Pour cela, nous allons suivre les étapes suivantes :
Le web service que nous allons créer consiste à créer un service qui permet
d’exposer un certain nombre de méthodes via le protocole SOAP.
addPerson : pour ajouter une personne
deletePerson : pour supprimer une personne
getPerson : pour rechercher une personne
getAllPerson : pour avoir la liste de toutes les personnes enregistrées
Commençons par notre service web SOAP dans Eclipse. Tout d'abord,
nous allons créer un projet Dynamic Web simple dans Eclipse qui
contiendra la logique métier de notre application.
Notez que ci-dessus est un simple java Bean, nous sommes en train
d'implémenter une interface serializable car nous allons le transporter sur le
réseau. Nous avons également fourni l'implémentation de la méthode
toString qui sera utilisée lorsque nous imprimerons cet objet côté client.
La prochaine étape est de créer des classes de service, donc nous aurons une
interface comme Person_service et sa classe d'implémentation simple
Person_serviceImpl .
C'est tout pour notre logique, puisque nous les utiliserons dans un service
web, il n'y a aucun intérêt à créer des pages web ici. Notez que nous n'avons
aucune référence à tout type de classes de services web dans le code ci-
dessus.
Une fois que notre logique métier est prêt, l'étape suivante consiste à utiliser
Eclipse pour créer une application de service web à partir de celle-ci. Créez
un nouveau projet et sélectionnez l'assistant Web Service.
Cliquez sur le bouton Suivant et vous obtiendrez une page où le service web
et ses détails client doivent être fournis. C'est la page la plus importante dans
la création d'un service web. Assurez-vous que vous sélectionnez Web
Service type comme Bottom up Java bean Web Service parce que nous
mettons en œuvre avec une approche ascendante. Il y a deux façons de créer
un service web :
Cliquez sur le bouton Suivant et vous pourrez ensuite choisir les méthodes
que vous voulez exposer en tant que service web. Vous pourrez également
choisir le style du service web en tant que document ou littérale. Vous
pouvez changer le nom du document WSDL mais il est bon de l'avoir avec
le nom de la classe d'implémentation pour éviter toute confusion par la suite.
Nous pouvons faire des tests ici, mais pour notre simple application, je suis
prêt à aller de l'avant avec la création d'applications client. Cliquez sur le
bouton Suivant dans la fenêtre contextuelle des services Web d'Eclipse et
vous obtiendrez une page pour le dossier source de l'application client.
Cliquez sur le bouton Terminer et Éclipse créera le projet client dans votre
espace de travail, il lancera également la page de test client JSP comme
indiqué ci-dessous.
Vous pouvez copier l'URL et l'ouvrir dans le navigateur de votre choix. Vous
avez le choix de tester les autres méthodes.
Tout est fait vous pouvez maintenant accéder à votre web service WSDL
dans un navigateur
Pour cela on crée un nouveau projet Soap. Nous référençons notre WDSL
comme présenté à l’image suivant :
Ensuite nous pouvons tester les méthodes .Faisons un test sur la méthode
addPerson :
Alors pour cela vous clicquez sur la methode addPerson request1.vous
obtenez :
Le résultat retourné est true pour vous indiquer que la personne à bel et bien
été ajouté.
Je vous invite donc à tester les autres méthodes