Академический Документы
Профессиональный Документы
Культура Документы
services
Web services
Serveurs dapplication
Intgration mtier
Web services
1.
2.
3.
4.
5.
Objectifs
Architecture Web services
Protocole SOAP
Architecture REST
Composition de Web services
Fournisseur
(J2EE)
SOAP
SOAP
SOAP
Serveur
dapplication
SOAP
SOAP
Paiement CB
(.NET)
Livreur
(CORBA)
Banque
(MVS/CICS)
SOAP
Standards techniques
Publication
des fonctionnalits
WSDL
Web services
Dcrits dans
des annuaires
UDDI
Client
Find
Service
Requester
Publish
Request
Service
Provider
6
Request
Service
Provider
Service
Port
Port
Binding
Binding
(e.g. http://host/svc)
(e.g. SOAP)
portType
operation(s)
inMessage outMessage
Abstract interface
Description en WSDL
<definitions name = "..." xmlns: >
<types>
<!--Dfinition des types de donnes; bass sur ceux des schmas
--> </types>
<message>
<!--Dclaration des messages (entres et sorties)-->
</message>
<portType>
<!--Dclaration des oprations (par association des messages)-->
</portType>
<binding>
<!--Dfinition de la liaison WSDL SOAP (noms d'actions et
codages)--> </binding>
</definitions>
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>
9
Fonctions
Enregistrement (publish)
une socit, des services, des oprations
Dcouverte (find)
Liaison une service (bind)
10
Contenu de lannuaire
Pages blanches
(BusinessEntity)
BusinessKey
Name
Description
CategoryBag
BusinessServices
tModel
Spcifs de services
et taxonomies
Pages jaunes
(BusinessService)
ServiceKey
BusinessKey
Name
Description
CategoryBag
BindingTemplates
Pages vertes
(BindingTemplates)
BindinKey
ServiceKey
Description
AccessPoint
Business
Business
Service
Service
PublisherAssertion
Relations entre
deux parties
11
Binding
Templates
Infos techniques
Principaux fournisseurs
IBM UDDI Registry
Un registre UDDI avec des fonctionnalits de recherche
Systinet Registry
Support complet de UDDI
12
3. Protocole SOAP
Simple Object Access Protocol = RPC pour
Web services
Standard du W3C par Microsoft et IBM
Pas simple, pas objet!
Bas sur XML RPC de David Winer
(UserLandSoftware)
rgles de codage des donnes en XML
envelope: dfinit le contenu du message
utilise la requte HTTP POST du client au
serveur
Objectifs
Passer facilement au travers des firewalls (port
80)
13
Message SOAP
Protocol Header
En-tte de protocole
SOAP Envelope
SOAP Header
SOAP Body
(obligatoire): opration et paramtres
XML content
Attachments
14
Exemple
www.stockquoteserver.com
float GetLastTradePrice (Symbol)
Le dialogue :
Application
Middleware
SOAP
HTTP
Request
Reply
Error
Application
Middleware
SOAP
HTTP
www.stockquoteserver.com
15
La requte
POST /StockQuote HTTP/1.1
Host: www.stockquoteserver.com
Standard HTTP
Content-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="SomeURI">
<symbol>DIS</symbol>
</m:GetLastTradePrice>
</SOAP:Body>
16
La rponse
HTTP/1.1 200 OK
Content-Type: text/xml; charset="utf-8"
Standard HTTP
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>
17
Application
API
server
SOAP
Processor
SOAP
Processor
API
Application
server
Requte
A component
(e.g. EJB)
Java
VB XML
C Parser HTTP
Perl
etc.
TCP/IP
Rponse
Construction du message
SOAP (par ex. en Java)
Java
XML VB
HTTP
Parser C
Perl
etc.
A component
(e.g. COM)
Conversion du message
SOAP et appel du
composant (par ex, en VB)
18
WS 2
WS 3
Et remplacer par :
Appel
URL1
Appel
URL2
Appel
URL3
Centralis et
lourd:
interprtation
des URL-L,
traitement
SOAP
WS 1
WS 2
WS 3
19
Messages courts
et directs
SOAP
Echanges centrs
sur des URL courtes
entre ressources
changes limits
Simplifie le code
client et serveur
Pas de support pour
transactions ou
scurit
Pour des
applications simples
24
Gnration de code
client avec WSDL
Provision pour
transactions et
scurit
Pour des
applications plus
sophistiques
5. Composition de services
Dbut
Objectifs
Modliser des processus
mtiers (business
process)
Composer des services
Web distribus
Piloter l'excution
Orchestration d'activits
Echanges XML
Gestion de transactions
Business Process
Management
Rserver
Hotel
non
OK ?
oui
Rserver
Avion
OK ?
oui
non
Louer
Voiture
Transaction
Workflow
OK ?
oui
Succs
25
Echec
Rserver
Train
oui
non
OK ?
Echec
non
Echec
Partenaire
Serveur
d'entreprise
XML
XML
Usine
XML
WEB
XML
Interface
XML
ERP
XML
Client
Mainframe
26
Fournisseur
Business
Processes
Management
Transactions
WS-Reliability WS-Security
Coordination
Quality of
Service
Context
UDDI
Discovery
WSDL
Description
Description
SOAP
Message
XML
HTTP, IIOP, JMS, SMTP
27
Transport
Composition de services
Objectifs
Alliances entre companies pour offrir des
services intgrs valeur ajoute en
combinant des services existants
Rutilisation et extension de services existants
Support pour la planification, la dfinition et
l'implmentation de services composs
Dveloppement d'applications distribues
composes de services web
28
Quelques dfinitions
Processus mtier (business process)
Module fonctionnel ralis par enchanement
d'activits business excutes par des acteurs
changeant des messages et implmentant les
objets et rgles spcifiques une entreprise.
Orchestration d'activit
Mcanisme d'invocation, de contrle et de
coordination des activits participant la
ralisation de processus d'affaire.
Composition de services
Techniques permettant d'assembler des
services Web pour raliser des processus
mtiers par des primitives de contrles
(boucles, tests, traitement d'exception, etc.) et
d'changes (envoi et29 rception de messages).
Les activits
reprsentent les
units de
traitement
Les activits
[ WS]
correspondent des
services Web
Les liens de
donnes
dfinissent le flux
d'information
Les activits
peuvent tre
d'autres
processus mtiers
30
Exemple
Modlisation en
XML
commandeVacances
Langage
d'orchestration
Chorgraphie
d'activits
reserverVacances
=1
se
as
/cl
de
an
mm
Co
reserverVoiture
<activity
name="demandePaiement
">
<join
condition=(reserverVoitur
e OR reserverAvion) AND
reserverHotel
when=deferred>
Commande/classe=2
reserverAvion
demandePaiement
31
reserverHotel
d'activits
Compositions des web services
Langage de programmation parallle cod en
XML
Assignation de variables locales et globales
32
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>
33
Qualit de services
Ncessit de fiabiliser
Les messages (WS-Reliability)
Les activits (WS-Transactions)
Courtes (Atomic Transactions)
Longues (Business Activity)
Ncessit de scuriser
Les changes confidentiels (WS-Security)
34
Serveurs dapplication
1.
2.
3.
4.
Architecture
Le standard J2EE
Etude de cas: EDF GDF
.NET de Microsoft
1. Architecture avec SA
Prsentation Application
Appareil
mobile
Serveur
WAP
Browser
Web
Serveur
Web
Client
Java
Parefeu
Client
VB/C++
Donnes
SGBD
Serveur
Web
Serveur
dapplication
36
Application
ERP
Application
mainframe
Serveur dapplication
Serveur dentreprise avec
support des composants
standards CORBA, COM, EJB
middleware objet
support des transactions
standards CORBA, Open Group (XA)
environnement de dveloppement intgr
composants, transactions
quilibrage de charge entre serveurs
support de XML et des Web services
interface avec moniteurs transactionnels et MOM
37
Equilibrage de charge et
disponibilit
En cas de panne de A,
basculement automatique
sur B
Cookie A,B
Serveur A
primaire
Rplication de ltat
des processus clients
Serveur B
Secondaire
Cluster
38
Composants mtiers
Procdures stockes
Serveur dapplication
Serveur de donnes
Trs efficace
Evolution difficile
Gestionnaire de
commandes
Commande
+ efficace
- composants non
autonomes
Produit
41
Gestionnaire de
commandes
Commande
ensemble de donnes
entirement contenu
dans un composant
mtier
exige une forte
localit des
donnes/composant
+ composants
autonomes
- performances
Produit
42
43
JAX
Pour intgrer XML et les services web
JAX-RPC (Java API for XML RPC) pour effectuer
des appels de messages SOAP
JAXM (Java API for XML Messaging) pour
envoyer des documents XML via SOAP
JAXR (Java API for XML Registries) pour accder
des annuaires de services de type UDDI
45
Logique de prsentation
Container Web
HTML/XML
Java Server
Page
Java
Bean
Servlet
Container EJB
Session
Bean
Entity
Bean
Support Comm.
Services de base
46
Produit
Points forts
Ordre de prix
BEA-Oracle WebLogic
Transactionnel, outils
10K
IBM
Websphere
10K
Oracle
AS
Transactionnel, intgration
avec DB2 UDB
Intgr dans loffre Oracle
HP
10K
Borland
Total-eserver
AppServer
Sun
GlassFish
Gratuit
Redhat
Jboss
Logiciel libre
Gratuit
Apache
Jeronimo
Logiciel libre
Gratuit
Objectweb
Jonas
Logiciel libre
Gratuit
47
10K
10K
Intgration avec
WebLogic (BEA-Oracle)
Support J2EE complet
Serveur HTTP intgr
Plugins pour Apache, IIS, Iplanet
Environnement de dveloppement
WebLogic Builder pour le dveloppement Java
WebLogic Workshop pour les Web services
Intgration avec
Nokia WAP server pour les mobiles
TopLink (WebGain) pour le mapping objet-relationnel
Versant enJin pour les objets persistants
49
Architecture technique
C/S (client lourd) avec 2 nouvelles versions par an
SI sur mainframes IBM (un centre par dpartement)
Plusieurs BD et une partition CICS par centre
Besoins
Ractivit croissante aux demandes des agents
Dploiement plus rapide des nouvelles
versions
50
Solution
Architecture n-tiers
Client lger
WebLogic: serveur J2EE sur plusieurs serveurs
Scort: Progiciel dintgration avec les
applications mainframes avec des composants
J2EE sur WebLogic
Rsultats obtenus
Satisfaction des besoins
Niveau1 offre 2 modes daccs transparents
aux clients:
Accs aux mainframes en rcuprant une connexion
pour excuter des transactions
Smart publishing: navigation en mode publication la
vole
51
Solutions
propritaire de type TopLink
mapping vers une BD objet, par ex. Versant
enJin
la plus productive et efficace selon SQLi
52
Versant enJin
Serveur
dapplication
Bean
Bean
Commande Produit
Serveur
dapplication
Bean
Bean
Commande Produit
Cache partag
transactions
transactions
SGBDO Versant
Mapping O/R automatique
Tiers backend
Bases de donnes
53
4. Microsoft .NET
Evolution majeure de la plateforme
Windows
les APIs Windows sont remplaces par des
bibliothques de classes objet
intgration de C#, Linq
portabilit des applications .NET
Microsoft Intermediate Language (MSIL)
excut par CLR
scurit renforce avec vrification de code
intgration avec COM et Microsoft Transaction
Server (MTS)
support direct des services Web, de XML et de
SOAP avec Visual Studio .NET
55
Architecture de MTS
Internet
Information
Server (IIS)
HTTP
MTS
Executive
threads
wrapper
context
HTML
XML
ADO
SQLServer
Oracle
Active Server
Page (ASP)
factory
trans.
cache
DCOM
Windows
56
Autres
Container
executive : entre client et composant serveur
context wrapper
dfinition du comportement trans. du
composant par le dveloppeur (par
positionnement dattributs avec Explorer)
context object
appel automatiquement par MTS pour
coordonner les transactions en 2 phases
Serveur Windows
57
58
Le framework .NET
ASP.NET
Docs
HTML XML
BCL.NET
Base class
library
ADO.NET
Active Data
Objects
59
Visual
Studio
.NET
limit Java
transactions explicites
gnralit
portabilit
.NET
multi-langage
transactions implicites
simplicit
61