Iv web services l.jpg
This presentation is the property of its rightful owner.
Sponsored Links
1 / 50

IV. Web Services PowerPoint PPT Presentation


IV. Web Services. Objectifs Architecture Protocole web (SOAP) Composition et de services web Position du marché Conclusion. 1. Besoins des Applications Web. Le Web classique (1.0) Conçu pour les applications à interactions humaines Partage d'information publiée par les serveurs

Download Presentation

IV. Web Services

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Iv web services l.jpg

IV. Web Services

Objectifs

Architecture

Protocole web (SOAP)

Composition et de services web

Position du marché

Conclusion


1 besoins des applications web l.jpg

1. Besoins des Applications Web

  • Le Web classique (1.0)

    • Conçu pour les applications à interactions humaines

    • Partage d'information publiée par les serveurs

    • E-commerce de type B2C

  • Extensions nécessaires

    • Accès à l'information depuis des programmes

    • Accès par le Web à des applications existantes

    • Interopérabilité entre applications sur Internet/Intranet

    • Processus de e-commerce B2B automatisés

    • Sociétés et clients doivent pouvoir travailler ensemble

    • Eviter le danger de « mort par isolation »

Introduction


Principes des services web l.jpg

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 interface composée de fonctions

    • Paramètres structurés et diversifiés en place des URL longues contraignantes (ASCII, plats,  4K)

  • 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


Exemple d applications l.jpg

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

    • Mise à jour de logiciels

  • 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


2 architecture web services l.jpg

2. Architecture Web Services

SERVEUR

Service

Provider

SERVEUR

Service

Provider

Request

Publish

Publish

Service

Registry

Request

Service

Provider

SERVEUR

Publish

SERVEUR

Publish

Request

Find

Service

Provider

SERVEUR

Request

WEB-HTTP

Service

Requester

CLIENT

Architecture


Qu est ce qu un web service l.jpg

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


Les constituants l.jpg

Les constituants

  • 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


Vue d ensemble l.jpg

Vue d'ensemble

Category

W

S

D

L

UDDI

Descriptionof providers

and services

Find?

Provider

Application

WSDLService

Publication

Interface client

XML

Service

Call

Service

Provider

Encodeur

SOAP

Interface

Service

Translateur

SOAP

HTTP/S

Architecture


Description des services wsdl l.jpg

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

Service

Port

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

Port

Binding

(e.g. SOAP)

Binding

Abstract interface

portType

operation(s)

inMessage

outMessage

Architecture


Description en wsdl l.jpg

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


Exemple getlasttradeprice l.jpg

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


Annuaire des services uddi l.jpg

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 des services: UDDI

Annuaire

UDDI

Annuaire

UDDI

Gérant de

requêtes

Enveloppe

+

Document

Dde de

Service

Programme

Architecture


Contenu de l annuaire l.jpg

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

Contenu de l’annuaire

tModel

BusinessEntity

Spécifs d’interfaces

et taxonomies

BusinessService

Publisher

Assertion

Binding

Templates

Relations entre

deux parties

Infos techniques

Architecture


Principaux fournisseurs l.jpg

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


Client web de recherche l.jpg

Client Web de Recherche

Architecture


3 soap l.jpg

3. SOAP

Appelé

  • Inspiré du RPC DCE adapté à XML

    • Appel de procédure distante sur Internet

Appelant

Stub ou

Proxy

Appelant

Skeleton ou

Listener

Appelé

Souche

Réseau d'interconnexion

Souche

SOAP


Qu est ce que soap l.jpg

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'interfaces

SOAP


Un change type l.jpg

Un échange type

Port de connexion (URL)

Pare-feu

Pare-feu

Messages

SOAP

Procuration

d'interface

Appel

Translateur

SOAP

Application Cliente

HTTP

RPC

local

Réponse

Parser XML

Parser XML

Serveur d'application

CLIENT

SERVEUR

SOAP


El ments d un message l.jpg

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


Structure d un message l.jpg

Structure d'un message

Protocol Headers

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

<Envelope>

SOAP Envelope

<Header>

SOAP Header

<Body>

SOAP Body

SOAP


Exemple l.jpg

Exemple

  • www.stockquoteserver.com

  • float GetLastTradePrice (Symbol)

  • Le dialogue :

Application

Application

SOAP Request

Interface

Interface

Reply

SOAP

SOAP

HTTP

HTTP

Error

www.xquark.org

www.stockquoteserver.com

SOAP


La requ te l.jpg

La requête

  • POST /StockQuote HTTP/1.1Host: 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


La r ponse l.jpg

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


Exemple google l.jpg

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


Bilan soap l.jpg

Protocole d’invocation de services Web

Lisible et extensible

Au-dessus de HTTP

Description en WSDL

Possibilité d’attachements MIME (PDF, GIF, BIN, …)

Pousser par Microsoft, IBM, BEA, …

CORBA ou DCOM « killer »?

Associé à nomination des objets

Véritable échange de messages entre objets

Performance ?

Questions ?

Bilan SOAP

SOAP


4 composition de services web l.jpg

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 sûrs

Gestion de transactions

Business Process Management

