47
DEI Référence : Page : 1 Web Services Présentation et cas d’usage.

Presentation Web Services

Embed Size (px)

Citation preview

Page 1: Presentation Web Services

DEI

Référence :Page : 1

Web Services

Présentation et cas d’usage.

Page 2: Presentation Web Services

DEI

Référence :Page : 2

Les concepts Les standards technologiquesLa conception d’un service web / J2EELimites, questions essentiellesAu delà du simple service webRéférences DEILab

Les Web Services

Page 3: Presentation Web Services

DEI

Référence :Page : 3

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

Les Web Services

Page 4: Presentation Web Services

DEI

Référence :Page : 4

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

Web Services / Contexte

Page 5: Presentation Web Services

DEI

Référence :Page : 5

Web Services / Définitions

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 ’

Page 6: Presentation Web Services

DEI

Référence :Page : 6

Web Services / Typologie

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, …)

Page 7: Presentation Web Services

DEI

Référence :Page : 7

Web Services / Découverte

Le concept de service intervient à plusieurs niveaux dans l ’architecture du SI.

Page 8: Presentation Web Services

DEI

Référence :Page : 8

Web Services / Découverte

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

Page 9: Presentation Web Services

DEI

Référence :Page : 9

Web Services / Découverte

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)

Page 10: Presentation Web Services

DEI

Référence :Page : 10

Web Services / Définitions

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

Page 11: Presentation Web Services

DEI

Référence :Page : 11

Web Services / usage des web services

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.

Page 12: Presentation Web Services

DEI

Référence :Page : 12

Web Services / avantages

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)

Page 13: Presentation Web Services

DEI

Référence :Page : 13

Web Services / nouveaux rôles

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

Page 14: Presentation Web Services

DEI

Référence :Page : 14

Web Services / nouveaux rôles

Page 15: Presentation Web Services

DEI

Référence :Page : 15

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

Les Web Services

Page 16: Presentation Web Services

DEI

Référence :Page : 16

Web Services / Modèle de communication

Modèles de communication

Synchrone ou RPC

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

Conversationnel

Page 17: Presentation Web Services

DEI

Référence :Page : 17

Web Services / Principe synchrone

Client Serveur

Contexte Requête

Réponse

Contratde service

Service

implémentation

inte

rfac

e

Document métierXML

1-2

3

4

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

Page 18: Presentation Web Services

DEI

Référence :Page : 18

Web Services / standards technologiques

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.

Page 19: Presentation Web Services

DEI

Référence :Page : 19

Web Services / standards technologiques

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

Page 20: Presentation Web Services

DEI

Référence :Page : 20

Web Services / standards technologiques

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

SOAP EnvelopeSOAP Envelope

Application Application MessageMessage

Page 21: Presentation Web Services

DEI

Référence :Page : 21

Web Services / standards technologiques

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

Page 22: Presentation Web Services

DEI

Référence :Page : 22

Web Services / standards technologiques

Exemple de message SOAP

Page 23: Presentation Web Services

DEI

Référence :Page : 23

Web Services / standards technologiques

Modélisation des messages XML Style Document/RPC

Encodage Literal/Encoded

Page 24: Presentation Web Services

DEI

Référence :Page : 24

Web Services / standards technologiques

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)

Page 25: Presentation Web Services

DEI

Référence :Page : 25

Web Services / standards technologiques

Page 26: Presentation Web Services

DEI

Référence :Page : 26

Web Services / standards technologiques

Exemple WSDL GIDE

Page 27: Presentation Web Services

DEI

Référence :Page : 27

Web Services / standards technologiques

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)

Page 28: Presentation Web Services

DEI

Référence :Page : 28

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

Web Services / Basic Profile

Page 29: Presentation Web Services

DEI

Référence :Page : 29

Web Services / infrastructure technique

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

Page 30: Presentation Web Services

DEI

Référence :Page : 30

La conception d’un web service J2EE Démarche top/down | bottom/up Principe de fonctionnement Les API /JSR Outillage

Les Web Services

Page 31: Presentation Web Services

DEI

Référence :Page : 31

Web Services / Démarche

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

implémentationdu service

Page 32: Presentation Web Services

DEI

Référence :Page : 32

Web Services / Démarche

Création d ’un web service : approche Bottom/UpToute classe Java peut-être automatiquement exposée

comme un service (style RPC)Une opération par méthodeGénération des messages SOAP Sérialisation/déserialisation

des types courantsGestion des exceptionsGénération automatique du WSDL

Page 33: Presentation Web Services

DEI

Référence :Page : 33

Web Services / Démarche

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

Page 34: Presentation Web Services

DEI

Référence :Page : 34

Web Services / Démarche

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

Page 35: Presentation Web Services

DEI

Référence :Page : 35

Web Services / Principe de fonctionnement

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");

Page 36: Presentation Web Services

DEI

Référence :Page : 36

Web Services / Les JSR à connaître

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

Page 37: Presentation Web Services

DEI

Référence :Page : 37

Web Services / outillage

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

Page 38: Presentation Web Services

DEI

Référence :Page : 38

Web Services / outillage

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

Page 39: Presentation Web Services

DEI

Référence :Page : 39

Limites et Questions essentielles

Les Web Services

Page 40: Presentation Web Services

DEI

Référence :Page : 40

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

Peu adaptés aux batchs, au transfert en masse de données

Les Web Services / Limites -Questions essentielles

Page 41: Presentation Web Services

DEI

Référence :Page : 41

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

Les Web Services / Limites -Questions essentielles

Page 42: Presentation Web Services

DEI

Référence :Page : 42

Au delà du simple Service Web Les exigences de sécurité des web services Des standards qui évoluent

Les Web Services

Page 43: Presentation Web Services

DEI

Référence :Page : 43

Les Web Services / La sécurité

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

Page 44: Presentation Web Services

DEI

Référence :Page : 44

Les Web Services / La sécurité

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

Page 45: Presentation Web Services

DEI

Référence :Page : 45

Les Web Services / La sécurité

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 attaquesFirewalls, IDS, ...

Page 46: Presentation Web Services

DEI

Référence :Page : 46

Les Web Services / Des standards qui évoluent

TransactionBTP, WS-Transaction & Coordination

Intégrité, confidentialitéXML Encryption, WS Security

Single Sign OnSAML

Gestion de clés publiques/privéesXKMS

Représentation des processusBPEL, BPML, XLANG, WSFL, WSCI, WS Choreography

Page 47: Presentation Web Services

DEI

Référence :Page : 47

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)

Les Web Services