52
G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

Embed Size (px)

Citation preview

Page 1: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

G. Gardarin

Web ServicesObjectifsArchitectureProtocole web (SOAP)Composition de services web SécuritéConclusion

Page 2: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.2 G. Gardarin

1. Besoins des Applications Web

Le Web classique• Conçu pour les applications à interactions

humaines• Partage d'information• E-commerce de type B2C

Extensions nécessaires• Accès à l'information depuis des programmes• Processus de e-commerce B2B automatisés• Interopérabilité entre applications• Plate-forme pour le calcul distribué

Introduction

Page 3: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.3 G. Gardarin

Principes des services Web

Proposer une plate-forme de traitement distribuée autour d'Internet/Intranet

Permettre l'interopérabilité totale entre composants

Offrir un modèle de composants simple• Modules avec interfaces de fonctions• Paramètres structurés et diversifiés en place des URL

longues contraignantes (ASCII, plats, 255) Permettre de découvrir dynamiquement les

services• Annuaire de services et service de recherche

Offrir des outils d'intégration de composants A l'échelle de l'Internet ou de l'Intranet

Introduction

Page 4: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.4 G. Gardarin

Exemple d'applications

Diffusion d'information• horaires, incidents, états de stocks• cours de bourse, entrées d'annuaires, etc.

Contrôle d'information• Autorisation de cartes de crédits• Authentification d'un client

Documentation automatique• présentation, marketing, veille technologique• librairie électronique, manuels, maintenance, etc.• communication et "knowledge management"

Commerce électronique• présentation, sélection, transaction, médiation, etc.

Introduction

Page 5: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.5 G. Gardarin

2. Architecture Web Services

Architecture

ServiceRequester

ServiceProvider

ServiceProvider

ServiceProvider

ServiceProvider

WEB-HTTP

CLIENT

ServiceRegistry

Request

Request

Request

Request

Publish

Publish

Publish

Publish

Find

SERVEUR

SERVEUR

SERVEUR

SERVEUR

SERVEUR

Page 6: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.6 G. Gardarin

Qu'est ce qu'un Web Service ?

Définition [W3C]• Un Web service est un composant logiciel identifié par une URI,

dont les interfaces publiques sont définies et appelées en XML.• Sa définition peut être découverte par d'autres systèmes

logiciels. • Les services Web peuvent interagir entre eux d'une manière

prescrite par leurs définitions, en utilisant des messages XML portés par les protocoles Internet.

Exposition• Langage WSDL utilisé pour décrire le service• Similaire à IDL mais basé sur XML

Activation• Protocole Web au-dessus de HTTP (RPC XML, SOAP)• Autres protocoles possibles …

Architecture

Page 7: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.7 G. Gardarin

Les Composants

Service Provider (Fournisseur de service)• Application s'exécutant sur un serveur et comportant

un module logiciel accessible par IxxNet en XML

Service Registry (Annuaires de service)• Annuaire des services publiés par les providers (UDDI)• Géré sur un serveur niveau application, entreprise ou

mondial

Service Requester (Demandeur de service)• Application cliente se liant à un service et invoquant

ses fonctions par des messages XML (SOAP)

Architecture

Page 8: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.8 G. Gardarin

Vue d'ensemble

HTTP/S

Descriptionof providersand services

UDDI CategoryCategoryProviderProvider

WSDLService

Publication

WSDLService

Publication

SOAP Transport

SOAP Transport

SOAP Client SOAP Client

XMLService

Call

SOAP Transport

SOAP Transport

ServiceService

ServiceProvider

Applicationdiscovery?

Architecture

Page 9: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.9 G. Gardarin

Description des services: WSDL

Elément Type• Types des paramètres (schéma XML)

Elément Message• Appel et retour d'opération

Elément Port type• Groupe d'opération

Elément Binding• URL de l'opération• Type de protocole

Architecture

Service