Workflow d’activité

Exemple : réservation

4. Composition de Services Web

Début

Réserver

Hotel

OK ?

non

Echec

oui

Réserver

Avion

OK ?

non

Réserver

Train

oui

OK ?

Louer

Voiture

oui

non

Echec

OK ?

non

Echec

oui

Succès

BPM


Objectifs l.jpg

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

  • Fourniture d’outils avec interfaces graphiques permettant de déclarer les compositions sans programmer

BPM


Les briques standardiser l.jpg

Les briques à standardiser

Choreography - CDL4WS

Orchestration - BPEL4WS

BusinessProcesses

Transactions

Quality ofService

Notifications

WS-Security

WS-Messaging

Quality

Management

Discovery

UDDI

Description

Description

WSDL

SOAP

Message

XML

Transport

HTTP, IIOP, JMS, SMTP

BPM


Ws messaging l.jpg

WS-Messaging

  • Objectifs :

    • Assurer le transfert fiable de messages en présence de pannes

    • Identifier et tracer les messages

    • S’intégrer aux en-têtes SOAP

  • Moyens

    • Numérotation des messages par séquences

    • Accusés de réception

BPM


Ws transaction l.jpg

WS-Transaction

  • Objectifs

    • Permettre l’atomicité des transactions courtes

    • Gérer efficacement les transactions longues multi-sites

    • Supporter des business process fiables

  • Moyens : deux modèles intégrés

    • Atomic transaction (AT)

      • Utilisé pour assurer l’atomicité d’activités de courte durée

      • Intégration du protocole de validation en deux étapes

    • Business Activity (BA)

      • Utilisé pour coordonner des activités de longues durées

      • Intégration des sagas avec des compensations de fonctions

    • Les messages de contrôle s’intègrent aux entêtes SOAP

BPM


Ws security fonctions de base l.jpg

WS-Security : Fonctions de base

  • Authentification: Qui a envoyé ce message ?

    • Attestations (Credentials)

      • Login/Password

      • Certificat digital

  • Autorisation: Que peut faire cet utilisateur ?

    • Droits d’accès accordés aux utilisateurs

    • Utilisation de rôles pour grouper les droits

  • Confidentialité: Qui peut lire ce message ?

    • Cryptage des données

    • Clés secrètes ou couple publique/privée pour crypter/décrypter

  • Intégrité: Quelqu’un a-t-il modifié ce message message?

    • Signature digitale pour comparer messages envoyés et reçus

BPM


Ws security les standards l.jpg

WS-Security : Les standards

  • XKMS (XML Key Management Specification)

    • Gestion des clés publiques et privées

    • Encapsule les architectures PKI

  • XML Signature – W3C

    • Ajoute une signature codée en XML au message

    • La signature est le cryptage d’un digest par clé privé

    • Le digestest obtenu par hachage du document signé

  • XML Encryption – W3C et IETF

    • Cryptage des messages

    • Possibilité de crypter des fragments différemment

    • Le fragment crypté est remplacé par du binaire base 64

BPM


Ws bpel business process modelling l.jpg

WS-BPEL : Business Process Modelling

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

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

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

Les activités correspondent à des services Web

[ WS]

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

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

BPM


Ws bpel exemple l.jpg

WS-BPEL : Exemple

  • Description du flux d’activité en XML

<sequence>

Receive <PO>

<flow>

Invoke <InventoryService>

Invoke <CreditService>

</sequence>

Reply <Invoice>

BPM


Les standards de l oasis l.jpg

WS-Messaging 1.1

Juin 2007

WS-Transaction 1.1

mai 2007

WS-Security

Février 2006

WS-BPEL 2.0

Avril 2007

Les standards de l’OASIS

BPML

(Intallio et al)

BPSS

(ebXML)

WSCI

(Sun et al)

WS-Choreography

(W3C)

2000/05

2001/03

2001/05

2001/06

2002/03

2002/06

2002/08

2003/01

2003/04

XLang

(Microsoft)

WSFL

(IBM)

WSCL

(HP)

BPEL4WS 1.0(IBM, Microsoft)

BPEL4WS 1.1(OASIS)

BPM


Bilan processus m tiers l.jpg

Un domaine chaud

Au cœur des architectures SOA

Développements de nombreux outils

BPEL s'impose comme un standard de l’OASIS

Le W3C a des groupes de travail connexes

Vers plusieurs standards pour la qualité de services

WS-Messaging

WS-Transaction

WS-Security

WS-Notification

Questions ?

Bilan Processus Métiers

BPM


5 strat gie des constructeurs l.jpg

5. Stratégie des constructeurs

  • Au cœur des systèmes Microsoft

    • Evolution de DNA vers .Net avec échanges en XML

    • Visual Studio.Net et .Net Framework 2.0 SDK

      • Permettent le développement de Web Services

      • Génération de proxy client à partir de WSDL

      • Publication et découverte facilitées en UDDI

      • Utilisable depuis 20 langages de programmation

      • Développement possible de pages ASP comme WS

      • Invocables depuis les outils Office

    • Version open source de .Net par Novell: Mono

Stratégie


