Vous êtes sur la page 1sur 47

DEI

Web Services
Présentation et cas d’usage.

Référence :
Page : 1
Les Web Services
DEI

◗Les concepts
◗ Les standards technologiques
◗La conception d’un service web / J2EE
◗Limites, questions essentielles
◗Au delà du simple service web
◗Références DEILab

Référence :
Page : 2
Les Web Services
DEI

◗Les Concepts
 Contexte
 C’est quoi un service ?
 C’est quoi un web service ?
 Avantages
 Nouveaux rôles

Référence :
Page : 3
Web Services / Contexte
DEI

◗Problématique posée : interaction entre des applicatifs


 distants, hétérogènes,
 dans des contextes multi-entreprises

◗Historiquement :
 DCOM
 CORBA-IIOP
 MOM

◗Solution : an 2000, initiative Web Service


 s ’organise autour des leaders de l’informatique (IBM, SUN, HP,
SAP, …) et les organismes de normalisation (W3C, OASIS, WS-I)
 avec pour objectif de normaliser les techniques de communication
entre les applicatifs distribués

Référence :
Page : 4
Web Services / Définitions
DEI
◗Service

 Un service est une fonction qui reçoit des messages et qui les
restitue après traitement
 Abstrait.
● L ’implémentation interne est masquée au consommateur (boîte noire).

 Les modalités d’utilisation sont décrites dans un contrat


● contraintes sécurité, aspects transactionnels, Localisation

 Réutilisable / Fonctionnalités mutualisées


 Sans état / Autonome
● ne nécessite pas la présence d ’un contexte d ’exécution

 Combinable
 Administrable Gourvernable

‘ C ’est un niveau logique d ’accès aux traitements ’


‘ Seul le contrat importe ’ Référence :
Page : 5
Web Services / Typologie
DEI

◗Typologie des services

 Services de données (exposition de silos de données)


 Services intermédiaires (façades, adaptateur technologique pour
legacy)
 Services unités de traitement (logique applicative, processus back
office)
 Service d’entreprise (ouverture du SI)
 Service d’infrastructure (authentification, traces, …)

Référence :
Page : 6
Web Services / Découverte
DEI

◗Le concept de service intervient à plusieurs niveaux dans


l ’architecture du SI.

Référence :
Page : 7
Web Services / Découverte
DEI

◗Service Métier

 Correspond à un périmètre fonctionnel que l’on souhaite exposé


 Sens pour le métier (ie, pour maîtrise d ’ouvrage)
 Découvert et spécifié au moment de la modélisation des processus
(cahier des charges - diagrammes d ’activités)
 Usage métier / fonctionnel
● exposition d ’une fonctionnalité à des organisations clientes tierces qui consomment le
service
 Usage technique
 Indépendant des choix d’architecture applicatives
 Un processus permet d ’enchaîner un ou plusieurs service métier

Référence :
Page : 8
Web Services / Découverte
DEI

◗Service exposé par une catégorie (BusinessService -


FWK)

 Issu d’un travail d’architecture applicative


 Découverts à partir des catégories UML
 Son implémentation se base sur la sollicitation d ’une ou plusieurs
entités physiques (composants)

Référence :
Page : 9
Web Services / Définitions
DEI

◗Web Service
C ’est un service ...
 Accessible depuis Internet/Intranet (dont le contrat et les modalités
d ’invocations sont basées sur des standards technologiques, à savoir
ceux du WEB)
● HTTP (Hyper Text Transport Protocol)
● XML (eXtensible Markup Language)
● WSDL (Web Service Description Langage)
● SOAP
 Utilise XML pour l’encodage des données échangées,
 N’est lié à aucun système d’exploitation ni aucun langage de
programmation.
 Usage est restreint aux services métiers (« coarse grained »)

Référence :
Page : 10
Web Services / usage des web services
DEI

◗Fourniture d’informations aux briques du SI


Partage d’information. Exposition des référentiels.

◗Services payant (créer de la business value)


Transaction payante pour les clients. Système de réservation,
système de vérification de crédit etc…

◗Externalisation de processus
Echange d’information avec les partenaires et intégration des
processus. Les WS sont dont utilisés pour augmenter l’étendue du SI.

◗Architecture EAI légère


Les WS pourraient à terme fournir une alternative légère et peu
coûteuse aux solutions traditionnelles d’EAI.

Référence :
Page : 11
Web Services / avantages
DEI

◗Coût de mise en place d ’une communication entre


