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.
q

L ’implémentation interne est masquée au consommateur (boîte noire).

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

contraintes sécurité, aspects transactionnels, Localisation

 Réutilisable / Fonctionnalités mutualisées  Sans état / Autonome
q

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
q

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 FWK)

(BusinessService -

 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)
q q q q

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
q

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
q q

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

Client

1-2

Document métier XML

Serveur
interface implémentation

Contexte

Requête

3
Service

4

Réponse

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 q Unidirectionnel q 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).
q

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
q q

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 message XML - Format d ’échange  Constitué de deux parties
q

le

une partie entête (header) - Facultative
• •

véhicule des données techniques exploitée par l ’infrastructure

q

une partie données (body) - charge utile (payload) - Obligatoire

véhicule des données métier

 Sa génération est automatique
q

pas d ’effort de la part du développeur API JAX-RPC
Référence : Page : 21

q

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)
 C’est un document XML (possède son propre schéma)

WD W3C

 Standardise la description des services web (carte d’identité)  On y trouve :
q q q q

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) q SOAP 1.1, WSDL 1.1, UDDI 2.0, XML 1.0, XML-Schema q 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 : q Exclusion du SOAP Encoding q Utilisation du mode RPC-Literal ou Document-Literal q Utilisation SOAP/HTTP q Utilisation du HTTP POST (pas GET) q 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
q q q q q

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 »
q

IBM (datapower), CISCO
Référence : Page : 29

 Catalogue de Web Service

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 q des messages SOAP q Sérialisation/déserialisation des types courants Gestion des erreurs q Conversion des SOAP Faults en exceptions java Génération de “stubs” à partir du WSDL: q 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 :
q

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 … possibilité de localiser un web service à partir de l ’annuaire JNDI

q

q q

 Les clients d ’applications J2EE
q

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 plateforme 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
q

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

DEI

Les Web Services / Limites -Questions essentielles

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

Définir la bonne granularité
 Problème de performance
q

Privilégier d ’autres technologies (EJB, …) ?

Web Services Hell
 Mise en place d ’une politique de gestion des versions  Prolifération des services web
q

Eviter le couplage point-à-point des applications

Principal mode de communication : synchrone Peu adaptés aux batchs, au transfert en masse de données
Référence : Page : 40

DEI

Les Web Services / Limites -Questions 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
q

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

q

 JAAS

 Protection contre les attaques
Firewalls, IDS, ...

Référence : Page : 45

DEI

Les Web Services / Des standards qui é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 (DSE13/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

Sign up to vote on this title
UsefulNot useful