Agentspace-Entish

Download Report

Transcript Agentspace-Entish

enTish: an Approach to
Service Composition
Stanisław Ambroszkiewicz
the leader of the enTish team
IPI PAN, Polish Academy of Sciences
and Institute of Informatics, University of Podlasie,
Poland
1
Client - Server paradigm
for distributed computing
client
request
Server:
services
 Server provides some services for clients.
 Client sends a request to the server.
 The request is realized by invoking a service.
 Service invocation protocols:
RPC-style
message passing style
… ???
2
RPC model
remote procedure call
Message Exchange Pattern: stateless synchronous request - response
request (call)
RPC
client
request
RPC
service
response (return)
response
response
client stub
XDR
request
request
service stub
XDR
response
response
request
Transport Protocol ( … )
Network Layer (TCP/IP)
3
Web services model
RPC-style: remote operation call
Message Exchange Pattern: stateless synchronous request - response
WS
client
request (call)
response (return)
service proxy
(SOAP+WSDL)
WS
service
service template
(SOAP+WSDL)
Transport Protocol ( HTTP )
Network Layer (TCP/IP)
4
Web services model
document passing style
Message Exchange Pattern: stateless asynchronous document passing
WS
client
XML document
???
service proxy
(SOAP+WSDL)
WS
service
service template
(SOAP+WSDL)
Transport Protocol ( HTTP )
Network Layer (TCP/IP)
5
RPC-style of service
invocation
After >12 years of RPC
there is no killer apps for integrating heterogenous applications
After >8 years of CORBA (object oriented RPC-style)
there is no killer apps for integrating heterogenous objects
After >3 years of Web services (service oriented
RPC-style and document-style)
there is no killer apps for integrating heterogenous services
A conclusion:
Perhaps they are too primitive, i.e., more sophisticated service
invocation protocol is needed?
6
yet another service
invocation protocol
Message Exchange Pattern: ( … )
response:
request:
client
invocation
protocol*
service
 Grid services: service is augmented with state and specific
portTypes; ?grid service invocation protocol?
 Is it possible (reasonable) to construct a service invocation
protocol different than RPC and document passing?
 It seems that it is!
 Let’s present a sketch of such protocol.
*) the conversation parties may have states
8
A new service invocation protocol:
Composition of two services
Client
payOrder
BANK
payConfirm
payOrder
bookOrder
BookStore
bookOrder
Client:
bookInvoice
Purchase
completed!
9
The protocol in action: Phase 1 - workflow formation
Client sends a query that is propagated back by services to the client
ClientI-01
query for a book
of a fixed author
value(payConfirm)=„50”
author(bookInvoice)=„J.R.R. Tolkien”
BookStore
BANK
...=„70”
value(payOrder)=„53”
...=„60”
...=„73”
input
constrains
...=„63”
title(bookOrder)=„Hobbit”
ClientI-02
title
price
Hobbit
53
The Lord of the Rings 73
Silmarillion
63
...=„The Lord of the Rings”
...=„Silmarillion”
Client chooses one option, then the documents
payOrder and bookOrder are created and …
10
The protocol in action: Phase 2 - workflow execution
data (e-documents) are processed and effect the real world
ClientI-02
payOrder
50+3 euro
BANK
payConfirm
50 euro
payOrder
bookOrder
bookOrder
„Hobbit”
ClientI-03
Purchase
completed!
BookStore
bookInvoice
for the book
„Hobbit” for 53
euro
11
a new service
invocation protocol
 It is not the stateless synchronous
request-response MEP nor stateless
asynchronous document passing!
 Service must be „intelligent”, i.e., it must
be able to answer the queries
12
a new service
invocation protocol
 The query phase:
Client sends a query
specifying the desired
output.
The service specifies the
input required to produce
the desired output.
query:
input1
query:
output
 The execution phase:
Client creates data
according to the input
specs and sends it to the
service.
Service processes the
data and sends the
result to the client.
input1
output
service
service
query:
input2
input2
13
a new service
invocation protocol
 Can this protocol be implemented in the style
of RPC and/or document passing?
 Of course, it can be, e.g., by using BPEL4WS,
WSCI, BPML, etc..
 Not in a generic way, i.e., these specific data
and operation types MUST be hard-coded in
these implementations
14
SOAP+WSDL versus the
new protocol
 SOAP+WSDL service
invocation protocols:
RPC-style, or document passing
stateless
data flow and control flow
integrated into one message
simple request-response MEP
synchronous, or asynchronous
 Our proposal of service
invocation protocol:
new style of service invocation
state full
data flow is separated from the
control flow
two phases: one for control
flow and one for data flow
asynchronous control flow, and
asynchronous data flow
15
a new service
invocation protocol
Requirements:
clients and services MUST keep the state of the current
protocol session
generic open language for describing:
data and their attributes
how the data are processed, i.e., types of operation performed by
services
states of clients and services, i.e., clients’ intentions, and services’
commitments
message format, and state format
message transport protocol, and data transport protocol
etc.,
Can these requirements be realized?
16
say nothing
that isn’t worth saying
YES, they can!
enTish is our proposal to realize the requirements
for new service invocation (composition) protocol
enTish is a specification; prototype was already
realized
more details on www.ipipan.waw.pl/mas/
17
say nothing
that isn’t worth saying
www.ipipan.waw.pl/mas/
18