applicatifs distants et hétérogènes chute de manière
considérable.
 Les sous-systèmes exposent des connecteurs SOAP-XML (+WSDL)
◗Interopérabilité est enfin au rendez-vous
◗Les équipes informatiques capitalisent sur un même
standard et une même technologie.
◗Ouverture du SI devient possible (interne, externe).
◗Peu/Pas d’impact sur les infrastructures techniques (pas de
rupture)

Référence :
Page : 12
Web Services / nouveaux rôles
DEI

◗Fournisseur
 Entité qui publie le service
 Responsable de son exécution
 Assure compatibilité ascendante
● gestion des versions

 Publie la description du service


◗Consommateur
 Entité qui invoque le service
 Dispose d’une description du service
◗Registre
 Tiers intermédiaire
 Consommateur: localiser un service
 Fournisseur : publie un service
Référence :
Page : 13
Web Services / nouveaux rôles
DEI

Référence :
Page : 14
Les Web Services
DEI

◗ Les standards technologiques


 Modèle de communication
 HTTP, XML, SOAP, WSDL, UDDI
 Basic Profile 1.0
 Infrastructure technique

Référence :
Page : 15
Web Services / Modèle de communication
DEI

◗ Modèles de communication

 Synchrone ou RPC

 Asynchrone ou évènementiel
● point-à-point
● publication-abonnement

 Conversationnel

Référence :
Page : 16
Web Services / Principe synchrone
DEI

1. le client récupère une référence vers le service


2. le client émet une requête et attends la réponse
3. le service exécute le traitement et renvoie une réponse
4. le client récupère la réponse et reprend son exécution
Contrat
de service

Document métier
XML
Client 1-2 Serveur

interface
implémentation
3
Contexte Requête

Service

Réponse
4

Référence :
Page : 17
Web Services / standards technologiques
DEI

◗ HTTP (HyperText Transfer Protocol)


 Application Web : assure le transport des formulaires Web
 WS : assure le transport des messages échangés (format SOAP)
 L ’URL permet d ’atteindre un service web

◗XML (eXtensible Markup Language)


 Utilisé pour décrire les messages échangés entre applicatifs.
 Offre une représentation en mode texte
 XML-Schema permet de manipuler des données structurées et
typées.

Référence :
Page : 18
Web Services / standards technologiques
DEI

◗ Protocole SOAP

 Protocole de communication entre applications:


● Sans état
● Unidirectionnel
● Indépendant du protocole de communication.
 Basé sur XML et les namespaces.
 Permet d’utiliser les protocoles du Web (HTTP, SMTP, …)
 Indépendant de la plateforme (windows, unix, mac, …)
 Simple et extensible
 Bientôt un standard w3c (SOAP 1.2).

Référence :
Page : 19
Web Services / standards technologiques
DEI

◗ Protocole SOAP

 Permet d’envoyer des messages XML entre deux machines.


 Les messages sont encapsulés dans une enveloppe SOAP
● L’enveloppe SOAP utilise un XML schéma prédéfini
● Le schéma du message dépend de l’application
Application Message
SOAP Envelope

Référence :
Page : 20
Web Services / standards technologiques
DEI

◗ Focus : Enveloppe SOAP


 Enveloppe technique qui encapsule le
message XML - Format d ’échange
 Constitué de deux parties
● une partie entête (header) - Facultative
• véhicule des données techniques
• exploitée par l ’infrastructure
● une partie données (body) - charge
utile (payload) - Obligatoire
• véhicule des données métier
 Sa génération est automatique
● pas d ’effort de la part du
développeur
● API JAX-RPC
Référence :
Page : 21
Web Services / standards technologiques
DEI

◗ Exemple de message SOAP

Référence :
Page : 22
Web Services / standards technologiques
DEI

◗ Modélisation des messages XML


 Style Document/RPC
 Encodage Literal/Encoded

Référence :
Page : 23
Web Services / standards technologiques
DEI

◗ WSDL (Web Service Description Langage) WD W3C


 C’est un document XML (possède son propre schéma)
 Standardise la description des services web (carte d’identité)
 On y trouve :
● le nom du service, comment on y accède (adresse)
● le noms de ses opérations (traitements)
● format des messages échangés
● protocole de communication utilisé pour le transport
 …Mais rien sur ce qu ’ils font vraiment
 Généré automatiquement par les outils
 Sert de point de départ pour la génération des consommateurs de web
services.
 V1.2 (WS-I Basic Profil 1.0 : v1.1)

Référence :
Page : 24
Web Services / standards technologiques
DEI