Port(e.g. http://host/svc)

Binding(e.g. SOAP)

Abstract interface

portType

operation(s)

inMessage outMessage

Port

Binding

Page 10: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.10 G. Gardarin

Description en WSDL

<definitions name = "..." xmlns: …>   <types>

<!--Définition des types de données; basés sur ceux des schémas --> … </types> 

<message><!--Déclaration des messages (entrées et sorties)--> … </message>

<portType><!--Déclaration des opérations (par association des messages)--> …

</portType> <binding>

<!--Définition de la liaison WSDL – SOAP (noms d'actions et codages)--> </binding>

<service name= " … " ><!--Déclaration des ports (groupes d'opérations et protocoles d'accès)--

>… </service></definitions>

Architecture

Page 11: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.11 G. Gardarin

Exemple: GetLastTradePrice <?xml version="1.0"?> <definitions name="StockQuote"> <types> <schema> <element name="TradePriceRequest"> <complexType> <all>

<element name="tickerSymbol" type="string"/> </all> </complexType> </element> <element name="TradePrice"> <complexType> <all> <element name="price" type="float"/> </all> </complexType> </element> </schema> </types>

<message name="GetLastTradePriceInput"> <part name="body" element="xsd1:TradePriceRequest"/> </message>

<message name="GetLastTradePriceOutput"> <part name="body" element="xsd1:TradePrice"/> </message>

<portType name="StockQuotePortType"> <operation name="GetLastTradePrice"> <input message="tns:GetLastTradePriceInput"/> <output message="tns:GetLastTradePriceOutput"/> </operation> </portType>

<binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="GetLastTradePrice"> <soap:operation soapAction="http://example.com/GetLastTradePrice"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding>

<service name="StockQuoteService"> <documentation>My first service</documentation> <port name="StockQuotePort" binding="tns:StockQuoteBinding"> <soap:address location="http://example.com/stockquote"/> </port> </service>

</definitions>

Architecture

Page 12: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.12 G. Gardarin

Annuaire des services: UDDI

Universal Description, Discovery and Integration

Annuaire des services• décrit par un document• WSDL, spec. EJB, autre …

Accessible en SOAP Fonctions

• Enregistrer votre société• Enregistrer des services• Enregistrer des opérations• Découvrir des services• …

Annuaire UDDI

Gérant de requêtes

Enveloppe+

Document

Programme

Dde deService

Annuaire UDDI

Architecture

Page 13: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.13 G. Gardarin

Contenu de l’annuaire

Pages blanches (businessEntity)• BusinessKey• Name• Description• CategoryBag• BusinessServices

Pages jaunes (businessService)• ServiceKey• BusinessKey• Name• Description• CategoryBag• BindingTemplates

Pages vertes (bindingTemplates)• BindinKey• ServiceKey• Description• AccessPoint

Contenu défini par un schéma XML

Spécifications pour réplication

BusinessEntityBusinessEntity

BusinessServiceBusinessService

BindingTemplatesBindingTemplates

tModeltModel

publisherAssertionpublisherAssertion

Spécifs de services et taxonomies

Relations entre deux parties

Infos techniques

Architecture

Page 14: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.14 G. Gardarin

Principaux fournisseurs

IBM UDDI Registry• Un registre UDDI avec des fonctionnalités de recherche• www-3.ibm.com/services/uddi/

Microsoft UDDI Business Registry (UBR)• uddi.microsoft.com/default.aspx

SAP UDDI Business Registry• Public pour l'instant

Systinet Registry• Support complet de UDDI V3• www.systinet.com/products/sr/overview

Oracle Application Server UDDI Registry• otn.oracle.com/tech/webservices/htdocs/uddi/

Architecture

Page 15: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.15 G. Gardarin

Client Web de Recherche

Architecture

Page 16: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.16 G. Gardarin

3. SOAP

Inspiré du RPC DCE adapté à XML• Appel de procédure distante sur Internet

Appelant

Appelé

Appelant

Appelé

Souche Réseau d'interconnexion

Souche

Stub ouProxy

Skeleton ouListener

SOAP

Page 17: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.17 G. Gardarin

Qu'est-ce-que SOAP ?

Simple Object Access Protocol • Ni simple, ni objet …

Invocations de fonctions en XML au-dessus de HTTP :• Pour accéder services, objets et serveurs• Indépendant de toute plate-forme

Codage universel XML par opposition aux spécifiques :• DCOM - DCE/NDR• CORBA - IIOP/CDR• JAVA - RMI/JRMP• RDA - XDR

Résolution des problèmes de session, sécurité, transaction …

Associé à WSDL pour publication d'interfacesSOAP

Page 18: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.18 G. Gardarin

Un échange type

Application Cliente

Parser XML

Procuration

d'interface

Translateur

SOAP

Parser XML Serveur

d'application

Messages

SOAPAppel

Réponse

HTTP

RPC

local

Port de connexion (URL)

Pare-feu Pare-feu

SOAP

CLIENT SERVEUR

Page 19: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.19 G. Gardarin

Eléments d'un message

Envelope• Élément pouvant contenir des déclarations

d'espaces de noms ou des sous-éléments

Header• Élément optionnel fils de Envelope• Permet des extensions telles que authentification,

session, etc.

Body • Élément obligatoire fils de Envelope• Définit la méthode appelée, contient les paramètres• Peut contenir un élément Fault en cas d'erreur

SOAP

Page 20: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.20 G. Gardarin

Structure d'un message

Protocol Headers

SOAP Envelope

SOAP Header

SOAP Body

Entête de protocoles (HTTP, SMTP, …)

<Envelope>

<Header>

<Body>

SOAP

Page 21: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.21 G. Gardarin

Exemple

www.stockquoteserver.comfloat GetLastTradePrice (Symbol)

Le dialogue :

Application

Middleware

SOAP

HTTP

Application

Middleware

SOAP

HTTP

www.stockquoteserver.com

Request

Reply

Error

www.xquark.org

SOAP

Page 22: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.22 G. Gardarin

La requête POST /StockQuote HTTP/1.1

Host: www.stockquoteserver.comContent-Type: text/xml; charset="utf-8"Content-Length: nnnn

SOAPAction: "Some-URI#GetLastTradePrice"

<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap">   <SOAP:Body>       <m:GetLastTradePrice xmlns:m="Some-URI">           <symbol>DIS</symbol>       </m:GetLastTradePrice>   </SOAP:Body></SOAP:Envelope>

Standard HTTP

SOAP

Page 23: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.23 G. Gardarin

La réponse

HTTP/1.1 200 OKContent-Type: text/xml; charset="utf-8"Content-Length: nnnn

<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap"/>   <SOAP:Body>       <m:GetLastTradePriceResponse xmlns:m="Some-URI">           <Price>34.5</Price>       </m:GetLastTradePriceResponse>   </SOAP:Body></SOAP:Envelope>

Standard HTTP

SOAP

Page 24: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.24 G. Gardarin

Exemple: Google

Search requests • Soumet une requête avec un ensemble de

paramètres à Google Web APIs service et reçoit en réponse un ensemble de résultats de recherche.

Cache requests • Soumet une URL à Google Web APIs service et

reçoit en réponse le contenu de l'URL lors de la dernière visite du crawler Google.

Spelling requests • Soumet une requête à Google Web APIs service et

reçoit en réponse une suggestion de correction orthographique pour la requête.

SOAP

Page 25: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.25 G. Gardarin

Bilan SOAP Protocole d’invocation

de services Web • Lisible et extensible• Au-dessus de HTTP• Passant les firewalls• Description en WSDL• Pousser par Microsoft,

IBM, BEA, … CORBA ou DCOM « killer

»?• Associé à nomination des

objets• Véritable échange de

messages entre objets• Performance ?

Questions ?

SOAP

Page 26: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.26 G. Gardarin

4. Stratégie des constructeurs

Outil de développement .NET• .net Framework SDK

(//msdn.microsoft.com/webservices)• Support depuis Visual Studio .Net• Développement en tout langage (VB, C++, C#)• Deux composants essentiels

Common Language Runtime (MSIL) .net class Libraries (GUI, DB, ASP, …)

Au cœur des systèmes MS• Evolution de DNA vers .net, Visual Studio.net, …• Compilation des langages MS en MSIL• Machine virtuelle pour l'exécution• Semblable à Java mais MS

Stratégie

Page 27: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.27 G. Gardarin

Architecture .NET

VB C++ JScript …C#

ASP.NET ADO.NETBCL.NET

Common Language Runtime (CLR)

Windows et COM+ Services

SOAP&

XML

Toolkits

VisualStudio.NET

Stratégie

Page 28: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.28 G. Gardarin

Infrastructure Système

Gestion des Données

Infrastructure Applicative

Infrastructure “Information Worker”Infrastructure “Information Worker”

Ou

tils

de d

évelo

pp

em

en

tO

uti

ls d

e d

évelo

pp

em

en

t

Ad

min

istr

ati

on

et

Sécu

rité

Ad

min

istr

ati

on

et

Sécu

rité

Pat

tern

& D

esig

n,

AS

P.N

ET

Web

Mat

rix,

AS

P.N

ET

sta

rter

kit

, Co

mm

un

auté

s

Applications Applications

PartenairesPartenaires

Exemple: plate-forme d’Entreprise MS

UnixUnix

LinuxLinux OS390OS390

AS400AS400

Web ServicesWeb Services

Page 29: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.29 G. Gardarin

Statégie J2EE de SUN, IBM, …

Offrent un ensemble d'API pour Java2 et XML (JAX)• Java API for XML Processing (JAXP)

Parsers, Processeur de feuilles de style

• Java Architecture for XML Binding (JAXB) Mapping de XML sur des objets Java

• Java API for XML Messaging (JAXM) Echange de messages SOAP

• Java API for XML-based RPC (JAX-RPC) Génération de WSDL

• Java API for XML Registries (JAXR) Accès à l'annuaire UDDI

Stratégie

Page 30: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.30 G. Gardarin

Produits J2EE

Apache AXIS (Open Source)• Servlet permet de déployer les services• Appel servlet depuis SOAP

Intégrés aux serveurs d'applications• API JAX chez IBM, BEA, Oracle, SUN, …• Equivalent de .NET dans le monde Java (JSP ~ ASP) • Nombreux assistants et outils

Stratégie

Page 31: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.31 G. Gardarin

Architectures inter-opérables

Serveur de présentation

XML

XML

HTML

Stratégie

Java, C++, C#, Word, Excel, …

WEB SERVICESJ2EE

XMLVisual studio

WEB SERVICES.NET

Page 32: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.32 G. Gardarin

Position des constructeurs Composants métiers

appelables par message XML

Encapsulent les applications existantes

Début du développement des architectures SOA

Agilité du système d'information

Développement des workflows de coopération

Completeness of VisionCompleteness of Vision

Challengers Leaders

Niche Players Visionaries

Ab

ilit

y t

o E

xecu

t eA

bi l

i ty

to

Exe

cut e

OracleOracle

IBMIBM

HPHP

BEA

MicrosoftMicrosoft

CACA

SiebelSiebelPeoplesoftPeoplesoft

NovellNovell

SAPSAPFujitsuFujitsu

SunSun

Conclusion

Page 33: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.33 G. Gardarin

Exemple d'application: Dollar Rent a Car

6e société US de location

400 sites dans 26 pays, 260 sites US; +75.000 véhicules

$750MM de revenu en 2001

Réservation à travers GDS

Une alternative à GDS:les services Web XML

Lien direct avec les partenaires… 25 en 2 mois.

Dollar Rent a CarDollar Rent a CarVaxVMSVaxVMSFrontal WSFrontal WS

ACMSACMSXML / SOAPXML / SOAP

SouthWestSouthWest

GGloballobalDDistributionistributionSSystemsystems

SabreSabre WorldspanWorldspanAmadeusAmadeus GalileoGalileo

XML / SOAPXML / SOAP

NorthWestNorthWest$4

Conclusion

Page 34: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.34 G. Gardarin

Ligue de Football Professionnel

Ligue de Football Professionnel (CA 990M Euros) rebâtit son système de billetterie en .NET: • Système dimensionné et validé pour 8000

ventes/minutes

Un nouveau système qui simplifie le développement de nouveaux canaux/ partenariat :• Interopérabilité via Services Web avec les réseaux

TicketNet et France Billet

Conclusion

Page 35: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.35 G. Gardarin

5. Processus métiers Objectifs

• Modéliser des processus métiers (business process)

• Composer des services Web distribués

• Piloter l'exécution Orchestration d'activités Echanges XML Gestion de transactions

• Business Process Management

Transaction Workflow

Exemple : réservation

BPM

Début

RéserverAvion

LouerVoiture

RéserverTrain

RéserverHotel

OK ?

OK ?

OK ?

OK ?

Echec

Echec

Echec

Succès

oui

oui

oui

oui

non

non

non

non

Page 36: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.36 G. Gardarin

Exemple : Pilotage Fabrication

Fournisseur

ERP

Usine

Partenaire

Echange B2B

Mainframe

Serveur d'entreprise

InterfaceXML

XML

XML

XML

XML

XML

Client

WEB

BPM

Page 37: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.37 G. Gardarin

Les briques à standardiser

Description

HTTP, IIOP, JMS, SMTP Transport

XMLMessage

SOAP

WSDL

UDDI Discovery

Transactions

CoordinationWS-SecurityWS-ReliabilityQuality ofService

Orchestration - BPEL4WS

BusinessProcesses

Context

Description

Man

agem

ent

Choreography - CDL4WS

Page 38: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.38 G. Gardarin

Composition de services

Objectifs:• Alliances entre business pour offrir des services

intégrés à valeur ajoutée en combinant des services existants

• Réutilisation et extension de services existants • Support pour la planification, la définition et

l'implémentation de services composés• Développement d'applications distribuées

composées de services web

BPM

Page 39: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.39 G. Gardarin

Quelques définitions

Processus métier (Business Process)• Module fonctionnel réalisé par enchaînement

d'activités business exécutées par des acteurs échangeant des messages et implémentant les objets et règles spécifiques à une entreprise.

Orchestration d'activité (Activity Orchestration)• Mécanisme d'invocation, de contrôle et de

coordination des activités participant à la réalisation de processus d'affaire.

Composition de services (Services Composition)• Techniques permettant d'assembler des services Web

pour réaliser des processus métiers par des primitives de contrôles (boucles, tests, traitement d'exception, etc.) et d'échanges (envoi et réception de messages).

BPM

Page 40: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.40 G. Gardarin

Modélisation par Workflow

Graphe acyclique d'activités modélisant un processus métier

BPM

Les activités représentent les unités de traitement

Les liens de données définissent le flux d'information.

[ WS]

Les activités peuvent être d'autres business process

Les liens de contrôle définissent le flux d'exécution

Les activités correspondent à des services Web

Page 41: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.41 G. Gardarin

Exemple

Modélisation en XML• Langage d'orchestration • Chorégraphie d'activités

<activity name="demandePaiement">

<join condition=”(reserverVoiture OR reserverAvion) AND reserverHotel” when=”deferred”>

</activity>

<activity name="reserverAvion">….

commandeVacances

reserverHotelreserverVoiture reserverAvion

demandePaiement

BPM

Commande/classe=1Commande/classe=2

reserverVacances

Page 42: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.42 G. Gardarin

Vers un standard ?

BPM

2000/05

XLang(Microsoft)

2001/03

BPML(Intallio et al)

2001/05

WSFL(IBM)

2001/06

BPSS(ebXML)

2002/03

BPEL4WS 1.0 (IBM, Microsoft)

BPEL4WS 1.1(OASIS)

2002/06 2003/01

WS-Choreography(W3C)

2003/04

WSCI(Sun et al)

WSCL(HP)

2002/08

Page 43: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.43 G. Gardarin

BPEL: Processus composé d'activités

Compositions des web services synchrones et asynchrones

Véritable langage de programmation parallèle codé en XML

Assignation de variables locales et globales

BPM

Page 44: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.44 G. Gardarin

Exemple BPEL

<sequence> <receive partnerLink=“customer” portType=“lns:purchaseOrderPT" operation=“sendPurchaseOrder” variable=“PO” createInstance="yes" /> <flow> <invoke partnerLink=“inventoryChecker” portType=“lns:inventoryPT” operation="checkINV" inputVariable="inventoryRequest" outputVariable="inventoryResponse" /> <invoke partnerLink="creditChecker" portType=“lns:creditPT" operation="checkCRED" inputVariable="creditRequest" outputVariable="creditResponse" /> </flow> ... <reply partnerLink=“customer” portType=“lns:purchaseOrderPT” operation=“sendPurchaseOrder” variable=“invoice"/>

</sequence>

BPM

Page 45: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.45 G. Gardarin

Qualité de services

Nécessité de fiabiliser• Les messages (WS-Reliability)• Les activités (WS-Transactions)

Courtes (Atomic Transactions) Longues (Business Activity)

Nécessité de sécuriser• Les échanges confidentiels (WS-Security)

BPM

Page 46: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.46 G. Gardarin

Bilan Processus Métiers

De multiples propositions• un domaine chaud (voir

SOA)

BPEL s'impose comme un standard de fait

Vers trois standards pour la qualité de services• WS-Reliable Messaging• WS-Transactions• WS-Security

Questions ?

BPM

Page 47: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.47 G. Gardarin

6. Protocoles de sécurité

Ensemble de protocoles pour sécuriser les échanges

Intégration aux services Web • WS-Security

Englobe les standards :• XKMS (XML Key Management Specification)

spécification conjointe du W3C et de l'IETF pour intégrer la gestion de clés et certificats aux applications XML.

délégation du traitement de la sécurité à un service spécialisé sur Internet offrant des services de gestion de clés publiques, certificats et signatures, accessible en SOAP.

• XML Signature• XML Encryption

Protocole Sécurité

Page 48: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.48 G. Gardarin

XML Signature

Qu'est-ce que XML Signature ?• Standard du W3C et de l'IETF• Signature de message en XML• Architecture PKI sous-jacente

Principes• Appliquées à des "data objects" arbitraires• Data objects sont placés dans un élément• Cet élément est signé • La signature est placée dans un élément signature

Protocole Sécurité

Page 49: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.49 G. Gardarin

Principe des signatures

L'égalité des résumés (digests) garantit que l'émetteur connaît la clé secrète de A, donc qu'il s'agit de A.

Document

HRésumé

SignatureCsA

CPBDocument

Signature

CsB

HRésumé

RésuméCPA

on compare

A B

Protocole Sécurité

Page 50: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.50 G. Gardarin

Structure du message

Protocole Sécurité

<Signature> <SignedInfo>

(CanonicalizationMethod) (SignatureMethod) (<Reference (URI=)? >

(Transforms)?(DigestMethod)

(DigestValue) </Reference>)+

</SignedInfo> (SignatureValue) (KeyInfo)? (Object)*

</Signature>

Décrit chaque objet à signer,en particulier sa localisation

Définit la liste des transformations appliquées à l'objet avant calcul du digest

Référence la méthode de calcul du digest

Contient la valeur du digest de l'objet

Contient la valeur du résumé de l'élément <SignedInfo> chiffré

Définit les clés de chiffrements nécessaires au calcul de la signature

Indique la méthode de canonisation des objets

Définit l'algorithme utilisé pour transformer l'élément SignedInfo canonisé en SignatureValue

Ouvre la signature électronique

Englobe l'information signée

Page 51: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.51 G. Gardarin

XML Encryption

Recommandation du W3C Protocole d'échange des

clés de cryptage• Clé publiques• Valeurs des données

cryptées• Algorithmes de cryptage

Chaque élément peut être crypté• Possibilité de crypter à

tout niveau• Clé symétrique ou

asymétrique

Exemple simple:<?xml version='1.0'?> <PaymentInfo>

<Name>John Smith <Name/> <EncryptedData> <CipherData>

<CipherValue>A23B45C56

</CipherValue> </CipherData> </EncryptedData>

</PaymentInfo>

Protocole Sécurité

Page 52: G. Gardarin Web Services Objectifs Architecture Protocole web (SOAP) Composition de services web Sécurité Conclusion

V.52 G. Gardarin

7. En résumé ... Invocation dynamique de

services WEB décrits en WSDL

SOAP est le protocole d'invocation (WP) sur HTTP

Intégrité et typage des données (schémas XML)

Possibilité de découvrir dynamiquement les services (UDDI)

Lisibilité et sécurité renforcée (standard de cryptage)

Indépendance des constructeurs (W3C)

Intégration des workflows Ajout de contrôle qualité

(transactions, sécurités)

Questions ?

Conclusion