IV. Web Services - PowerPoint PPT Presentation

About This Presentation
Title:

IV. Web Services

Description:

Acc s par le Web des applications existantes. Interop rabilit entre ... Choreography - CDL4WS. BPM. 29. WS-Messaging. Objectifs : Assurer le transfert fiable de ... – PowerPoint PPT presentation

Number of Views:86
Avg rating:3.0/5.0
Slides: 51
Provided by: george558
Category:

less

Transcript and Presenter's Notes

Title: IV. Web Services


1
IV. Web Services
  • Objectifs
  • Architecture
  • Protocole web (SOAP)
  • Composition et de services web
  • Position du marché
  • Conclusion

2
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
3
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
4
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
5
2. Architecture Web Services
SERVEUR
Service Provider
SERVEUR
Service Provider
Request
Publish
Publish
Service Registry
Service Provider
Request
SERVEUR
Publish
SERVEUR
Publish
Request
Find
Service Provider
SERVEUR
WEB-HTTP
Request
Service Requester
CLIENT
Architecture
6
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
7
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
8
Vue d'ensemble
HTTP/S
Architecture
9
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
10
Description en WSDL
  • ltdefinitions name "..." xmlns gt  
  • lttypesgt
  • lt!--Définition des types de données basés sur
    ceux des schémas --gt lt/typesgt 
  • ltmessagegt
  • lt!--Déclaration des messages (entrées et
    sorties)--gt lt/messagegt
  • ltportTypegt
  • lt!--Déclaration des opérations (par association
    des messages)--gt lt/portTypegt
  • ltbindinggt
  • lt!--Définition de la liaison WSDL SOAP (noms
    d'actions et codages)--gt lt/bindinggt
  • ltservice name "  " gt
  • lt!--Déclaration des ports (groupes d'opérations
    et protocoles d'accès)--gt lt/servicegt
  • lt/definitionsgt

Architecture
11
Exemple GetLastTradePrice
  • lt?xml version"1.0"?gt ltdefinitions
    name"StockQuote"gt
  • lttypesgt ltschemagt ltelement name"TradePriceRequest"
    gt ltcomplexTypegt ltallgt ltelement name"tickerSymbol"
    type"string"/gt lt/allgt lt/complexTypegt lt/elementgt
    ltelement name"TradePrice"gt ltcomplexTypegt ltallgt
    ltelement name"price" type"float"/gt lt/allgt
    lt/complexTypegt lt/elementgt lt/schemagt lt/typesgt
  • ltmessage name"GetLastTradePriceInput"gt ltpart
    name"body" element"xsd1TradePriceRequest"/gt
    lt/messagegt
  • ltmessage name"GetLastTradePriceOutput"gt ltpart
    name"body" element"xsd1TradePrice"/gt
    lt/messagegt
  • ltportType name"StockQuotePortType"gt ltoperation
    name"GetLastTradePrice"gt ltinput
    message"tnsGetLastTradePriceInput"/gt ltoutput
    message"tnsGetLastTradePriceOutput"/gt
    lt/operationgt lt/portTypegt
  • ltbinding name"StockQuoteSoapBinding"
    type"tnsStockQuotePortType"gt ltsoapbinding
    style"document" transport"http//schemas.xmlsoap
    .org/soap/http"/gt ltoperation name"GetLastTradePri
    ce"gt ltsoapoperation soapAction"http//example.co
    m/GetLastTradePrice"/gt ltinputgt ltsoapbody
    use"literal"/gt lt/inputgt ltoutputgt ltsoapbody
    use"literal"/gt lt/outputgt lt/operationgt lt/bindinggt
  • ltservice name"StockQuoteService"gt
    ltdocumentationgtMy first servicelt/documentationgt
    ltport name"StockQuotePort" binding"tnsStockQuot
    eBinding"gt ltsoapaddress location"http//example.
    com/stockquote"/gt lt/portgt lt/servicegt
  • lt/definitionsgt

Architecture
12
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
Annuaire UDDI
Gérant de requêtes
Enveloppe Document
Dde de Service
Programme
Architecture
13
Contenu de lannuaire
  • 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

tModel
BusinessEntity
Spécifs dinterfaces et taxonomies
BusinessService
Publisher Assertion
Binding Templates
Relations entre deux parties
Infos techniques
Architecture
14
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
15
Client Web de Recherche
Architecture
16
3. SOAP
  • 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
17
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
18
Un échange type
Port de connexion (URL)
Pare-feu
Pare-feu
Messages SOAP
Procuration d'interface
Translateur SOAP
Appel
Application Cliente
HTTP
RPC local
Réponse
Parser XML
Parser XML
Serveur d'application
CLIENT
SERVEUR
SOAP
19
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
20
Structure d'un message
Protocol Headers
Entête de protocoles (HTTP, SMTP, )
ltEnvelopegt
SOAP Envelope
ltHeadergt
SOAP Header
ltBodygt
SOAP Body
SOAP
21
Exemple
  • www.stockquoteserver.com
  • float GetLastTradePrice (Symbol)
  • Le dialogue

Application
Application
SOAP Request
Interface
Interface
Reply
SOAP
SOAP
HTTP
HTTP
Error
www.stockquoteserver.com
www.xquark.org
SOAP
22
La requête
  • POST /StockQuote HTTP/1.1Host
    www.stockquoteserver.comContent-Type text/xml
    charset"utf-8"Content-Length nnnn
  • SOAPAction "Some-URIGetLastTradePrice"ltSOAPE
    nvelope xmlnsSOAP"http//schemas.xmlsoap.org/soa
    p"gt   ltSOAPBodygt       ltmGetLastTradePrice
    xmlnsm"Some-URI"gt           ltsymbolgtDISlt/symbol
    gt       lt/mGetLastTradePricegt   lt/SOAPBodygtlt/
    SOAPEnvelopegt

Standard HTTP
SOAP
23
La réponse
  • HTTP/1.1 200 OKContent-Type text/xml
    charset"utf-8"Content-Length
    nnnnltSOAPEnvelope xmlnsSOAP"http//schema
    s.xmlsoap.org/soap"/gt   ltSOAPBodygt       ltmGet
    LastTradePriceResponse xmlnsm"Some-URI"gt       
        ltPricegt34.5lt/Pricegt       lt/mGetLastTradePri
    ceResponsegt   lt/SOAPBodygtlt/SOAPEnvelopegt

Standard HTTP
SOAP
24
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
25
Bilan SOAP
  • Protocole dinvocation de services Web
  • Lisible et extensible
  • Au-dessus de HTTP
  • Description en WSDL
  • Possibilité dattachements 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 ?

SOAP
26
4. Composition de Services Web
  • 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 dactivité
  • Exemple réservation

BPM
27
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 doutils avec interfaces graphiques
    permettant de déclarer les compositions sans
    programmer

BPM
28
Les briques à standardiser
BusinessProcesses
Transactions
Quality ofService
Notifications
WS-Security
WS-Messaging
Quality
Management
UDDI
Discovery
Description
WSDL
Description
SOAP
Message
XML
HTTP, IIOP, JMS, SMTP
Transport
BPM
29
WS-Messaging
  • Objectifs
  • Assurer le transfert fiable de messages en
    présence de pannes
  • Identifier et tracer les messages
  • Sintégrer aux en-têtes SOAP
  • Moyens
  • Numérotation des messages par séquences
  • Accusés de réception

BPM
30
WS-Transaction
  • Objectifs
  • Permettre latomicité 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 latomicité dactivité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 sintègrent aux entêtes
    SOAP

BPM
31
WS-Security Fonctions de base
  • Authentification Qui a envoyé ce message ?
  • Attestations (Credentials)
  • Login/Password
  • Certificat digital
  • Autorisation Que peut faire cet utilisateur ?
  • Droits daccè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é Quelquun a-t-il modifié ce message
    message?
  • Signature digitale pour comparer messages envoyés
    et reçus

BPM
32
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 dun 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
33
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
34
WS-BPEL Exemple
  • Description du flux dactivité en XML

ltsequencegt
Receive ltPOgt
ltflowgt
Invoke ltInventoryServicegt
Invoke ltCreditServicegt
lt/sequencegt
Reply ltInvoicegt
BPM
35
Les standards de lOASIS
  • WS-Messaging 1.1
  • Juin 2007
  • WS-Transaction 1.1
  • mai 2007
  • WS-Security
  • Février 2006
  • WS-BPEL 2.0
  • Avril 2007

BPM
36
Bilan Processus Métiers
  • Un domaine chaud
  • Au cœur des architectures SOA
  • Développements de nombreux outils
  • BPEL s'impose comme un standard de lOASIS
  • 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 ?

BPM
37
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
38
Architecture .NET
Stratégie
39
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
40
Exemple de développement WS en ASP.Net
  • lt_at_ WebService Language"VB" Class "StockQuote"
    gt
  • Imports System
  • Imports System.Web.Services
  • Public Class StockQuote Inherits WebService
  • ltWebMethod()gt 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é dappel par client HTTP ou API SOAP
    générée

Stratégie
41
Intérêt de la généralisation des WS
Stratégie
42
Produits J2EE
  • Apache AXIS2 (Open Source)
  • Servlet permettant de déployer les services à
    partir dun fichier archive et dun 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
43
Architecture Type
Stratégie
44
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
45
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
46
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

Challengers
Leaders
Microsoft
IBM
BEA
Oracle
SAP
Fujitsu
Sun
HP
CA
Novell
Siebel
Peoplesoft
Niche Players
Visionaries
Conclusion
47
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 à GDSles services Web XML
  • Lien direct avec les partenaires 25 en 2 mois.

GlobalDistributionSystems
Sabre
Worldspan
Amadeus
Galileo
4
VaxVMS
Dollar Rent a Car
Conclusion
48
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
49
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
50
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 (BPEL)
  • Ajout de contrôle qualité (transaction, sécurité)
  • Questions ?

Conclusion
Write a Comment
User Comments (0)
About PowerShow.com