Title: Web Services
1Web Services
- Objectifs
- Architecture
- Protocole web (SOAP)
- Composition de services web
- Position du marché
- Conclusion
21. 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
3Principes 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
4Exemple 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
52. 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
6Qu'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
7Les 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
8Vue d'ensemble
HTTP/S
Architecture
9Description 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
10Description 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
11Exemple 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
12Annuaire 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
13Contenu 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 de services et taxonomies
BusinessService
publisherAssertion
BindingTemplates
Relations entre deux parties
Infos techniques
Architecture
14Principaux 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
15Client Web de Recherche
Architecture
163. 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
17Qu'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
18Un é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
19Elé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
20Structure d'un message
Protocol Headers
Entête de protocoles (HTTP, SMTP, )
ltEnvelopegt
SOAP Envelope
ltHeadergt
SOAP Header
ltBodygt
SOAP Body
SOAP
21Exemple
- www.stockquoteserver.com
- float GetLastTradePrice (Symbol)
- Le dialogue
Application
Application
Request
Middleware
Middleware
Reply
SOAP
SOAP
HTTP
HTTP
Error
www.stockquoteserver.com
www.xquark.org
SOAP
22La 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
23La réponse
- HTTP/1.1 200 OKContent-Type text/xml
charset"utf-8"Content-Length
nnnnltSOAPEnvelope xmlnsSOAP"http//schemas.xm
lsoap.org/soap"/gt ltSOAPBodygt ltmGetLast
TradePriceResponse xmlnsm"Some-URI"gt
ltPricegt34.5lt/Pricegt lt/mGetLastTradePriceRe
sponsegt lt/SOAPBodygtlt/SOAPEnvelopegt
Standard HTTP
SOAP
24Exemple 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
25Bilan 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 ?
SOAP
264. Orchestration 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
- Gestion de transactions
- Business Process Management
- Workflow
- Transaction et Saga
BPM
27Exemple Pilotage Fabrication
Echange B2B
Partenaire
Usine
Serveur d'entreprise
XML
XML
XML
WEB
XML
Interface XML
ERP
XML
Fournisseur
Client
BPM
28Les briques à standardiser
BusinessProcesses
Transactions
Quality ofService
Coordination
WS-Security
WS-Reliability
Context
Management
UDDI
Discovery
Description
WSDL
Description
SOAP
Message
XML
HTTP, IIOP, JMS, SMTP
Transport
29Composition 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
30Quelques 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 des
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 métier. - 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
31Modélisation par Workflow
- 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
32Composition dactivités simples et complexes
- Description du flux dactivité en XML
ltsequencegt
Receive ltPOgt
ltflowgt
Invoke ltInventoryServicegt
Invoke ltCreditServicegt
lt/sequencegt
Reply ltInvoicegt
BPM
33Vers un standard ?
BPML (Intallio et al)
BPSS (ebXML)
WS-Choreography (W3C)
WSCI (Sun et al)
2000/05
2001/03
2001/05
2001/06
2002/03
2002/06
2003/01
2003/04
2002/08
XLang (Microsoft)
WSFL (IBM)
BPEL4WS 1.0 (IBM, Microsoft)
BPEL4WS 1.1(OASIS)
WSCL (HP)
BPM
34BPEL Structure dun Business Process
- ltprocessgt
- lt! Definition and roles des participants --gt
ltpartnerLinksgt ... lt/partnerLinksgt - lt!- Données utilisées dans le process --gt
- ltvariablesgt ... lt/variablesgt
- lt!- Propriétés permettant les conversations
--gt - ltcorrelationSetsgt ... lt/correlationSetsgt
- lt!- Gestion des exception --gt
- ltfaultHandlersgt ... lt/faultHandlersgt lt!-
Traitement des erreurs --gt - ltcompensationHandlersgt ... lt/compensationHandle
rsgt - lt!- Gestion des compensations --gt
- lteventHandlersgt ... lt/eventHandlersgt
- lt!- Workflow dactivités --gt
- (activités)
- lt/processgt
35BPEL Business Process composé d'activités
- Compositions des web services en séquence et
parallèle - Véritable langage de programmation parallèle codé
en XML
BPM
36BPEL Exemple
- ltsequencegt
- ltreceive partnerLinkcustomer
portTypelnspurchaseOrderPT" - operationsendPurchaseOrder
variablePO - createInstance"yes" /gt
- ltflowgt
- ltinvoke partnerLinkinventoryChecker
portTypelnsinventoryPT - operation"checkINV" inputVariable"inve
ntoryRequest" - outputVariable"inventoryResponse" /gt
- ltinvoke partnerLink"creditChecker"
portTypelnscreditPT" - operation"checkCRED"
inputVariable"creditRequest" - outputVariable"creditResponse" /gt
- lt/flowgt
- ...
- ltreply partnerLinkcustomer portTypelnspurch
aseOrderPT - operationsendPurchaseOrder
variableinvoice"/gt - lt/sequencegt
BPM
37Qualité de services
- Nécessité de fiabiliser
- Les messages (WS-Reliability)
- Garantie la livraison, les non dupliqués et
lordre - Sajoute comme un en-tête SOAP
- Standard OASIS
- Les activités (WS-Transactions)
- Courtes (Atomic Transactions)
- Longues (Business Activities)
- Nécessité de sécuriser
- Les échanges confidentiels (Standard WS-Security)
- PKI, Signature et Cryptage
BPM
38Bilan Processus Métiers
- De multiples propositions
- un domaine chaud (voir SOA)
- BPEL s'impose comme un standard de lOASIS
- Vers trois standards pour la qualité de services
- WS-Reliable Messaging
- WS-Transactions
- WS-Security
BPM
395. Stratégie des constructeurs
- Outil de développement .NET
- .net Framework SDK (//msdn.microsoft.com/webservic
es) - Support depuis Visual Studio .Net
- Développement en tout langage (VB, C, C)
- Deux composants essentiels
- Common Language Infrastructue (CLI)
- .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 CIL (ex MSIL)
- Machine virtuelle pour l'exécution CLI
- Semblable à Java mais MS (et Novell Mono)
Stratégie
40Architecture .NET
VB
C
JScript
C
SOAP XML Toolkits
Visual Studio .NET
ASP.NET
ADO.NET
BCL.NET
Common Language Runtime (CLR)
Windows et COM Services
Stratégie
41Exemple plate-forme dEntreprise MS
42Produits 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
- Large support expérimental de BPEL
Stratégie
43Java 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.
44Architectures 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
45Position 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
46Exemple 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
47Ligue 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
48SNCF 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
497. 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é)
Conclusion