Plan
Web service
2
Définition
Propriétés & Concepts
SOAP
Avantage & Inconvénient
Apache Axis
RESTful
Conclusion
Web Service
« un service est un comportement défini par contrat, qui peut être réalisé et fourni par tout
composant pour être utilisé par tout composant, sur la base unique du contrat».
Service
3
Web Service
Les Web Services sont des composants web basés sur Internet (HTTP ) qui exécutent des
tâches précises et qui respectent un format spécifique (XML).
Ils permettent aux applications de faire appel à des fonctionnalités à distance en
simplifiant ainsi l’échange de données.
Les Web Services permettent aux applications de dialoguer à travers le réseau,
indépendamment de :
◦ leur plate-forme d’exécution
◦ leur langage d'implémentation.
Définition
4
Web service
Un Service est Autonome
et sans état
5
Propriétés
Un Service expose un Contrat
Les Frontières entre services sont
Explicites Les services communiquent par
messages
Web service
Le concept des Web Services s’articule actuellement autour des trois concepts suivants :
◦ SOAP (Simple Object Access Protocol) - Est un protocole d'échange inter-applications indépendant de toute plate-forme, basé sur le langage XML.
- Un appel de service SOAP est un flux ASCII encadré dans des balises XML et transporté dans le protocole HTTP.
◦ WSDL (Web Services Description Language) - Donne la description au format XML des Web Services en précisant les méthodes pouvant être invoquées, leurs
signatures et le point d’accès (URL, port, etc..).
- C’est, en quelque sorte, l’équivalent du langage IDL pour la programmation distribuée CORBA.
◦ UDDI (Universal Description, Discovery and Integration) - Normalise une solution d’annuaire distribué de Web Services, permettant à la fois la publication et l'exploration
(recherche) de Web Services.
- UDDI se comporte lui-même comme un Web service dont les méthodes sont appelées via le protocole SOAP.
Concepts des web services
6
◦ Des standards simples (SOAP, WSDL, UDDI)
◦ Multi Protocole / Multi OS / Multi Langage
◦ Facilite l’échange des données
◦ Les outils de développement, s'appuyant sur ces standards, permettent la création
automatique de programmes utilisant les services Web existant.
AvantageWeb service
Avantage
8
◦ Performance: Les services Web souffrent de performances faibles comparée à d'autres
approches de l'informatique répartie telles que le RMI, CORBA, ou DCOM.
◦ Jeunesse (Sécurité, Transaction,…): Les normes de services Web dans certains domaines
sont actuellement récentes
Inconvénient Web service
Inconvénient
9
SOAP
SOAP est un protocole d'invocation de méthodes sur des services distants. Basé sur XML,
SOAP a pour principal objectif d'assurer la communication entre machines.
Le protocole permet d'appeler une méthode RPC et d'envoyer des messages aux machines
distantes via un protocole de transport ( HTTP ).
Objectifs visés
- Assurer la communication entre applications d’une même entreprise (intranet)
- Assurer les échanges interentreprises entre applications et services Web
11
Simple Object Access Protocol
Apache Axis
Axis est un ensemble de logiciels créés par la fondation Apache (The Apache Software Foundation), qui
vise à faciliter le développement de services Web en technologie SOAP.
Axis offre notamment :
un environnement pouvant soit fonctionner comme un serveur SOAP/Rest indépendant, soit comme
un plug-in de moteurs de servlet (en particulier Tomcat),
une API pour développer des services web SOAP RPC ou à base de messages SOAP,
le support de différentes couches de transport : HTTP, FTP, SMTP, POP et IMAP...,
la sérialisation/désérialisation automatique d'objets Java dans des messages SOAP,
des outils pour créer automatiquement les WSDL correspondant à des classes Java, ou inversement,
pour créer les classes Java sur la base d'un WSDL (classe proxy en quelque sorte, qui fait le lien
entre l'application Java cliente et le service distant),
des outils pour déployer, tester et monitorer des web-services.14
RESTful
REST (REpresentational StateTransfer) ou RESTful est un style d’architecture pour
les systèmes hypermédia distribués,
Créé par Roy Fielding en 2000 dans le chapitre 5 de sa thèse de doctorat.
REST est un style d’architecture permettant de construire des applications (Web, Intranet,
Web Service).
Il s’agit d’un ensemble de conventions et de bonnes pratiques à respecter et non d’une
technologie à part entière.
L’architecture REST utilise les spécifications originelles du protocole HTTP, plutôt que
de réinventer une surcouche (comme le font SOAP ou XML-RPC par exemple).
REST c’est quoi ?
17
RESTful
Chaque ressource de l'application est accessible via une URI unique
Les opérations (notion CRUD) sont uniformes entre les ressources (avec HTTP)
Aucune notion d'état entre une suite d'actions (= pas de session utilisateur en
HTTP)
Les principes clefs
18
Technologiquement, les WebServices sont matures pour être utilisés dans un environnement
de développement distribué. Leur promotion faite par les acteurs principaux du marché
informatique en fait une des technologies sur lesquelles il faudra compter dans le futur.On
peut notament trouver des implémentations WebService dans les framework .Net [Microsoft],
WebSphere [IBM], ou WebLogic [BEA], et il existe aussi certains solutions libre (Apache
SOAP, Apache Axis ou uddi4j [IBM/HP]),
Cependant, d'un point de vu innovant, les WebServices n'apportent réellement que peu de
choses par rapport aux technologies distribuées déjà existantes telles CORBA ou JNI, les
concepts novateurs introduits par les WebServices étant pour le moment exclusivement
réservés au domaine du théorique. Aussi, on est en droit de se demander si l'apparition de
cette technologie est réellement motivée par une envie d'évolution ou bien uniquement par
une stratégie marketing de la part des grand groupes informatiques partenaires de cette
technologie et coutumiers de genre ...
19
Conclusion
Programming Web Services with SOAP , Par James Snell,Doug Tidwell,Pavel Kulchenko , isbn: 0596000952.
Restful Java Web Services , Jose Sandoval , isbn:1847196462
http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
Bieber, G. and Carpenter, J. (2002). Introduction to Service-Oriented
Programming. http://www.openwings.org
Site official de axis : http://www.ws.apache.org/axis
20
Bibliographie