Web services Concepts et initiations Mr. Zakaria BENTAHAR MAI 2010 Dans ce document, on va aborder la notion des web services, leur raison d’être, leur concept, les protocoles et les langages qui circulent autour. Dans la deuxième partie, on présentera trois démonstrations qui présenteront tous les étapes de création du web service, son déploiement et sa consommation depuis un client qu’on créera nous même.
Dans ce document, on va aborder la notion des web services, leur raison d’être, leur concept, les protocoles et les langages qui circulent autour. Dans la deuxième partie, on présentera trois démonstrations qui présenteront tous les étapes de création du web service, son déploiement et sa consommation depuis un client qu’on créera nous même.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Web services Concepts et initiations
Mr. Zakaria BENTAHAR
MAI 2010
Dans ce document, on va aborder la notion des web services, leur raison d’être, leur
concept, les protocoles et les langages qui circulent autour.
Dans la deuxième partie, on présentera trois démonstrations qui présenteront tous
les étapes de création du web service, son déploiement et sa consommation depuis
Web Service ............................................................................................................................................. 4
vec l'interconnexion des ordinateurs en réseau et en particulier à travers internet, il
devient possible de faire fonctionner des applications sur des machines distantes.
L'intérêt d'une application fonctionnant à distance peut à première vue sembler
inutile dans la mesure où les applications fonctionnent fort bien en local (sur le poste de
l'utilisateur), néanmoins une application distante peut répondre aux problématiques
suivantes :
Les données peuvent être présentes uniquement sur le serveur distant (par exemple
un catalogue produit, un classement en temps réel, etc.) ;
Le serveur distant peut disposer d'une puissance de calcul ou de capacités de
stockage dont l'utilisateur local ne dispose pas ;
L'application distante peut être utilisée simultanément par un grand nombre
d'utilisateurs et sa mise à jour n'intervient qu'à un seul endroit.
Pour toutes ses raisons, une interaction entre des programmes distants peut être utile. Les
Web Services apportent une solution à ce problème en définissant une manière standard
d'invoquer une application distante et d'en récupérer les résultats à travers le web.
A
Web Service
out d'abord, le concept de web-service veut simplement dire qu'un serveur propose des
fonctions (des "services") que vous pouvez invoquer à distance à travers le web afin de
déclencher un traitement sur le serveur distant et/ou obtenir une information de ce serveur.
Ce concept n'est pas nouveau. Avant on appelait ça des RPC pour "Remote Procedure Calls". Outre
les RPC du monde UNIX, il existe pour cela des standards ouverts depuis belle lurette, en particulier
CORBA et la réponse propriétaire de Microsoft: DCOM.
La seule nouveauté avec les web services, c'est que ces appels de procédures à distance se font
comme des appels de page web, c'est à dire sur le protocole HTTP. "Je demande une URL, je reçois
une page" devient "Je demande un service, je reçois une réponse". L'unique avantage de passer par
HTTP est de ne pas nécessiter l'ouverture de ports spécifiques sur les firewalls.
Bien évidemment, les web services ont leurs propres standards, en particulier SOAP (le plus utilisé)
ou encore XML-RPC (le plus ancien).
Grâce aux services web, les applications peuvent être vues comme un ensemble de services métiers,
structurés et correctement décrits, dialoguant selon un standard international plutôt qu'un ensemble
d'objets et de méthodes entremêlés.
Le premier bénéfice de ce découpage est la facilité de maintenance de l'application, ainsi que
l'interopérabilité permettant de modifier facilement un composant (un service) pour le remplacer
par un autre, éventuellement développé par un tiers. Qui plus est, les services web permettent de
réduire la complexité d'une application car le développeur peut se focaliser sur un service,
indépendamment du reste de l'application.
Les services web facilitent non seulement les échanges entre les applications de l'entreprise mais
surtout permettent une ouverture vers les autres entreprises. Les premiers fournisseurs de services
web sont ainsi les fournisseurs de services en ligne (météo, bourse, planification d'itinéraire, pages
jaunes, etc.), mettant à disposition des développeurs des API payantes ou non, permettant d'intégrer
leur service au sein d'applications tierces.
T
Couches
e fonctionnement des services web repose sur un modèle en couches, dont les trois couches fondamentales sont les suivantes :
Invocation, visant à décrire la structure des messages échangés par les applications. Découverte, pour permettre de rechercher et de localiser un service web particulier
dans un annuaire de services décrivant le nom de la société, l'objectif de chaque service, etc.
Description, dont l'objectif est la description des interfaces (paramètres des fonctions, types de données) des services web.
3.1 Invocation
Il existe deux grands standards de services web, tous deux basés sur XML :
XML-RPC (XML Remote Procedure Call), le plus ancien, fonctionnant sur un principe procédural et sans gestion des états.
SOAP (Simple Object Access Protocol), fonctionnant selon le modèle objet.
Quel que soit le standard utilisé, le principe de programmation est le même : l'appel de
méthode distante est réalisé grâce à une bibliothèque cliente qui transmet la demande au
fournisseur de service en la formatant en XML de manière transparente; au niveau du
serveur une bibliothèque serveur décode la requête, le serveur fait ses traitements, puis
répond grâce à cette même bibliothèque; la bibliothèque client décode enfin la réponse afin
qu'elle puisse être utilisée par l'application client.
3.2 Découverte
Le protocole standard le plus utilisé pour la découverte de services est UDDI.
3.3 Description
Le protocole standard le plus utilisé pour la description de services est WSDL.
L
Démonstration
On aura dans cette partie, trois démonstrations dont le les méthodes se différent mais leur but et
leur objectif est le même c’est de créer un service, le déployer et le consommer.
4.1 démonstration
Dans cette partie, on va essayer de déceler le rideau sur l’implémentation d’un webservice
et la manière avec laquelle on le fait avec Java.
Dans un premier temps, on aura besoin du serveur Tomcat bien installé sur la machine, aussi
on doit installer Axis mais juste avant on a le droit de marquer une pause et donner à Axis les
privilèges qu’il mérite.
Axis :
Axis ou ce qu’on appelle aussi Apache Axis est une implémentation du protocole SOAP, là on
est à la version Axis2 mais on va se contenter dans cette démonstration par l’Axis d’où
d’ailleurs on peut le télécharger depuis le site officiel : http://ws.apache.org/axis/.
Une fois téléchargé, il suffit de décompresser le fichier "axis-bin-1_4.zip", puis copier le
dossier "axis-1_4\webapps\axis" dans "dossierInstallation\Tomcat 6.0\webapps\", comme
ça Axis sera une application web déployée sous Tomcat. Il vous manquera la librairie
"activation.jar" et d'autres optionnelles: "soap.jar" et "mail.jar",… que vous pouvez copier
dans "dossierInstallation\Tomcat 6.0\common\lib\". Pour vérifier la bonne installation et
éventuellement accéder aux services web existants sur " Axis ", vous redémarrez Tomcat et
vous tapez dans un navigateur : http://localhost:8080/axis.
Maintenant on peut dire qu’on est près pour se lancer dans l’aventure de la création de
notre premier web service.
La première étape :
Nous avons choisi comme exemple une classe somme qui sera responsable de faire la