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?

intro-ws.pdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

  • 1.
    Services Web Une introductionaux 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 desservices 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 desservices 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 desservices 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 desservices 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 desservices 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 desservices 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 desservices 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 technologiepour SOA UDDI = Universal Description, Discovery and Integration [H. Ben-Ameur, Séminaire Latece, UQAM, Nov. 2004]
  • 10.
    Services Web Définition desservices 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 desservices 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 desservices 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 desservices 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 desservices 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 desservices 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 desservices 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 desservices 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 desservices 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 desservices 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 desservices 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 desservices 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 desservices 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 desservices 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 desservices 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 desservices 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 desservices 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 desservices 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 desprocessus : 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 desprocessus : 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 desprocessus : 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 desprocessus : 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 desprocessus : 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 desprocessus : 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 desprocessus : 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: lesportTypes 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: lesportTypes 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 desprocessus : 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 desprocessus : 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 desprocessus : 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 desprocessus : 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 desprocessus : WS-BPEL Structure et exemple de spécification WS-BPEL Exemple ordersProcess
  • 42.
    Services Web Description desprocessus : WS-BPEL Structure et exemple de spécification WS-BPEL Exemple ordersProcess
  • 43.
    Services Web Description desprocessus : 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 desprocessus : 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 desprocessus : 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 desprocessus : 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 desprocessus : 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 desprocessus : 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 desprocessus : 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électionnon-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 Webvs. 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 Webvs. composants logiciels Services Web vs. composants logiciels (à la SCL) WS (WSDL) I message SCL I Signature
  • 53.
    Services Web Services Webvs. 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 Webvs. 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 Webvs. 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 Webvs. 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 Webvs. 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 encours 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 encours 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 encours 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 encours 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 encours 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
  • 66.