CDCINT

quaggaholeInternet and Web Development

Aug 15, 2012 (5 years and 4 days ago)

251 views

DEI

Référence :

Page :
1

Web

Services


Présentation

et

cas

d’usage
.




DEI

Référence :

Page :
2


Les

concepts



Les

standards

technologiques


La

conception

d’un

service

web

/

J
2
EE


Limites,

questions

essentielles


Au

delà

du

simple

service

web


Ré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

(W
3
C,

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
Contrat
de service
Service
implémentation
interface
Document métier
XML
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 Envelope


Application Message


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

W
3
C




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
.



V
1
.
2

(WS
-
I

Basic

Profil

1
.
0

:

v
1
.
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



V
3
.
0

(WS
-
I

Basic

Profile

1
.
0

:

v
2
.
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

J
2
EE



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émentation
du service
DEI

Référence :

Page :
32



Web

Services

/

Démarche


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




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

J
2
EE


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

J
2
EE

1
.
4



Situation

de

la

Caisse

des

dépôts



Websphere

5
.
1

est

compatible

J
2
EE

1
.
3

et

JAX
-
RPC

1
.
0

(JSR
101
)

et

JSR

109
.


Tomcat

n

’est

pas

un

conteneur

J
2
EE

(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

J
2
EE


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

attaques


Firewalls,

IDS,

...


DEI

Référence :

Page :
46



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


DEI

Référence :

Page :
47


Références

DEILab




Mise

en

œuvre

de

Web

Services

avec

J
2
EE

(D
-
SE
13
/FB/
04
-
470
)



Guide

création

web

service

(C
-
LABPR_WS_
06
-
245
)



Accès

à

un

Service

Web

J
2
EE

(C
-
LABPR_WS_
06
-
250
)











Les

Web

Services