Référence :
Page : 25
Web Services / standards technologiques
DEI

◗ Exemple WSDL GIDE

Référence :
Page : 26
Web Services / standards technologiques
DEI

◗ UDDI (Universal Description Discovery and Integration)

 Standard d ’annuaire pour les web services


 Contient les données utilisées pour la classification et la recherche
des services
 Rôle de tiers intermédiaire
 UDDI est donc plus une « registry » qu’un « repository »
 Le consommateur d ’adresse à l ’annuaire pour rechercher et
localiser un service.
 Le fournisseur y enregistre ses services
 V3.0 (WS-I Basic Profile 1.0 : v2.0)

Référence :
Page : 27
Web Services / Basic Profile
DEI

◗ Le Basic Profile 1.0


 Ensemble de recommandations édictées par le WS-I (web
Service Interoperability)
● SOAP 1.1, WSDL 1.1, UDDI 2.0, XML 1.0, XML-Schema

● supporté par les plateformes J2EE et .NET

 Objectif : favorises l ’interopérabilité des web services


 surtout destinées aux éditeurs de logiciel de parseur SOAP
 Quelques règles à connaître :
● Exclusion du SOAP Encoding

● Utilisation du mode RPC-Literal ou Document-Literal

● Utilisation SOAP/HTTP

● Utilisation du HTTP POST (pas GET)

● Utilisation WSDL 1.1 pour décrire les WS

Référence :
Page : 28
Web Services / infrastructure technique
DEI

◗Réutilisation de l ’infrastructure web existante - pas de


rupture
 Firewall, IDS (Intrusion Detection System), serveur HTTP, serveur
d ’application, outils d ’administration et de développement

◗Extensions possibles
 Les Firewalls XML / Proxy XML
● vérifier la validité des messages / schéma
● Détecter du code malicieux
● jouer un rôle de filtrage/routage (XPATH)
● fournir un mécanisme de cache
● apporter des fonctionnalités de sécurité (SAML, XML-DS, XML-Encryption)
 Boîtiers « clef en main »
● IBM (datapower), CISCO
 Catalogue de Web Service
Référence :
Page : 29
Les Web Services
DEI

◗La conception d’un web service J2EE


 Démarche top/down | bottom/up
Principe de fonctionnement
Les API /JSR
 Outillage

Référence :
Page : 30
Web Services / Démarche
DEI

◗Création d ’un Web Service : approche Top/Down

implémentation
du service

Référence :
Page : 31
Web Services / Démarche
DEI

◗Création d ’un web service : approche Bottom/Up


◗Toute classe Java peut-être automatiquement exposée
comme un service (style RPC)
Une opération par méthode
Génération des messages SOAP
Sérialisation/déserialisation
des types courants
Gestion des exceptions
Génération automatique du WSDL

Référence :
Page : 32
Web Services / Démarche
DEI

◗Création du client (consommateur WS)


 Point d’entrée : WSDL du Service WEB
 La génération des classes Java s ’opère depuis l’atelier de
développement (fournit les wizards adéquats)
 Génération automatique
● des messages SOAP
● Sérialisation/déserialisation des types courants
Gestion des erreurs
● Conversion des SOAP Faults en exceptions java

Génération de “stubs” à partir du WSDL:


● Un objet local qui invoque automatiquement le service web
correpondant

Référence :
Page : 33
Web Services / Démarche
DEI

◗Création du client (suite)


 Il est possible de compléter le code générer :
● ajouter un système de cache pour les données en lecture
uniquement (évite les appels inutiles)
● mettre en place un mécanisme de bouchon (facilite les
tests d ’intégration du client)
● masquer les éventuels appels à un annuaire UDDI
● …
 Les clients d ’applications J2EE
● possibilité de localiser un web service à partir de l ’annuaire
JNDI

Référence :
Page : 34
Web Services / Principe de fonctionnement
DEI

import javax.xml.rpc.Service ;
import com.icdc.webservices.HelloWorld ;
import com.icdc.webservices.HelloWorldService ;

HelloWorldService service = ... // récupération du service

// on récupère un stub du web service « HelloWorld »


// (l’interface HelloWorld est l’interface du SEI du web service)
HelloWorld helloWorld = (HelloWorld) service.getHelloWorld ();

// on appelle le web service HelloWorld


String result = helloWorld.hithere("toto");

Référence :
Page : 35
Web Services / Les JSR à connaître
DEI