Architecture net l.jpg

Architecture .NET

Visual Studio.NET

VB

C++

C#

JScript

J#

Common Language Specification

ASP.NET

Web Forms Web Services

Windows

Forms

ADO.NET and XML

Base Class Library

Common Language Runtime

Operating System

Stratégie


Extensions des web services l.jpg

Extensions des Web Services

  • Sécurité, routage et attachements binaires

  • WCF (Windows Communication Framework)

    • Implémentation des standards WS-* de ws-i.org

    • Moteur de workflow de base

Stratégie


Exemple de d veloppement ws en asp net l.jpg

Exemple de développement WS en ASP.Net

<%@ WebService Language="VB" Class= "StockQuote" %>

Imports System

Imports System.Web.Services

Public Class StockQuote :Inherits WebService

<WebMethod()> Public Function GetLastTradePrice

(ByVal tickerSymbol As String) As Float

/* Calcul du prix Price */

Return Price

End Function

End Class

  • Génération automatique du WSDL et du translateur SOAP

  • Possibilité d’appel par client HTTP ou API SOAP générée

Stratégie


Int r t de la g n ralisation des ws l.jpg

Intérêt de la généralisation des WS

Applications

Partenaires

Infrastructure “Information Worker”

Infrastructure Applicative

Web Services

Pattern & Design, ASP.NET Web Matrix,

ASP.NET starter kit, Communautés

Gestion des Données

Outils de développement

Administration et Sécurité

Unix

AS400

Infrastructure Système

Linux

OS390

Stratégie


Produits j2ee l.jpg

Produits J2EE

  • Apache AXIS2 (Open Source)

    • Servlet permettant de déployer les services à partir d’un fichier archive et d’un descripteur XML

    • Génération automatique du WSDL

    • Appel du servlet depuis SOAP par browser ou client riche

  • 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

    • Large support expérimental de BPEL

Stratégie


Architecture type l.jpg

Architecture Type

Stratégie


Java ws developer pack sun l.jpg

Java WS Developer Pack (Sun)

  • Boite à outils logiciel gratuite pour construire, tester et déployer les applications Java/XML

  • Supporte les dernières versions des technologies et standards Web Services

  • Avec la dernière version Java WSDP 2.0, les développeurs :

    • Develop and deploy using the latest XML and Web services technologies slated for inclusion into Sun's deployment platforms.

    • Enhance Web services performance without revising WSDL files or application code with the refreshed Fast Infoset features from Java WSDP 1.6.

    • Create XML and Web service-enabled applications that exploit the enhanced security features with enhanced XWSS features.

    • Continue to enjoy Java interoperability and portability across different platforms and devices.

    • Simplify and lower the cost of legacy application integration, data interchange, and publishing in a Web environment.

Stratégie


Architectures inter op rables l.jpg

Architectures inter-opérables

HTML

Serveur de

présentation

Visual studio

XML

XML

WEB SERVICES

.NET

XML

Java, C++, C#,

Word, Excel, …

WEB SERVICES

J2EE

Stratégie


Position des constructeurs l.jpg

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

Position des constructeurs

Ability to Execute

Completeness of Vision

Challengers

Leaders

Microsoft

IBM

BEA

Oracle

SAP

Fujitsu

Sun

HP

CA

Novell

Siebel

Peoplesoft

Niche Players

Visionaries

Conclusion


Exemple d application dollar rent a car l.jpg

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.

Exemple d'application: Dollar Rent a Car

XML / SOAP

NorthWest

XML / SOAP

ACMS

Frontal WS

SouthWest

GlobalDistributionSystems

Sabre

Worldspan

Amadeus

Galileo

$4

VaxVMS

Dollar Rent a Car

Conclusion


Ligue de football professionnel l.jpg

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


Sncf fid lisation clients crm l.jpg

SNCF: Fidélisation clients (CRM)

  • Aujourd'hui, la filiale Chargée de la gestion des programme de fidélité (cartes seniors, 12/25 ans ou grand voyageur) s'appuie sur plus de 30 modules Siebel dont les principaux sont Loyalty, pour la gestion de la fidélité pure, Call Center, Analytics (reporting et tableaux de bords) et Gestion des campagnes marketing. Il dispose d'une douzaine de sites de production dont l'outil interne de fidélisation de la SNCF, auquel il se connecte régulièrement pour mettre à jour ses données. Enfin, deux centres d'appels relaient les besoins clients liés à l'aspect fidélisation."Après 3 mois de mise en production, nous disposons d'un système qui fonctionne bien. Nous distribuons plus de 30 000 primes par mois, dont 30% par nos services Internet. Nous envoyons nos premiers mailings depuis trois semaines", ajoute Cyril Garnier. A terme, de nouvelles fonctions viendront encore enrichir l'offre de services Web tels le relevé de points à distance, l'achat de cartes, la modification de coordonnées clients ou la transformation des points en réservations.

  • Extrait du JDNET du 07/11/2005

Conclusion


7 en r sum l.jpg

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 (BPEL)

Ajout de contrôle qualité (transaction, sécurité)

Questions ?

7. En résumé ...

Conclusion


  • Login