Presentation Web Services

Preview:

Citation preview

DEI

Référence :Page : 1

Web Services

Présentation et cas d’usage.

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

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

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

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 ’

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

DEI

Référence :Page : 7

Web Services / Découverte

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

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

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)

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

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.

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)

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

DEI

Référence :Page : 14

Web Services / nouveaux rôles

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

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

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

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.

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

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

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

DEI

Référence :Page : 22

Web Services / standards technologiques

Exemple de message SOAP

DEI

Référence :Page : 23

Web Services / standards technologiques

Modélisation des messages XML Style Document/RPC

Encodage Literal/Encoded

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)

DEI

Référence :Page : 25

Web Services / standards technologiques

DEI

Référence :Page : 26

Web Services / standards technologiques

Exemple WSDL GIDE

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)

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

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

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

DEI

Référence :Page : 31

Web Services / Démarche

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

implémentationdu service

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

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

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

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

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

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

DEI

Référence :Page : 38

Web Services / outillage

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

DEI

Référence :Page : 39

Limites et Questions essentielles

Les 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

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

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

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

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

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

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

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

Recommended