◗JSR 101 : spécification de JAX-RPC 1.1 (JSR 224 : JAX-RPS 2.0)


 Principes de mapping entre WSDL et Java
 + une API pour traiter les flux SOAP
 Spécification du cycle de vie de la servlet à l ’écoute du flux SOAP
◗JSR 31 : spécification de JAXB 1.0 (JSR 222 : JAXB 2.0)
 Permet d’associer des classes Java à des schemas XML et des
instances de ces classes aux documents XML.
◗JSR 109 : spécification des modes d ’implémentation des
endpoint
 Sous la forme d ’une servlet (JSR 101)
 Sous la forme d ’un EJB Session Stateless
Spécifie l’usage des fichiers de déploiement

Référence :
Page : 36
Web Services / outillage
DEI
◗Ces normes font désormais partie intégrante de la plate-
forme J2EE 1.4

◗Situation de la Caisse des dépôts


 Websphere 5.1 est compatible J2EE 1.3 et JAX-RPC 1.0 (JSR101)
et JSR 109.
Tomcat n ’est pas un conteneur J2EE (uniquement WEB)

◗Les web services sont développés :


 Eclipse 3.2 + Web Tools Platform 1.5
 s ’appuie sur Axis 1.3 (implémentation SOAP d ’Apache - Open
Source)
 Web service sont déployés sous la forme d ’une aplication Web
● Peut être utilisée avec tout serveur J2EE
Référence :
Page : 37
Web Services / outillage
DEI

◗Démo création d ’un web service avec Eclipse


3.2

Référence :
Page : 38
Les Web Services
DEI

◗Limites et Questions essentielles

Référence :
Page : 39
Les Web Services / Limites -Questions
DEI essentielles

◗Systèmes monolothiques
 impossible ou trop coûteux d ’exposer des web services

◗Définir la bonne granularité


 Problème de performance
● Privilégier d ’autres technologies (EJB, …) ?

◗Web Services Hell


 Mise en place d ’une politique de gestion des versions
 Prolifération des services web
● Eviter le couplage point-à-point des applications

◗Principal mode de communication : synchrone

Référence :
◗Peu adaptés aux batchs, au transfert en masse de données
Page : 40
Les Web Services / Limites -Questions
DEI essentielles

◗Aspects transactionnels

◗Audit / Traçabilité
◗Mettre en place une politique de tests
 comme pour les applications web classiques

◗Mettre en place une politique de Bench


 Validé la robustesse du service

Référence :
Page : 41
Les Web Services
DEI

◗Au delà du simple Service Web


 Les exigences de sécurité des web services
 Des standards qui évoluent

Référence :
Page : 42
Les Web Services / La sécurité
DEI

◗ La sécurité est sans doute le sujet le plus important


lorsque l ’on expose son système d ’information à travers
des services web.
 Vérification de l ’identité de l’émetteur
 Confidentialité des données échangées
 Intégrité des données
 Habilitations
 Protection contre les attaques
 Non-répudiation

Référence :
Page : 43
Les Web Services / La sécurité
DEI

◗ Vérification de l ’identité de l’émetteur


 Echanges entre serveurs d ’assertions de sécurité (jetons de
sécurité, certificats, …)
 WS-Security(XML Digital Signature) - SAML
Filtrage adresse IP
◗ Confidentialité des données échangées
 HTTPS (HTTP over SSL) - VPN
 WS-Security(XML-Encryption)
◗ Intégrité des données
 Utilisation d ’algorithme MAC (Message Authentification Code) pour
détecter les modifications des messages

Référence :
Page : 44
Les Web Services / La sécurité
DEI

◗ Habilitations
 XACML (XML Access Control Markup Langague) - OASIS
● une syntaxe XML standard de description de contrôle
d ’accès aux ressources
● un protocole de requête/réponse permettant de vérifier
un droit d ’accès

 JAAS
◗ Protection contre les attaques
Firewalls, IDS, ...

Référence :
Page : 45
Les Web Services / Des standards qui
DEI évoluent

◗Transaction
BTP, WS-Transaction & Coordination
◗Intégrité, confidentialité
XML Encryption, WS Security
◗Single Sign On
SAML
◗Gestion de clés publiques/privées
XKMS
◗Représentation des processus
BPEL, BPML, XLANG, WSFL, WSCI, WS Choreography

Référence :
Page : 46
Les Web Services
DEI

◗Références DEILab
 Mise en œuvre de Web Services avec J2EE (D-
SE13/FB/04-470)
 Guide création web service (C-LABPR_WS_06-245)
 Accès à un Service Web J2EE (C-LABPR_WS_06-250)

Référence :
Page : 47