SlideShare une entreprise Scribd logo
1  sur  66
Télécharger pour lire hors ligne
Services Web
Une introduction aux services Web
Guy Tremblay
Université du Québec à Montréal (UQAM)
http://www.info2.uqam.ca/~tremblay
LATECE
(LAbo. sur les TEchnologies du Commerce Electronique)
http://www.latece.uqam.ca
2 février 2007 / LIRMM
Services Web
Aperçu
Définition des services Web
Description des services de base : WSDL
Description des processus : WS-BPEL
Services Web vs. composants logiciels
Travaux en cours au LATECE sur les WS
Quelques pistes à explorer
Services Web
Définition des services Web
Aperçu
Définition des services Web
Description des services de base : WSDL
Description des processus : WS-BPEL
Services Web vs. composants logiciels
Travaux en cours au LATECE sur les WS
Quelques pistes à explorer
Services Web
Définition des services Web
Que sont les services Web
Définition des services Web (W3C)
A Web service is a software system designed to
support interoperable machine-to-machine interaction
over a network. It has an interface described in a
machine-processable format (specifically WSDL).
Other systems interact with the Web service in a manner
prescribed by its description using SOAP messages, typically
conveyed using HTTP with an XML serialization in conjunction
with other Web-related standards.
[Web Services Architecture, Feb. 2004]
Services Web
Définition des services Web
Que sont les services Web
Définition des services Web (Kadima et Monfort)
Les service web sont des applications
autodescriptives, modulaires et faiblement couplées
qui fournissent un modéle simple de programmation et
de déploiement d’applications, basé sur des normes,
et s’exécutant au travers de l’infrastructure web.
[. . . ]
Services web
= HTTP + SOAP + WSDL + Composants logiciels
[Les Web Services, Dunod, 2001]
Services Web
Définition des services Web
Service Oriented Architecture vs. Services Web
SOA vs. WS
“Service Oriented Architecture (SOA) is a paradigm
for organizing and utilizing distributed capabilities that
may be under the control of different ownership
domains.”
[OASIS, 2006]
Services Web
Définition des services Web
Service Oriented Architecture vs. Services Web
SOA vs. WS
“Service Oriented Architecture (SOA) is a paradigm
for organizing and utilizing distributed capabilities that
may be under the control of different ownership
domains.”
[OASIS, 2006]
“SOA describes an architectural style that is
independent of using a particular technology. [SOA]
involves advertisement of services in some form of a
registry that clients can use to introspect, discover,
hook up to, and invoke services of their choosing. ”
[Bell, 2007]
Services Web
Définition des services Web
Service Oriented Architecture vs. Services Web
SOA vs. WS
“Service Oriented Architecture (SOA) is a paradigm
for organizing and utilizing distributed capabilities that
may be under the control of different ownership
domains.”
[OASIS, 2006]
“SOA describes an architectural style that is
independent of using a particular technology. [SOA]
involves advertisement of services in some form of a
registry that clients can use to introspect, discover,
hook up to, and invoke services of their choosing. ”
[Bell, 2007]
WS comme technologie pour SOA
UDDI = Universal Description, Discovery and Integration
[H. Ben-Ameur, Séminaire Latece, UQAM, Nov. 2004]
Services Web
Définition des services Web
Niveaux de description des WS
Niveaux de description des WS
I Service de base : Quelles sont les opérations exportées
par le service?
WSDL = Web Services Description Language
Services Web
Définition des services Web
Niveaux de description des WS
Niveaux de description des WS
I Service de base : Quelles sont les opérations exportées
par le service?
WSDL = Web Services Description Language
I Processus d’affaire = service composite : Quelles sont les
interactions du processus avec d’autres WS = Comment le
processus réalise-t-il sa tâche?
WS-BPEL = Web Services Business Process Execution
Language = Orchestration
Services Web
Définition des services Web
Niveaux de description des WS
Niveaux de description des WS
I Service de base : Quelles sont les opérations exportées
par le service?
WSDL = Web Services Description Language
I Processus d’affaire = service composite : Quelles sont les
interactions du processus avec d’autres WS = Comment le
processus réalise-t-il sa tâche?
WS-BPEL = Web Services Business Process Execution
Language = Orchestration
I Groupe de services : Comment doivent-ils collaborer pour
réaliser un objectif commun (tâche complexe)?
WS-CDL = Web Services Choreography Description
Language = Chorégraphie
Services Web
Définition des services Web
Niveaux de description des WS
Niveaux de description des WS
I Service de base : Quelles sont les opérations exportées
par le service?
WSDL = Web Services Description Language
I Processus d’affaire = service composite : Quelles sont les
interactions du processus avec d’autres WS = Comment le
processus réalise-t-il sa tâche?
WS-BPEL = Web Services Business Process Execution
Language = Orchestration
I Groupe de services : Comment doivent-ils collaborer pour
réaliser un objectif commun (tâche complexe)?
WS-CDL = Web Services Choreography Description
Language = Chorégraphie . . . une autre fois
Services Web
Description des services de base : WSDL
Aperçu
Définition des services Web
Description des services de base : WSDL
Description des processus : WS-BPEL
Services Web vs. composants logiciels
Travaux en cours au LATECE sur les WS
Quelques pistes à explorer
Services Web
Description des services de base : WSDL
Spécification abstraite vs. concrète
Description WSDL d’un service
I WSDL = Web Service Description Language
I Un service est caractérisé par un ou plusieurs ports ;
chaque port est typé et lié à un protocole spécifique
I Un WS est décrit par un fichier WSDL (XML)
Services Web
Description des services de base : WSDL
Spécification abstraite vs. concrète
Description WSDL d’un service
I WSDL = Web Service Description Language
I Un service est caractérisé par un ou plusieurs ports ;
chaque port est typé et lié à un protocole spécifique
I Un WS est décrit par un fichier WSDL (XML)
I Spécification abstraite (interface)
I Définitions de types de données (XSD)
I Définitions de messages (opérations)
I Définitions de types de port (collection d’opérations)
I Spécification concrète
I Définitions de liaisons (protocoles et format de données)
I Définitions de ports (adresses)
I Définitions de services
Services Web
Description des services de base : WSDL
Spécification abtraite : structure et exemples
Spécification abstraite : Message
I Un message comporte une ou plusieurs parties (champs)
I Chaque partie est caractérisée par un type
I Exemple :
<message name="GetTradePriceInput">
<part name="tickerSymbol" element="xsd:string"/>
<part name="time"element="xsd:timeInstant"/>
</message>
<message name="GetTradePriceOutput">
<part name="result" type="xsd:float"/>
</message>
Services Web
Description des services de base : WSDL
Spécification abtraite : structure et exemples
Spécification abstraite : Message
I Un message comporte une ou plusieurs parties (champs)
I Chaque partie est caractérisée par un type
I Exemple :
message GetTradePriceInput
part tickerSymbol :string
part time :timeInstant
message GetTradePriceOutput
part result :float
Services Web
Description des services de base : WSDL
Spécification abtraite : structure et exemples
Spécification abstraite : Type de port
I Un type de port permet de décrire les opérations offertes
par un service
I Quatre types d’opérations :
I Unidirectionnelle : le service reçoit un message et ne
retourne aucune réponse
I Requête/réponse : le services reçoit un message et
retourne un message en réponse, de façon synchrone
I Sollicitation/réponse : le service sollicite un autre service et
reçoit une réponse en retour
I Notification : le service sollicite un autre service, sans
attendre de réponse
Services Web
Description des services de base : WSDL
Spécification abtraite : structure et exemples
Exemple : Une opération pour obtenir le prix d’un item
<portType name="StockQuotePortType">
<operation name="GetTradePrice">
<input message="GetTradePriceInput"/>
<output message="GetTradePriceOutput"/>
<fault message="GetTradePriceWrongInput"/>
</operation>
[... Autres opérations du port ...]
</portType>
Services Web
Description des services de base : WSDL
Spécification abtraite : structure et exemples
Exemple : Une opération pour obtenir le prix d’un item
portType StockQuotePortType
operation GetTradePrice
input GetTradePriceInput
output GetTradePriceOutput
fault GetTradePriceWrongInput
[... Autres opérations du port ...]
Services Web
Description des services de base : WSDL
Spécification concrète : structure et exemples
Spécification concrète : Liaison (binding)
I Spécifie le protocole utilisé ainsi que le format des
messages pour les opérations d’un type de port
I Protocoles standards : SOAP, HTTP GET/POST, MIME
Services Web
Description des services de base : WSDL
Spécification concrète : structure et exemples
Spécification concrète : Liaison (binding)
I Spécifie le protocole utilisé ainsi que le format des
messages pour les opérations d’un type de port
I Protocoles standards : SOAP, HTTP GET/POST, MIME
I Exemple :
<binding name="StockQuoteSoapBinding"
type="StockQuotePortType">
<binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"
<operation name="GetLastTradePrice">
<operation soapAction="http://example.com/GetLastTrad
<input> <body use="literal"/> </input>
<output> <body use="literal"/> </output>
</operation>
</binding>
Services Web
Description des services de base : WSDL
Spécification concrète : structure et exemples
Spécification concrète : Liaison (binding)
I Spécifie le protocole utilisé ainsi que le format des
messages pour les opérations d’un type de port
I Protocoles standards : SOAP, HTTP GET/POST, MIME
I Exemple :
binding
StockQuotePortType
<binding style="document"
transport="..."
operation GetLastTradePrice
operation soapAction="..."
input use="literal"
output use="literal"
Services Web
Description des services de base : WSDL
Spécification concrète : structure et exemples
Spécification concrète : Port et service
I Un port spécifie l’adresse d’une liaison
I Un service est un ensemble de ports
I Plusieurs ports peuvent être associés à un même type de
port, avec des liaisons ou adresses différentes
Services Web
Description des services de base : WSDL
Spécification concrète : structure et exemples
Spécification concrète : Port et service
I Un port spécifie l’adresse d’une liaison
I Un service est un ensemble de ports
I Plusieurs ports peuvent être associés à un même type de
port, avec des liaisons ou adresses différentes
I Exemple :
<service name="StockQuoteService">
<documentation>My first service</documentation>
<port name="StockQuotePort"
binding="StockQuoteBinding">
<address
location="http://example.com/stockquote"/>
</port>
</service>
Services Web
Description des services de base : WSDL
Spécification concrète : structure et exemples
Spécification concrète : Port et service
I Un port spécifie l’adresse d’une liaison
I Un service est un ensemble de ports
I Plusieurs ports peuvent être associés à un même type de
port, avec des liaisons ou adresses différentes
I Exemple :
service StockQuoteService
port StockQuotePort
binding="StockQuoteBinding"
address
location="http://example.com/stockquote"
Services Web
Description des processus : WS-BPEL
Aperçu
Définition des services Web
Description des services de base : WSDL
Description des processus : WS-BPEL
Services Web vs. composants logiciels
Travaux en cours au LATECE sur les WS
Quelques pistes à explorer
Services Web
Description des processus : WS-BPEL
Rôle de WS-BPEL et structure générale
WS-BPEL
I WS-BPEL = Web Services – Business Process Execution
Language
I Rôle = Modéliser des processus d’affaires complexes, e.g.,
avec séquences complexes d’interactions
Services Web
Description des processus : WS-BPEL
Rôle de WS-BPEL et structure générale
WS-BPEL
I WS-BPEL = Web Services – Business Process Execution
Language
I Rôle = Modéliser des processus d’affaires complexes, e.g.,
avec séquences complexes d’interactions
I Ancêtres (BEA, IBM, Microsoft) :
I BPEL4WS (Business Process Execution Language for Web
Services)
I XLANG (XML Business Process Language)
I WSFL (Web Services Flow Language)
Services Web
Description des processus : WS-BPEL
Rôle de WS-BPEL et structure générale
WS-BPEL
I WS-BPEL = Web Services – Business Process Execution
Language
I Rôle = Modéliser des processus d’affaires complexes, e.g.,
avec séquences complexes d’interactions
I Ancêtres (BEA, IBM, Microsoft) :
I BPEL4WS (Business Process Execution Language for Web
Services)
I XLANG (XML Business Process Language)
I WSFL (Web Services Flow Language)
I Deux utilisations prévues :
I Processus exécutables ⇒ comportement effectif d’un
processus d’affaire
I Processus abstraits = “protocoles d’affaire” ⇒ protocole
d’utilisation d’un processus d’affaire
Services Web
Description des processus : WS-BPEL
Rôle de WS-BPEL et structure générale
Principaux éléments d’une description BPEL
I Les opérations fournies aux/requises des partenaires
(décrites avec WSDL)
⇒ partnerLinkTypes, partnerLinks, partners
I L’état interne requis pour modéliser l’interaction et le
comportement
⇒ variables, correlationSets
I Le comportement du processus (décrit de façon
opérationnelle)
⇒ activity
I Exemple : ordersProcess
[http://www.it.uc3m.es/jaf/verbus]
Services Web
Description des processus : WS-BPEL
Rôle de WS-BPEL et structure générale
Principaux éléments d’une description BPEL
I Les opérations fournies aux/requises des partenaires
(décrites avec WSDL)
⇒ partnerLinkTypes, partnerLinks, partners
I L’état interne requis pour modéliser l’interaction et le
comportement
⇒ variables, correlationSets
I Le comportement du processus (décrit de façon
opérationnelle)
⇒ activity
I Exemple : ordersProcess
[http://www.it.uc3m.es/jaf/verbus]
Services Web
Description des processus : WS-BPEL
Rôle de WS-BPEL et structure générale
Principaux éléments d’une description BPEL
I Les opérations fournies aux/requises des partenaires
(décrites avec WSDL)
⇒ partnerLinkTypes, partnerLinks, partners
I L’état interne requis pour modéliser l’interaction et le
comportement
⇒ variables, correlationSets
I Le comportement du processus (décrit de façon
opérationnelle)
⇒ activity
I Exemple : ordersProcess
[http://www.it.uc3m.es/jaf/verbus]
Exemple ordersProcess: les portTypes WSDL
<portType name="orderService">
<operation name="order">
<input message="OrderMessage"/>
<output message="InvoiceMessage"/>
</operation>
</portType>
<portType name="warehouse">
<operation name="order">
<input message="OrderMessage"/>
<output message="InvoiceMessage"/>
</operation>
<operation name="schedule">
<input message="OrderMessage"/>
</operation>
</portType>
<portType name="warehouseCallback">
<operation name="receive_not">
<input message="InvoiceMessage"/>
</operation>
</portType>
Exemple ordersProcess: les portTypes WSDL
portType orderService
operation order
input OrderMessage
output InvoiceMessage
portType warehouse
operation order
input OrderMessage
output InvoiceMessage
operation schedule
input OrderMessage
portType warehouseCallback
operation receive_not
input InvoiceMessage
Services Web
Description des processus : WS-BPEL
Structure et exemple de spécification WS-BPEL
Exemple ordersProcess: les partnerLinkTypes
<plnk:partnerLinkType name="orderLnk">
<plnk:role name="orderService">
<plnk:portType name="tns:orderService"/>
</plnk:role>
</plnk:partnerLinkType>
<plnk:partnerLinkType name="warehouseLnk">
<plnk:role name="orderService">
<plnk:portType name="tns:warehouseCallback"/>
</plnk:role>
<plnk:role name="warehouseService">
<plnk:portType name="tns:warehouse"/>
</plnk:role>
</plnk:partnerLinkType>
Services Web
Description des processus : WS-BPEL
Structure et exemple de spécification WS-BPEL
Exemple ordersProcess: les partnerLinkTypes
partnerLinkType orderLnk
role orderService
portType orderService
partnerLinkType warehouseLnk
role orderService
portType warehouseCallback
role warehouseService
portType warehouse
Services Web
Description des processus : WS-BPEL
Structure et exemple de spécification WS-BPEL
Exemple ordersProcess : les partnerLinks
<partnerLinks>
<partnerLink name="ordering"
partnerLinkType="orderLnk"
myRole="orderService" />
<partnerLink name="warehouse"
partnerLinkType="warehouseLnk"
myRole="orderService"
partnerRole="warehouseService"/>
</partnerLinks>
Services Web
Description des processus : WS-BPEL
Structure et exemple de spécification WS-BPEL
Exemple ordersProcess : les partnerLinks
partnerLink ordering
partnerLinkType="orderLnk"
myRole="orderService"
partnerLink warehouse
partnerLinkType="warehouseLnk"
myRole="orderService"
partnerRole="warehouseService
Services Web
Description des processus : WS-BPEL
Structure et exemple de spécification WS-BPEL
Exemple ordersProcess
Services Web
Description des processus : WS-BPEL
Structure et exemple de spécification WS-BPEL
Exemple ordersProcess
Services Web
Description des processus : WS-BPEL
Structure et exemple de spécification WS-BPEL
Description des activités
Opérations impératives typiques pour processus séquentiels
communiquants (à la CSP, CCS, Lotos, etc.)
I <assign>
I <sequence>, <flow>, <switch>, <while>
I <receive>, <reply>, <invoke>
I <pick>, <wait>
I <throw>, <compensate>, <terminate>
I <scope>
Services Web
Description des processus : WS-BPEL
Structure et exemple de spécification WS-BPEL
Description des activités
Opérations impératives typiques pour processus séquentiels
communiquants (à la CSP, CCS, Lotos, etc.)
I <assign>
I <sequence>, <flow>, <switch>, <while>
I <receive>, <reply>, <invoke>
I <pick>, <wait>
I <throw>, <compensate>, <terminate>
I <scope>
Particularité : Possible, avec les flow, de ne spécifier qu’un
ordre partiel d’exécution
Services Web
Description des processus : WS-BPEL
Structure et exemple de spécification WS-BPEL
Exemple : activités séquentielles
<sequence>
<receive portType="orderService" partnerLink="ordering"
operation="order" variable="order"
createInstance="yes"/>
<switch>
<case condition="...">
<invoke portType="warehouse"
partnerLink="warehouseLnk"
operation="order"
inputVariable="order"
outputVariable="invoice"/>
</case>
<otherwise> ... </otherwise>
</switch>
...
</sequence>
Services Web
Description des processus : WS-BPEL
Structure et exemple de spécification WS-BPEL
Exemple : activités séquentielles
<sequence>
<receive portType="orderService" partnerLink="ordering"
operation="order" variable="order"
createInstance="yes"/>
<switch>
<case condition="...">
<invoke portType="warehouse"
partnerLink="warehouseLnk"
operation="order"
inputVariable="order"
outputVariable="invoice"/>
</case>
<otherwise> ... </otherwise>
</switch>
...
</sequence>
Services Web
Description des processus : WS-BPEL
Structure et exemple de spécification WS-BPEL
Exemple : activités séquentielles
<sequence>
<receive portType="orderService" partnerLink="ordering"
operation="order" variable="order"
createInstance="yes"/>
<switch>
<case condition="...">
<invoke portType="warehouse"
partnerLink="warehouseLnk"
operation="order"
inputVariable="order"
outputVariable="invoice"/>
</case>
<otherwise> ... </otherwise>
</switch>
...
</sequence>
Services Web
Description des processus : WS-BPEL
Structure et exemple de spécification WS-BPEL
Exemple : activités séquentielles
<sequence>
<receive portType="orderService" partnerLink="ordering"
operation="order" variable="order"
createInstance="yes"/>
<switch>
<case condition="...">
<invoke portType="warehouse"
partnerLink="warehouseLnk"
operation="order"
inputVariable="order"
outputVariable="invoice"/>
</case>
<otherwise> ... </otherwise>
</switch>
...
</sequence>
Services Web
Description des processus : WS-BPEL
Structure et exemple de spécification WS-BPEL
Exemple : activités séquentielles
<sequence>
<receive portType="orderService" partnerLink="ordering"
operation="order" variable="order"
createInstance="yes"/>
<switch>
<case condition="...">
<invoke portType="warehouse"
partnerLink="warehouseLnk"
operation="order"
inputVariable="order"
outputVariable="invoice"/>
</case>
<otherwise> ... </otherwise>
</switch>
...
</sequence>
Exemple : sélection non-déterministe
<pick>
<onMessage portType="pt1"
partnerLink="pl1"
operation="op1" variable="v1">
... activite1 ...
</onMessage>
<onMessage portType="p2"
partnerLink="pl2"
operation="op1" variable="v2">
... activite2 ...
</onMessage>
...
<onAlarm name="timeout" for="P5D">
... activite ...
</onAlarm>
</pick>
Services Web
Services Web vs. composants logiciels
Aperçu
Définition des services Web
Description des services de base : WSDL
Description des processus : WS-BPEL
Services Web vs. composants logiciels
Travaux en cours au LATECE sur les WS
Quelques pistes à explorer
Services Web
Services Web vs. composants logiciels
Services Web vs. composants logiciels (à la SCL)
WS (WSDL)
I message
SCL
I Signature
Services Web
Services Web vs. composants logiciels
Services Web vs. composants logiciels (à la SCL)
WS (WSDL)
I operation
I message (1 ou 2)
SCL
I Service
I Signature
Services Web
Services Web vs. composants logiciels
Services Web vs. composants logiciels (à la SCL)
WS (WSDL)
I portType
I operation (1 ou +)
I message (1 ou 2)
SCL
I Port
I Service (1 ou +)
I Signature
Services Web
Services Web vs. composants logiciels
Services Web vs. composants logiciels (suite)
WS (BPEL)
I portType (fourni)
I portType (requis)
SCL
I Port (fourni)
I Port (requis)
Services Web
Services Web vs. composants logiciels
Services Web vs. composants logiciels (suite)
WS (BPEL)
I partnerLink
I portType (fourni)
(0, 1 ou +)
I portType (requis)
(0, 1 ou +)
SCL
I Port (fourni)
I Port (requis)
Services Web
Services Web vs. composants logiciels
Services Web vs. composants logiciels (suite)
WS (BPEL)
I process
I partnerLink (1 ou +)
I portType (fourni)
(0, 1 ou +)
I portType (requis)
(0, 1 ou +)
SCL
I Composant
I Ports fournis
I Port (fourni)
(0, 1 ou +)
I Ports requis
I Port (requis)
(0, 1 ou +)
Services Web
Travaux en cours au LATECE sur les WS
Aperçu
Définition des services Web
Description des services de base : WSDL
Description des processus : WS-BPEL
Services Web vs. composants logiciels
Travaux en cours au LATECE sur les WS
Quelques pistes à explorer
Services Web
Travaux en cours au LATECE sur les WS
Travaux en cours au LATECE sur les WS
I Vérification de processus exécutable WS-BPEL :
I Entrées = processus BPEL + expression d’interface
I Sortie = Le comportement du processus satisfait-il
l’expression d’interface?
I Comment :
I Le processus BPEL est traduit en Promela
I L’expression d’interface est traduite en assertions de trace
I SPIN est utilisé pour effectuer la vérification
Services Web
Travaux en cours au LATECE sur les WS
Travaux en cours au LATECE sur les WS
I Vérification de processus exécutable WS-BPEL :
I Entrées = processus BPEL + expression d’interface
I Sortie = Le comportement du processus satisfait-il
l’expression d’interface?
I Comment :
I Le processus BPEL est traduit en Promela
I L’expression d’interface est traduite en assertions de trace
I SPIN est utilisé pour effectuer la vérification
I Conception d’adapateurs (processus et messages) pour
les processus d’affaires en tourisme (Open Travel Alliance)
Services Web
Travaux en cours au LATECE sur les WS
Travaux en cours au LATECE sur les WS
I Vérification de processus exécutable WS-BPEL :
I Entrées = processus BPEL + expression d’interface
I Sortie = Le comportement du processus satisfait-il
l’expression d’interface?
I Comment :
I Le processus BPEL est traduit en Promela
I L’expression d’interface est traduite en assertions de trace
I SPIN est utilisé pour effectuer la vérification
I Conception d’adapateurs (processus et messages) pour
les processus d’affaires en tourisme (Open Travel Alliance)
I Recherche de services basée sur la génération
automatique de composition de processus
Services Web
Travaux en cours au LATECE sur les WS
Travaux en cours au LATECE sur les WS
I Vérification de processus exécutable WS-BPEL :
I Entrées = processus BPEL + expression d’interface
I Sortie = Le comportement du processus satisfait-il
l’expression d’interface?
I Comment :
I Le processus BPEL est traduit en Promela
I L’expression d’interface est traduite en assertions de trace
I SPIN est utilisé pour effectuer la vérification
I Conception d’adapateurs (processus et messages) pour
les processus d’affaires en tourisme (Open Travel Alliance)
I Recherche de services basée sur la génération
automatique de composition de processus
I Heuristique pour la génération des compensations dans
des processus BPEL
Services Web
Quelques pistes à explorer
Aperçu
Définition des services Web
Description des services de base : WSDL
Description des processus : WS-BPEL
Services Web vs. composants logiciels
Travaux en cours au LATECE sur les WS
Quelques pistes à explorer
Services Web
Quelques pistes à explorer
Pistes possibles à explorer
I De quelle façon les stratégies et techniques proposées
pour les composants peuvent-elles être utilisées pour les
services Web?
I Comment les notions d’orchestration vs. chorégraphie des
services Web s’appliquent-elles aux composants logiciels?
I Quels sont les liens entre composants logiciels et
architecture/design (Eden et Kazman)?
Services Web
Quelques pistes à explorer
Pistes possibles à explorer
I De quelle façon les stratégies et techniques proposées
pour les composants peuvent-elles être utilisées pour les
services Web?
I Comment les notions d’orchestration vs. chorégraphie des
services Web s’appliquent-elles aux composants logiciels?
I Quels sont les liens entre composants logiciels et
architecture/design (Eden et Kazman)?
Local Non-local
Extensional Implementation
Intensional Design Architecture
Services Web
Questions?
Questions? Commentaires? Remarques?

Contenu connexe

Similaire à intro-ws.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

cours6.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh...
cours6.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh...cours6.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh...
cours6.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh...hindguendouz2000
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRSLilia Sfaxi
 
Business process execution language
Business process execution languageBusiness process execution language
Business process execution languageBilel Abed
 
Architectures orientées services
Architectures orientées servicesArchitectures orientées services
Architectures orientées servicesDonia Hammami
 
on feature interactions among web services.ppt
on feature interactions among web services.ppton feature interactions among web services.ppt
on feature interactions among web services.pptkusterj
 
Architecture orientée service (SOA)
Architecture orientée service (SOA)Architecture orientée service (SOA)
Architecture orientée service (SOA)Klee Group
 
presentation_NET creation et consomation de services.pptx
presentation_NET creation et consomation de services.pptxpresentation_NET creation et consomation de services.pptx
presentation_NET creation et consomation de services.pptxhachchaneemsi
 
Introduction a la SOA
Introduction a la SOAIntroduction a la SOA
Introduction a la SOATugdual Grall
 
Decouverte2014-2015.pptx
Decouverte2014-2015.pptxDecouverte2014-2015.pptx
Decouverte2014-2015.pptxRihabBENLAMINE
 
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbWebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbHINDGUENDOUZ
 
Introduction au développement Web
Introduction au développement Web Introduction au développement Web
Introduction au développement Web Romain Willmann
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELLilia Sfaxi
 

Similaire à intro-ws.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb (20)

Ter Web Service Intro
Ter Web Service IntroTer Web Service Intro
Ter Web Service Intro
 
Soa & services web
Soa & services webSoa & services web
Soa & services web
 
cours6.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh...
cours6.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh...cours6.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh...
cours6.pdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh...
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
 
Business process execution language
Business process execution languageBusiness process execution language
Business process execution language
 
Architectures orientées services
Architectures orientées servicesArchitectures orientées services
Architectures orientées services
 
on feature interactions among web services.ppt
on feature interactions among web services.ppton feature interactions among web services.ppt
on feature interactions among web services.ppt
 
Architecture orientée service (SOA)
Architecture orientée service (SOA)Architecture orientée service (SOA)
Architecture orientée service (SOA)
 
Tutoriel web service
Tutoriel  web serviceTutoriel  web service
Tutoriel web service
 
presentation_NET creation et consomation de services.pptx
presentation_NET creation et consomation de services.pptxpresentation_NET creation et consomation de services.pptx
presentation_NET creation et consomation de services.pptx
 
Introduction a la SOA
Introduction a la SOAIntroduction a la SOA
Introduction a la SOA
 
Web Services
Web ServicesWeb Services
Web Services
 
Web services SOAP et REST
Web services  SOAP et RESTWeb services  SOAP et REST
Web services SOAP et REST
 
Axis2 services fr
Axis2 services frAxis2 services fr
Axis2 services fr
 
Decouverte2014-2015.pptx
Decouverte2014-2015.pptxDecouverte2014-2015.pptx
Decouverte2014-2015.pptx
 
Soap
SoapSoap
Soap
 
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbWebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
WebServices.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
Introduction au développement Web
Introduction au développement Web Introduction au développement Web
Introduction au développement Web
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPEL
 

Dernier

JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfInstitut de l'Elevage - Idele
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfInstitut de l'Elevage - Idele
 
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...maach1
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfInstitut de l'Elevage - Idele
 
présentation sur la logistique (4).
présentation     sur la  logistique (4).présentation     sur la  logistique (4).
présentation sur la logistique (4).FatimaEzzahra753100
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)Sana REFAI
 
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSKennel
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfmia884611
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...Institut de l'Elevage - Idele
 

Dernier (11)

CAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptxCAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptx
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdf
 
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdf
 
présentation sur la logistique (4).
présentation     sur la  logistique (4).présentation     sur la  logistique (4).
présentation sur la logistique (4).
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)
 
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdfJTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdf
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
 

intro-ws.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

  • 1. Services Web Une introduction aux services Web Guy Tremblay Université du Québec à Montréal (UQAM) http://www.info2.uqam.ca/~tremblay LATECE (LAbo. sur les TEchnologies du Commerce Electronique) http://www.latece.uqam.ca 2 février 2007 / LIRMM
  • 2. Services Web Aperçu Définition des services Web Description des services de base : WSDL Description des processus : WS-BPEL Services Web vs. composants logiciels Travaux en cours au LATECE sur les WS Quelques pistes à explorer
  • 3. Services Web Définition des services Web Aperçu Définition des services Web Description des services de base : WSDL Description des processus : WS-BPEL Services Web vs. composants logiciels Travaux en cours au LATECE sur les WS Quelques pistes à explorer
  • 4. Services Web Définition des services Web Que sont les services Web Définition des services Web (W3C) A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards. [Web Services Architecture, Feb. 2004]
  • 5. Services Web Définition des services Web Que sont les services Web Définition des services Web (Kadima et Monfort) Les service web sont des applications autodescriptives, modulaires et faiblement couplées qui fournissent un modéle simple de programmation et de déploiement d’applications, basé sur des normes, et s’exécutant au travers de l’infrastructure web. [. . . ] Services web = HTTP + SOAP + WSDL + Composants logiciels [Les Web Services, Dunod, 2001]
  • 6. Services Web Définition des services Web Service Oriented Architecture vs. Services Web SOA vs. WS “Service Oriented Architecture (SOA) is a paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains.” [OASIS, 2006]
  • 7. Services Web Définition des services Web Service Oriented Architecture vs. Services Web SOA vs. WS “Service Oriented Architecture (SOA) is a paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains.” [OASIS, 2006] “SOA describes an architectural style that is independent of using a particular technology. [SOA] involves advertisement of services in some form of a registry that clients can use to introspect, discover, hook up to, and invoke services of their choosing. ” [Bell, 2007]
  • 8. Services Web Définition des services Web Service Oriented Architecture vs. Services Web SOA vs. WS “Service Oriented Architecture (SOA) is a paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains.” [OASIS, 2006] “SOA describes an architectural style that is independent of using a particular technology. [SOA] involves advertisement of services in some form of a registry that clients can use to introspect, discover, hook up to, and invoke services of their choosing. ” [Bell, 2007]
  • 9. WS comme technologie pour SOA UDDI = Universal Description, Discovery and Integration [H. Ben-Ameur, Séminaire Latece, UQAM, Nov. 2004]
  • 10. Services Web Définition des services Web Niveaux de description des WS Niveaux de description des WS I Service de base : Quelles sont les opérations exportées par le service? WSDL = Web Services Description Language
  • 11. Services Web Définition des services Web Niveaux de description des WS Niveaux de description des WS I Service de base : Quelles sont les opérations exportées par le service? WSDL = Web Services Description Language I Processus d’affaire = service composite : Quelles sont les interactions du processus avec d’autres WS = Comment le processus réalise-t-il sa tâche? WS-BPEL = Web Services Business Process Execution Language = Orchestration
  • 12. Services Web Définition des services Web Niveaux de description des WS Niveaux de description des WS I Service de base : Quelles sont les opérations exportées par le service? WSDL = Web Services Description Language I Processus d’affaire = service composite : Quelles sont les interactions du processus avec d’autres WS = Comment le processus réalise-t-il sa tâche? WS-BPEL = Web Services Business Process Execution Language = Orchestration I Groupe de services : Comment doivent-ils collaborer pour réaliser un objectif commun (tâche complexe)? WS-CDL = Web Services Choreography Description Language = Chorégraphie
  • 13. Services Web Définition des services Web Niveaux de description des WS Niveaux de description des WS I Service de base : Quelles sont les opérations exportées par le service? WSDL = Web Services Description Language I Processus d’affaire = service composite : Quelles sont les interactions du processus avec d’autres WS = Comment le processus réalise-t-il sa tâche? WS-BPEL = Web Services Business Process Execution Language = Orchestration I Groupe de services : Comment doivent-ils collaborer pour réaliser un objectif commun (tâche complexe)? WS-CDL = Web Services Choreography Description Language = Chorégraphie . . . une autre fois
  • 14. Services Web Description des services de base : WSDL Aperçu Définition des services Web Description des services de base : WSDL Description des processus : WS-BPEL Services Web vs. composants logiciels Travaux en cours au LATECE sur les WS Quelques pistes à explorer
  • 15. Services Web Description des services de base : WSDL Spécification abstraite vs. concrète Description WSDL d’un service I WSDL = Web Service Description Language I Un service est caractérisé par un ou plusieurs ports ; chaque port est typé et lié à un protocole spécifique I Un WS est décrit par un fichier WSDL (XML)
  • 16. Services Web Description des services de base : WSDL Spécification abstraite vs. concrète Description WSDL d’un service I WSDL = Web Service Description Language I Un service est caractérisé par un ou plusieurs ports ; chaque port est typé et lié à un protocole spécifique I Un WS est décrit par un fichier WSDL (XML) I Spécification abstraite (interface) I Définitions de types de données (XSD) I Définitions de messages (opérations) I Définitions de types de port (collection d’opérations) I Spécification concrète I Définitions de liaisons (protocoles et format de données) I Définitions de ports (adresses) I Définitions de services
  • 17. Services Web Description des services de base : WSDL Spécification abtraite : structure et exemples Spécification abstraite : Message I Un message comporte une ou plusieurs parties (champs) I Chaque partie est caractérisée par un type I Exemple : <message name="GetTradePriceInput"> <part name="tickerSymbol" element="xsd:string"/> <part name="time"element="xsd:timeInstant"/> </message> <message name="GetTradePriceOutput"> <part name="result" type="xsd:float"/> </message>
  • 18. Services Web Description des services de base : WSDL Spécification abtraite : structure et exemples Spécification abstraite : Message I Un message comporte une ou plusieurs parties (champs) I Chaque partie est caractérisée par un type I Exemple : message GetTradePriceInput part tickerSymbol :string part time :timeInstant message GetTradePriceOutput part result :float
  • 19. Services Web Description des services de base : WSDL Spécification abtraite : structure et exemples Spécification abstraite : Type de port I Un type de port permet de décrire les opérations offertes par un service I Quatre types d’opérations : I Unidirectionnelle : le service reçoit un message et ne retourne aucune réponse I Requête/réponse : le services reçoit un message et retourne un message en réponse, de façon synchrone I Sollicitation/réponse : le service sollicite un autre service et reçoit une réponse en retour I Notification : le service sollicite un autre service, sans attendre de réponse
  • 20. Services Web Description des services de base : WSDL Spécification abtraite : structure et exemples Exemple : Une opération pour obtenir le prix d’un item <portType name="StockQuotePortType"> <operation name="GetTradePrice"> <input message="GetTradePriceInput"/> <output message="GetTradePriceOutput"/> <fault message="GetTradePriceWrongInput"/> </operation> [... Autres opérations du port ...] </portType>
  • 21. Services Web Description des services de base : WSDL Spécification abtraite : structure et exemples Exemple : Une opération pour obtenir le prix d’un item portType StockQuotePortType operation GetTradePrice input GetTradePriceInput output GetTradePriceOutput fault GetTradePriceWrongInput [... Autres opérations du port ...]
  • 22. Services Web Description des services de base : WSDL Spécification concrète : structure et exemples Spécification concrète : Liaison (binding) I Spécifie le protocole utilisé ainsi que le format des messages pour les opérations d’un type de port I Protocoles standards : SOAP, HTTP GET/POST, MIME
  • 23. Services Web Description des services de base : WSDL Spécification concrète : structure et exemples Spécification concrète : Liaison (binding) I Spécifie le protocole utilisé ainsi que le format des messages pour les opérations d’un type de port I Protocoles standards : SOAP, HTTP GET/POST, MIME I Exemple : <binding name="StockQuoteSoapBinding" type="StockQuotePortType"> <binding style="document" transport="http://schemas.xmlsoap.org/soap/http" <operation name="GetLastTradePrice"> <operation soapAction="http://example.com/GetLastTrad <input> <body use="literal"/> </input> <output> <body use="literal"/> </output> </operation> </binding>
  • 24. Services Web Description des services de base : WSDL Spécification concrète : structure et exemples Spécification concrète : Liaison (binding) I Spécifie le protocole utilisé ainsi que le format des messages pour les opérations d’un type de port I Protocoles standards : SOAP, HTTP GET/POST, MIME I Exemple : binding StockQuotePortType <binding style="document" transport="..." operation GetLastTradePrice operation soapAction="..." input use="literal" output use="literal"
  • 25. Services Web Description des services de base : WSDL Spécification concrète : structure et exemples Spécification concrète : Port et service I Un port spécifie l’adresse d’une liaison I Un service est un ensemble de ports I Plusieurs ports peuvent être associés à un même type de port, avec des liaisons ou adresses différentes
  • 26. Services Web Description des services de base : WSDL Spécification concrète : structure et exemples Spécification concrète : Port et service I Un port spécifie l’adresse d’une liaison I Un service est un ensemble de ports I Plusieurs ports peuvent être associés à un même type de port, avec des liaisons ou adresses différentes I Exemple : <service name="StockQuoteService"> <documentation>My first service</documentation> <port name="StockQuotePort" binding="StockQuoteBinding"> <address location="http://example.com/stockquote"/> </port> </service>
  • 27. Services Web Description des services de base : WSDL Spécification concrète : structure et exemples Spécification concrète : Port et service I Un port spécifie l’adresse d’une liaison I Un service est un ensemble de ports I Plusieurs ports peuvent être associés à un même type de port, avec des liaisons ou adresses différentes I Exemple : service StockQuoteService port StockQuotePort binding="StockQuoteBinding" address location="http://example.com/stockquote"
  • 28. Services Web Description des processus : WS-BPEL Aperçu Définition des services Web Description des services de base : WSDL Description des processus : WS-BPEL Services Web vs. composants logiciels Travaux en cours au LATECE sur les WS Quelques pistes à explorer
  • 29. Services Web Description des processus : WS-BPEL Rôle de WS-BPEL et structure générale WS-BPEL I WS-BPEL = Web Services – Business Process Execution Language I Rôle = Modéliser des processus d’affaires complexes, e.g., avec séquences complexes d’interactions
  • 30. Services Web Description des processus : WS-BPEL Rôle de WS-BPEL et structure générale WS-BPEL I WS-BPEL = Web Services – Business Process Execution Language I Rôle = Modéliser des processus d’affaires complexes, e.g., avec séquences complexes d’interactions I Ancêtres (BEA, IBM, Microsoft) : I BPEL4WS (Business Process Execution Language for Web Services) I XLANG (XML Business Process Language) I WSFL (Web Services Flow Language)
  • 31. Services Web Description des processus : WS-BPEL Rôle de WS-BPEL et structure générale WS-BPEL I WS-BPEL = Web Services – Business Process Execution Language I Rôle = Modéliser des processus d’affaires complexes, e.g., avec séquences complexes d’interactions I Ancêtres (BEA, IBM, Microsoft) : I BPEL4WS (Business Process Execution Language for Web Services) I XLANG (XML Business Process Language) I WSFL (Web Services Flow Language) I Deux utilisations prévues : I Processus exécutables ⇒ comportement effectif d’un processus d’affaire I Processus abstraits = “protocoles d’affaire” ⇒ protocole d’utilisation d’un processus d’affaire
  • 32. Services Web Description des processus : WS-BPEL Rôle de WS-BPEL et structure générale Principaux éléments d’une description BPEL I Les opérations fournies aux/requises des partenaires (décrites avec WSDL) ⇒ partnerLinkTypes, partnerLinks, partners I L’état interne requis pour modéliser l’interaction et le comportement ⇒ variables, correlationSets I Le comportement du processus (décrit de façon opérationnelle) ⇒ activity I Exemple : ordersProcess [http://www.it.uc3m.es/jaf/verbus]
  • 33. Services Web Description des processus : WS-BPEL Rôle de WS-BPEL et structure générale Principaux éléments d’une description BPEL I Les opérations fournies aux/requises des partenaires (décrites avec WSDL) ⇒ partnerLinkTypes, partnerLinks, partners I L’état interne requis pour modéliser l’interaction et le comportement ⇒ variables, correlationSets I Le comportement du processus (décrit de façon opérationnelle) ⇒ activity I Exemple : ordersProcess [http://www.it.uc3m.es/jaf/verbus]
  • 34. Services Web Description des processus : WS-BPEL Rôle de WS-BPEL et structure générale Principaux éléments d’une description BPEL I Les opérations fournies aux/requises des partenaires (décrites avec WSDL) ⇒ partnerLinkTypes, partnerLinks, partners I L’état interne requis pour modéliser l’interaction et le comportement ⇒ variables, correlationSets I Le comportement du processus (décrit de façon opérationnelle) ⇒ activity I Exemple : ordersProcess [http://www.it.uc3m.es/jaf/verbus]
  • 35. Exemple ordersProcess: les portTypes WSDL <portType name="orderService"> <operation name="order"> <input message="OrderMessage"/> <output message="InvoiceMessage"/> </operation> </portType> <portType name="warehouse"> <operation name="order"> <input message="OrderMessage"/> <output message="InvoiceMessage"/> </operation> <operation name="schedule"> <input message="OrderMessage"/> </operation> </portType> <portType name="warehouseCallback"> <operation name="receive_not"> <input message="InvoiceMessage"/> </operation> </portType>
  • 36. Exemple ordersProcess: les portTypes WSDL portType orderService operation order input OrderMessage output InvoiceMessage portType warehouse operation order input OrderMessage output InvoiceMessage operation schedule input OrderMessage portType warehouseCallback operation receive_not input InvoiceMessage
  • 37. Services Web Description des processus : WS-BPEL Structure et exemple de spécification WS-BPEL Exemple ordersProcess: les partnerLinkTypes <plnk:partnerLinkType name="orderLnk"> <plnk:role name="orderService"> <plnk:portType name="tns:orderService"/> </plnk:role> </plnk:partnerLinkType> <plnk:partnerLinkType name="warehouseLnk"> <plnk:role name="orderService"> <plnk:portType name="tns:warehouseCallback"/> </plnk:role> <plnk:role name="warehouseService"> <plnk:portType name="tns:warehouse"/> </plnk:role> </plnk:partnerLinkType>
  • 38. Services Web Description des processus : WS-BPEL Structure et exemple de spécification WS-BPEL Exemple ordersProcess: les partnerLinkTypes partnerLinkType orderLnk role orderService portType orderService partnerLinkType warehouseLnk role orderService portType warehouseCallback role warehouseService portType warehouse
  • 39. Services Web Description des processus : WS-BPEL Structure et exemple de spécification WS-BPEL Exemple ordersProcess : les partnerLinks <partnerLinks> <partnerLink name="ordering" partnerLinkType="orderLnk" myRole="orderService" /> <partnerLink name="warehouse" partnerLinkType="warehouseLnk" myRole="orderService" partnerRole="warehouseService"/> </partnerLinks>
  • 40. Services Web Description des processus : WS-BPEL Structure et exemple de spécification WS-BPEL Exemple ordersProcess : les partnerLinks partnerLink ordering partnerLinkType="orderLnk" myRole="orderService" partnerLink warehouse partnerLinkType="warehouseLnk" myRole="orderService" partnerRole="warehouseService
  • 41. Services Web Description des processus : WS-BPEL Structure et exemple de spécification WS-BPEL Exemple ordersProcess
  • 42. Services Web Description des processus : WS-BPEL Structure et exemple de spécification WS-BPEL Exemple ordersProcess
  • 43. Services Web Description des processus : WS-BPEL Structure et exemple de spécification WS-BPEL Description des activités Opérations impératives typiques pour processus séquentiels communiquants (à la CSP, CCS, Lotos, etc.) I <assign> I <sequence>, <flow>, <switch>, <while> I <receive>, <reply>, <invoke> I <pick>, <wait> I <throw>, <compensate>, <terminate> I <scope>
  • 44. Services Web Description des processus : WS-BPEL Structure et exemple de spécification WS-BPEL Description des activités Opérations impératives typiques pour processus séquentiels communiquants (à la CSP, CCS, Lotos, etc.) I <assign> I <sequence>, <flow>, <switch>, <while> I <receive>, <reply>, <invoke> I <pick>, <wait> I <throw>, <compensate>, <terminate> I <scope> Particularité : Possible, avec les flow, de ne spécifier qu’un ordre partiel d’exécution
  • 45. Services Web Description des processus : WS-BPEL Structure et exemple de spécification WS-BPEL Exemple : activités séquentielles <sequence> <receive portType="orderService" partnerLink="ordering" operation="order" variable="order" createInstance="yes"/> <switch> <case condition="..."> <invoke portType="warehouse" partnerLink="warehouseLnk" operation="order" inputVariable="order" outputVariable="invoice"/> </case> <otherwise> ... </otherwise> </switch> ... </sequence>
  • 46. Services Web Description des processus : WS-BPEL Structure et exemple de spécification WS-BPEL Exemple : activités séquentielles <sequence> <receive portType="orderService" partnerLink="ordering" operation="order" variable="order" createInstance="yes"/> <switch> <case condition="..."> <invoke portType="warehouse" partnerLink="warehouseLnk" operation="order" inputVariable="order" outputVariable="invoice"/> </case> <otherwise> ... </otherwise> </switch> ... </sequence>
  • 47. Services Web Description des processus : WS-BPEL Structure et exemple de spécification WS-BPEL Exemple : activités séquentielles <sequence> <receive portType="orderService" partnerLink="ordering" operation="order" variable="order" createInstance="yes"/> <switch> <case condition="..."> <invoke portType="warehouse" partnerLink="warehouseLnk" operation="order" inputVariable="order" outputVariable="invoice"/> </case> <otherwise> ... </otherwise> </switch> ... </sequence>
  • 48. Services Web Description des processus : WS-BPEL Structure et exemple de spécification WS-BPEL Exemple : activités séquentielles <sequence> <receive portType="orderService" partnerLink="ordering" operation="order" variable="order" createInstance="yes"/> <switch> <case condition="..."> <invoke portType="warehouse" partnerLink="warehouseLnk" operation="order" inputVariable="order" outputVariable="invoice"/> </case> <otherwise> ... </otherwise> </switch> ... </sequence>
  • 49. Services Web Description des processus : WS-BPEL Structure et exemple de spécification WS-BPEL Exemple : activités séquentielles <sequence> <receive portType="orderService" partnerLink="ordering" operation="order" variable="order" createInstance="yes"/> <switch> <case condition="..."> <invoke portType="warehouse" partnerLink="warehouseLnk" operation="order" inputVariable="order" outputVariable="invoice"/> </case> <otherwise> ... </otherwise> </switch> ... </sequence>
  • 50. Exemple : sélection non-déterministe <pick> <onMessage portType="pt1" partnerLink="pl1" operation="op1" variable="v1"> ... activite1 ... </onMessage> <onMessage portType="p2" partnerLink="pl2" operation="op1" variable="v2"> ... activite2 ... </onMessage> ... <onAlarm name="timeout" for="P5D"> ... activite ... </onAlarm> </pick>
  • 51. Services Web Services Web vs. composants logiciels Aperçu Définition des services Web Description des services de base : WSDL Description des processus : WS-BPEL Services Web vs. composants logiciels Travaux en cours au LATECE sur les WS Quelques pistes à explorer
  • 52. Services Web Services Web vs. composants logiciels Services Web vs. composants logiciels (à la SCL) WS (WSDL) I message SCL I Signature
  • 53. Services Web Services Web vs. composants logiciels Services Web vs. composants logiciels (à la SCL) WS (WSDL) I operation I message (1 ou 2) SCL I Service I Signature
  • 54. Services Web Services Web vs. composants logiciels Services Web vs. composants logiciels (à la SCL) WS (WSDL) I portType I operation (1 ou +) I message (1 ou 2) SCL I Port I Service (1 ou +) I Signature
  • 55. Services Web Services Web vs. composants logiciels Services Web vs. composants logiciels (suite) WS (BPEL) I portType (fourni) I portType (requis) SCL I Port (fourni) I Port (requis)
  • 56. Services Web Services Web vs. composants logiciels Services Web vs. composants logiciels (suite) WS (BPEL) I partnerLink I portType (fourni) (0, 1 ou +) I portType (requis) (0, 1 ou +) SCL I Port (fourni) I Port (requis)
  • 57. Services Web Services Web vs. composants logiciels Services Web vs. composants logiciels (suite) WS (BPEL) I process I partnerLink (1 ou +) I portType (fourni) (0, 1 ou +) I portType (requis) (0, 1 ou +) SCL I Composant I Ports fournis I Port (fourni) (0, 1 ou +) I Ports requis I Port (requis) (0, 1 ou +)
  • 58. Services Web Travaux en cours au LATECE sur les WS Aperçu Définition des services Web Description des services de base : WSDL Description des processus : WS-BPEL Services Web vs. composants logiciels Travaux en cours au LATECE sur les WS Quelques pistes à explorer
  • 59. Services Web Travaux en cours au LATECE sur les WS Travaux en cours au LATECE sur les WS I Vérification de processus exécutable WS-BPEL : I Entrées = processus BPEL + expression d’interface I Sortie = Le comportement du processus satisfait-il l’expression d’interface? I Comment : I Le processus BPEL est traduit en Promela I L’expression d’interface est traduite en assertions de trace I SPIN est utilisé pour effectuer la vérification
  • 60. Services Web Travaux en cours au LATECE sur les WS Travaux en cours au LATECE sur les WS I Vérification de processus exécutable WS-BPEL : I Entrées = processus BPEL + expression d’interface I Sortie = Le comportement du processus satisfait-il l’expression d’interface? I Comment : I Le processus BPEL est traduit en Promela I L’expression d’interface est traduite en assertions de trace I SPIN est utilisé pour effectuer la vérification I Conception d’adapateurs (processus et messages) pour les processus d’affaires en tourisme (Open Travel Alliance)
  • 61. Services Web Travaux en cours au LATECE sur les WS Travaux en cours au LATECE sur les WS I Vérification de processus exécutable WS-BPEL : I Entrées = processus BPEL + expression d’interface I Sortie = Le comportement du processus satisfait-il l’expression d’interface? I Comment : I Le processus BPEL est traduit en Promela I L’expression d’interface est traduite en assertions de trace I SPIN est utilisé pour effectuer la vérification I Conception d’adapateurs (processus et messages) pour les processus d’affaires en tourisme (Open Travel Alliance) I Recherche de services basée sur la génération automatique de composition de processus
  • 62. Services Web Travaux en cours au LATECE sur les WS Travaux en cours au LATECE sur les WS I Vérification de processus exécutable WS-BPEL : I Entrées = processus BPEL + expression d’interface I Sortie = Le comportement du processus satisfait-il l’expression d’interface? I Comment : I Le processus BPEL est traduit en Promela I L’expression d’interface est traduite en assertions de trace I SPIN est utilisé pour effectuer la vérification I Conception d’adapateurs (processus et messages) pour les processus d’affaires en tourisme (Open Travel Alliance) I Recherche de services basée sur la génération automatique de composition de processus I Heuristique pour la génération des compensations dans des processus BPEL
  • 63. Services Web Quelques pistes à explorer Aperçu Définition des services Web Description des services de base : WSDL Description des processus : WS-BPEL Services Web vs. composants logiciels Travaux en cours au LATECE sur les WS Quelques pistes à explorer
  • 64. Services Web Quelques pistes à explorer Pistes possibles à explorer I De quelle façon les stratégies et techniques proposées pour les composants peuvent-elles être utilisées pour les services Web? I Comment les notions d’orchestration vs. chorégraphie des services Web s’appliquent-elles aux composants logiciels? I Quels sont les liens entre composants logiciels et architecture/design (Eden et Kazman)?
  • 65. Services Web Quelques pistes à explorer Pistes possibles à explorer I De quelle façon les stratégies et techniques proposées pour les composants peuvent-elles être utilisées pour les services Web? I Comment les notions d’orchestration vs. chorégraphie des services Web s’appliquent-elles aux composants logiciels? I Quels sont les liens entre composants logiciels et architecture/design (Eden et Kazman)? Local Non-local Extensional Implementation Intensional Design Architecture