Download - 1 Les technologies XML Cours 2 : Les Web Services Concepts Généraux Février 2011 - Version 1.0 -
1
Les technologies XMLLes technologies XML
Cours 2 : Cours 2 : Les Web Services Concepts Les Web Services Concepts GénérauxGénéraux
Février 2011 Février 2011
- Version 1.0 - - Version 1.0 -
2
Web Services - DéfinitionWeb Services - Définition
Un service Web est :Un service Web est :
une « une « unité logique applicativeunité logique applicative » accessible en utilisant » accessible en utilisant les les protocoles standard d’ Internetprotocoles standard d’ Internet
Un «Un «composantcomposant» fournissant des données et des » fournissant des données et des services à d’autres applications.services à d’autres applications.
Les WebServices combinent les meilleurs aspects du Les WebServices combinent les meilleurs aspects du développement à base de développement à base de composantscomposants et du et du WebWeb..
Ils s’appuient sur un ensemble de standards (Ils s’appuient sur un ensemble de standards (WSDL, SOAP, WSDL, SOAP, XML-RPC XML-RPC etet UDDI UDDI))
3
Web Services - DéfinitionWeb Services - Définition
A Web service is a software application identified by a URI, whose interfaces and binding(1) are capable of being defined, described and discovered by XML artefacts and supports direct interactions with other software applications using XML based messages via Internet-based protocols. (W3C definition)
Un service Web est une application logicielle identifiée par une URI dont les interfaces et les liaisons sont définies, décrites et découvertes en XML. Il supporte une interaction directe avec les autres applications logicielles en utilisant des messages XML via un protocole Internet.
4
Web Services - ObjectifsWeb Services - Objectifs
Système ouvert et performantSystème ouvert et performantcapable d'inter-opérer avec les applications existantescapable d'inter-opérer avec les applications existantes
capable d'inter-opérer avec le monde extérieur : Extranet (B2B)capable d'inter-opérer avec le monde extérieur : Extranet (B2B)
capable d'inter-opérer avec le monde intérieur : Intranet (B2C)capable d'inter-opérer avec le monde intérieur : Intranet (B2C)
indépendant des technologies implémentéesindépendant des technologies implémentées
offrant un accès rapide, intégré et généralisé à l’information offrant un accès rapide, intégré et généralisé à l’information pertinentepertinente
offrant des outils de travail, de communication, …offrant des outils de travail, de communication, …
Système réduisant les coûtsSystème réduisant les coûts
développement rapide d’applications (RAD)développement rapide d’applications (RAD)
utilisation de composants distribués et de ressources distantesutilisation de composants distribués et de ressources distantes
réduction des coûts de développementréduction des coûts de développement
Système fournissant une administration simplifiéeSystème fournissant une administration simplifiéedepuis le Web avec des outils d'assistancedepuis le Web avec des outils d'assistance
5
Web Services - ObjectifsWeb Services - Objectifs
Les Web Services sont une des solutions Les Web Services sont une des solutions utilisables dans une architecture orientée utilisables dans une architecture orientée service (SOA).service (SOA).
Ils facilitent l’interopérabilité entre des Ils facilitent l’interopérabilité entre des applications développées pour des plates-formes applications développées pour des plates-formes et dans des langages différents.et dans des langages différents.
Ils permettent « d’ouvrir » des applications Ils permettent « d’ouvrir » des applications existantes sur le monde Internetexistantes sur le monde Internet
6
Web Services - PourquoiWeb Services - Pourquoi
Évolution des solutions MiddlewareÉvolution des solutions Middleware
RPC : Remote Procedure CallRPC : Remote Procedure Call
MOM : Message Oriented Middleware (MQ Series, MOM : Message Oriented Middleware (MQ Series, JMS)JMS)
Objet Distribué (COM, DCOM, CORBA, RMI, EJB)Objet Distribué (COM, DCOM, CORBA, RMI, EJB)
Base de Données Orientées MiddlewareBase de Données Orientées Middleware
7
Web Services - PourquoiWeb Services - Pourquoi
Historique des protocoles d’interopérabilité
Ces protocoles ne s’intègrent pas facilement avec le monde internet.
8
Web Services - PourquoiWeb Services - Pourquoi
Remote Procedure Call (RPC)
Principe d’appel de procédure type client/serveur s’exécutant sur une machine distante dans un environnement d’applications distribuées.
Un des plus vieux middlewares
Fonctionne de manière synchrone
Facile à comprendre et à coder
Nécessite beaucoup de ressources
Complexe à administrer
Pas de standards / Implémentation spécifique à un vendeur
Ne supporte pas la POO
9
Web Services - PourquoiWeb Services - Pourquoi
Message Oriented Middleware
– Utilisation de messages asynchrones pour faire communiquer les applications
•Les avantages– Faible couplage– Garantie de livraison– Mécanisme de persistance•Les inconvénients– Risque de surcharge du système– Implémentation propriétaire ( msg + architecture)– Plus le système est grand et hétérogène, plus l’administration estdifficile– Peu portable et peu interopérable
10
Web Services - PourquoiWeb Services - Pourquoi
Les objets distribuésCORBA : Common Object Request Broker Architecture
Norme de communication utilisée pour l'échange entre objets logiciels hétérogènes. Un langage, IDL (Interface Definition Language) décrit les traitements effectués et les formats de données en entrée et en sortie. Un bus applicatif, ORB (Object Request Broker) constitue le coeur de CORBA par lequel les requêtes sur les objets transitent.
11
Web Services - PourquoiWeb Services - Pourquoi
Les avantages:Indépendant du système d’exploitation et du langage de programmation.Permet l’intégration des systèmes propriétaires grâce à l’IDLCORBA standardisé par l’OMGCORBA intègre les aspects métiers.La version 2.3 interopère avec RMI
Les inconvénientsIncompatibilité entre les implémentationsCORBA complexe à appréhender et à mettre en place.Problème de pare-feuSécurité et administrationPas aussi simple qu’on pense, nécessite des changements dans les applications…
12
Web Services - PourquoiWeb Services - Pourquoi
RMI : Remote Method InvocationLe but de RMI est de permettre l'appel, l'exécution et le
renvoi du résultat d'une méthode exécutée dans une machine virtuelle différente de celle de l'objet l'appelant
13
Web Services - PourquoiWeb Services - Pourquoi
AvantagesPlus simple que le développement des sockets JAVASupporte la POORend Transparent les communications entre objetsPermet une gestion distribuée des ressources
InconvénientsLimité à la plate-forme JAVAArchitecture fortement coupléePas de gestion de session
14
Web Services - PourquoiWeb Services - Pourquoi
COM/DCOM : Component Object Model
Modèle de Microsoft pour le développement de composants logiciels réutilisables, orientés objet et indépendants du langage de programmation. DCOM est le successeur de COM et intègre le multi-machine.
15
Web Services - PourquoiWeb Services - Pourquoi
Les avantages
Simple d’utilisation.
Portabilité binaire
Les inconvénients
Spécifique à Microsoft
Problème de gestion des états et de sessions
Pas de portabilité du code
16
Web Services - IntérêtWeb Services - Intérêt
Ils utilisent XML pour l’échange des données et messages.
Ils permettent l’intégration de plates-formes hétérogènes via le protocole HTTP
L’utilisation du protocole HTTP facilite le passage des pare-feux
Les développeurs ont l’embarras du choix en matière de langage de programmation : Java, C, C++, Perl, Python, Ruby, C#, et/ou Visual Basic,
Ils nécessitent peu ou pas de modification des applications existantes
Ils permettent un couplage faible, les composants sont simples mais peuvent résoudre des problèmes complexes
17
Web Services - IntérêtWeb Services - Intérêt
Ils peuvent être créer facilement une fois l’application terminée pour exposer un service sur le net
Il n’existe pas de client propriétaire
Des outils de développement et de déploiement sont fournis par les principales plateformes J2EE et Microsoft .NET
La localisation et l’invocation dynamique d’autres services est possible à partir de registres privés ou publics
18
Web Services : technologies Web Services : technologies utiliséesutilisées
XMLXML (eXtensible Markup Language)(eXtensible Markup Language)Échange de messages XML entre client et serveurÉchange de messages XML entre client et serveur
Lisible, structuréLisible, structuré
HTTP, SMTPHTTP, SMTP……Réutilisation des standards usuels d’InternetRéutilisation des standards usuels d’Internet
SOAPSOAP (Simple Object Access Protocol)(Simple Object Access Protocol)Protocole définissant les échanges XML entre entitésProtocole définissant les échanges XML entre entités
WSDLWSDL (Web Services Description Language)(Web Services Description Language)Langage de description technique des services web proposésLangage de description technique des services web proposés
UDDIUDDI (Universal Description Discovery and Integration)(Universal Description Discovery and Integration)Annuaire des services web disponibles et des fournisseurs de Annuaire des services web disponibles et des fournisseurs de ces servicesces services
19
Web Services : Les ActeursWeb Services : Les Acteurs
Service Provider (Fournisseur de service)Service Provider (Fournisseur de service)Application s'exécutant sur un serveur et comportant Application s'exécutant sur un serveur et comportant un module logiciel accessible par le Web en XMLun module logiciel accessible par le Web en XML
Service Registry (Annuaires de service)Service Registry (Annuaires de service)Annuaire des services publiés par les providers (UDDI)Annuaire des services publiés par les providers (UDDI)
Géré sur un serveur niveau application, entreprise ou Géré sur un serveur niveau application, entreprise ou mondialmondial
Service Requester (Demandeur de service)Service Requester (Demandeur de service)Application cliente se liant à un service et invoquant Application cliente se liant à un service et invoquant ses fonctions par des messages XML (SOAP)ses fonctions par des messages XML (SOAP)
20
Fournisseur de Web Services
Annuaire UDDI
WebServices référencés
DescriptionWSDLDescription
WSDL
BackOffice
EtSystème
d’entreprise
Serveur
web
Serveur
d’application
BusinessObject
BusinessObject
BusinessObject
DescriptionWSDLDescription
WSDL
WebService
2
WebService
1
DescriptionWSDLDescription
WSDL
1°) Publication d’un service
Web Services : MécanismesWeb Services : Mécanismes 1/31/3
21
Annuaire UDDI
WebServices référencés
DescriptionWSDLDescription
WSDL
Fournisseur de Web Services
BackOffice
EtSystème
d’entreprise
Serveur
web
Serveur
d’application
BusinessObject
BusinessObject
BusinessObject
WebService
2
WebService
1
DescriptionWSDLDescription
WSDL
Client du Web Service
BusinessObject
DescriptionWSDL
DescriptionWSDL
2°) Recherche d’un service
Web Services : MécanismesWeb Services : Mécanismes 2/32/3
22
Web Services : MécanismesWeb Services : Mécanismes 3/33/3
Annuaire UDDI
WebServices référencés
DescriptionWSDLDescription
WSDL
Fournisseur de Web Services
BackOffice
EtSystème
d’entreprise
Serveur
web
Serveur
d’application
BusinessObject
BusinessObject
BusinessObject
WebService
2
WebService
1
DescriptionWSDLDescription
WSDL
Client du Web Service
BusinessObject
DescriptionWSDL
Requête SOAP
3°) Invocation d’un service
23
Web Services : .NET et Web Services : .NET et J2EEJ2EE
.Net (Microsoft).Net (Microsoft).net Framework SDK (//msdn.microsoft.com/webservices).net Framework SDK (//msdn.microsoft.com/webservices)
Support depuis Visual Studio .NetSupport depuis Visual Studio .Net
Développement en tout langage (VB, C++, C#)Développement en tout langage (VB, C++, C#)
Deux composants essentielsDeux composants essentielsCommon Language Runtime (MSIL) .net class Libraries (GUI, DB, ASP, …)
J2EE J2EE (Sun)(Sun)API spécialisée pour Java-XML (JAX)API spécialisée pour Java-XML (JAX)
Java API for XML Processing (JAXP) Java API for XML Processing (JAXP)
Java Architecture for XML Binding (JAXB) Java Architecture for XML Binding (JAXB)
Java API for XML Messaging (JAXM) Java API for XML Messaging (JAXM)
Java API for XML-based RPC (JAX-RPC) Java API for XML-based RPC (JAX-RPC)
Java API for XML Registries (JAXR)Java API for XML Registries (JAXR)
Java API for XML Web Services (JAX-WS) Java API for XML Web Services (JAX-WS)
24
Web Services : ProduitsWeb Services : Produits
Apache SOAP (Apache project)Apache SOAP (Apache project)
Servlet permet de déployer les servicesServlet permet de déployer les services
Appel servlet depuis SOAPAppel servlet depuis SOAP
Web Services Toolkit (IBM, alphaWorks) Web Services Toolkit (IBM, alphaWorks)
Générateur WSDL à partir de classe Java ou EJBGénérateur WSDL à partir de classe Java ou EJB
Générateur de Proxy client JavaGénérateur de Proxy client Java
MetroMetro
Implémentation de référence (jax-ws)Implémentation de référence (jax-ws)
AutresAutres
BEA (Oracle), Broadvision, etc.BEA (Oracle), Broadvision, etc.
25
SOAP :SOAP :
protocole d'invocation de protocole d'invocation de services Web sur HTTPservices Web sur HTTP Lisible et extensible Intégré à HTTP Passant les firewalls Description en WSDL Pousser par Microsoft,
IBM, Ariba
Web Services : SynthèseWeb Services : Synthèse
Web Services :Web Services :Invocation dynamique de Invocation dynamique de services WEB décrits en services WEB décrits en WSDLWSDL
Intégrité et typage des Intégrité et typage des données (schémas XML)données (schémas XML)
Possibilité de découvrir Possibilité de découvrir dynamiquement les services dynamiquement les services (UDDI)(UDDI)
Lisibilité et sécurité renforcée Lisibilité et sécurité renforcée (filtrage dans les pare-feu)(filtrage dans les pare-feu)
Indépendance des Indépendance des constructeurs (W3C)constructeurs (W3C)
Intégration des transactions, Intégration des transactions, des workflows et de la des workflows et de la sécurité en courssécurité en cours
26
Web Services : Les Web Services : Les InconvénientsInconvénients
Sécurité faibleSécurité faible
Entête SOAP n’implémente pas nativement la sécuritéEntête SOAP n’implémente pas nativement la sécurité
Attaques par DOS (Deny Of Service)Attaques par DOS (Deny Of Service)
Problèmes liés à HTTP / InternetProblèmes liés à HTTP / Internet
Absence de qualité de serviceAbsence de qualité de service
Temps de transmission variableTemps de transmission variable
Pas d’accusé de réceptionPas d’accusé de réception
Blocage d’applicationBlocage d’application
SOAP inadapté à l’approche synchroneSOAP inadapté à l’approche synchrone
Temps d’exécution variableTemps d’exécution variable
Latence du réseauLatence du réseau
Pas d’information d’avancementPas d’information d’avancement
Pas d’information de « panne »Pas d’information de « panne »