26
1 Les technologies XML Les technologies XML Cours 2 : Cours 2 : Les Web Services Concepts Les Web Services Concepts Généraux Généraux Février 2011 Février 2011 - Version 1.0 - - Version 1.0 -

1 Les technologies XML Cours 2 : Les Web Services Concepts Généraux Février 2011 - Version 1.0 -

Embed Size (px)

Citation preview

Page 1: 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 -

Page 2: 1 Les technologies XML Cours 2 : Les Web Services Concepts Généraux Février 2011 - 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))

Page 3: 1 Les technologies XML Cours 2 : Les Web Services Concepts Généraux Février 2011 - Version 1.0 -

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.

Page 4: 1 Les technologies XML Cours 2 : Les Web Services Concepts Généraux Février 2011 - Version 1.0 -

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

Page 5: 1 Les technologies XML Cours 2 : Les Web Services Concepts Généraux Février 2011 - Version 1.0 -

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

Page 6: 1 Les technologies XML Cours 2 : Les Web Services Concepts Généraux Février 2011 - Version 1.0 -

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

Page 7: 1 Les technologies XML Cours 2 : Les Web Services Concepts Généraux Février 2011 - Version 1.0 -

7

Web Services - PourquoiWeb Services - Pourquoi

Historique des protocoles d’interopérabilité

Ces protocoles ne s’intègrent pas facilement avec le monde internet.

Page 8: 1 Les technologies XML Cours 2 : Les Web Services Concepts Généraux Février 2011 - Version 1.0 -

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

Page 9: 1 Les technologies XML Cours 2 : Les Web Services Concepts Généraux Février 2011 - Version 1.0 -

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

Page 10: 1 Les technologies XML Cours 2 : Les Web Services Concepts Généraux Février 2011 - Version 1.0 -

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.

Page 11: 1 Les technologies XML Cours 2 : Les Web Services Concepts Généraux Février 2011 - Version 1.0 -

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…

Page 12: 1 Les technologies XML Cours 2 : Les Web Services Concepts Généraux Février 2011 - Version 1.0 -

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

Page 13: 1 Les technologies XML Cours 2 : Les Web Services Concepts Généraux Février 2011 - Version 1.0 -

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

Page 14: 1 Les technologies XML Cours 2 : Les Web Services Concepts Généraux Février 2011 - Version 1.0 -

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.

Page 15: 1 Les technologies XML Cours 2 : Les Web Services Concepts Généraux Février 2011 - Version 1.0 -

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

Page 16: 1 Les technologies XML Cours 2 : Les Web Services Concepts Généraux Février 2011 - Version 1.0 -

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

Page 17: 1 Les technologies XML Cours 2 : Les Web Services Concepts Généraux Février 2011 - Version 1.0 -

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

Page 18: 1 Les technologies XML Cours 2 : Les Web Services Concepts Généraux Février 2011 - Version 1.0 -

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

Page 19: 1 Les technologies XML Cours 2 : Les Web Services Concepts Généraux Février 2011 - Version 1.0 -

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)

Page 20: 1 Les technologies XML Cours 2 : Les Web Services Concepts Généraux Février 2011 - Version 1.0 -

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

Page 21: 1 Les technologies XML Cours 2 : Les Web Services Concepts Généraux Février 2011 - Version 1.0 -

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

Page 22: 1 Les technologies XML Cours 2 : Les Web Services Concepts Généraux Février 2011 - Version 1.0 -

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

Page 23: 1 Les technologies XML Cours 2 : Les Web Services Concepts Généraux Février 2011 - Version 1.0 -

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)

Page 24: 1 Les technologies XML Cours 2 : Les Web Services Concepts Généraux Février 2011 - Version 1.0 -

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.

Page 25: 1 Les technologies XML Cours 2 : Les Web Services Concepts Généraux Février 2011 - Version 1.0 -

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

Page 26: 1 Les technologies XML Cours 2 : Les Web Services Concepts Généraux Février 2011 - Version 1.0 -

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 »