Professional Documents
Culture Documents
RESTful Web Service Composition With BPEL For REST
RESTful Web Service Composition With BPEL For REST
composition with
BPEL for REST
Cesare Pautasso
Data & Knowledge Engineering (2009)
2010-05-04
Seul-Ki Lee
Contents
Introduction
Background
Design principles of RESTful Web service
BPEL for REST extension
Implementation
Reference architecture
Related work
Conclusion
2/22
Introduction (1/5)
Web Service
Describes web-based applications over the web
Helpful to the distributed development environments
Web is enable to on-the-fly programming (or live coding)
Easy to evolve and enhance the applications
3/22
Introduction (2/5)
Traditional Web service
Find
Register
4/22
Introduction (3/5)
RESTful Web service
URI
5/22
Introduction (4/5)
Service workflow language
Workflow language
Compose
Find
Register
Publish
Bind and invoke
6/22
Introduction (5/5)
In this paper
Suggest extended workflow language for RESTful Web
service
Composes RESTful Web services by directly invoking related
services
Publishes processes as RESTful Web services
Extended workflow language
Compose
Invoke
URI
Publish
7/22
Background (1/2)
Business Process Execution Language (BPEL)
Describes business logic between service interactions
Web service description languages do not contain the
execution order of services
Gain broad acceptance in industry and research
De facto standard of business process language
8/22
Background (2/2)
BPEL structure
<process>
<partnerLink>
Client
<receive>
port
<partnerLink>
<process>
<invoke>
port
WS1
<partnerLink>
<invoke>
port
WS2
<reply>
9/22
10/22
11/22
12/22
Results
More than one respond attributes are possible
for multiple data
13/22
Implementation (1/4)
e-Commerce scenario
Clients browse product catalogs and
request price quotes
Gathers corresponding
products
Ships the products
14/22
Implementation (2/4)
e-Commerce scenario (contd)
Create new order
<!-- Assume variables are declared -->
15/22
Implementation (3/4)
e-Commerce scenario (contd)
Add and remove item
Save <get> result in the variable
16/22
Implementation (4/4)
e-Commerce scenario (contd)
Confirm payment information
17/22
Reference architecture
Integrated BPEL engine
Front-End
Handles HTTP requests from clients by routing them to the
corresponding request handler
Back-End
Invoke and bind a RESTful service down to an HTTP requestresponse interaction
18/22
Related work
Proposed approaches
Modification of existing BPEL
H.Overdick
Bite
Proposed
approach
Activities
support
All activities
Publishing
Direct
Indirect
Direct
Resource
declaration
Dynamic
Static
Dynamic
19/22
Conclusion
Contribution
Propose an extended BPEL for REST
To support the composition of RESTful Web services
Add BPEL activities for GET, POST, PUT and DELETE
Future work
Publishing new resource by processes or creating new
process by resource
Process can create specific resource instance by HTTP Cookie
or URI rewriting method
20/22
Discussion
Pros
Propose an extended workflow language
Without loss of RESTful Web services advantages
With original traditional Web services form
Cons
Do not show the composition result between traditional
Web service and RESTful Web service
Missing implementation is existing
21/22
Research (1/2)
Separation of roles
SOAP Web service
Unit
Process
Resource
Applicable area
Transaction processing
Security
None
Context
management
Yes
No
Standard
WSDL
None
Limitation
Absence of standard
Difficulty of management
23/22
Research (1/2)
In my approach
Finds optimized composition method for complex Web
services with previous BPEL
No distinction between SOAP web service and RESTful Web
service are required
Two registries can be same
Correspond
required service
BPEL
RESTful
Web service
registry
No
Yes
SOAP
Web service
registry
Compose
Web service
KAIST SE LAB 2010
24/22
Current Issues
Development environment
25/22
Web service
Services delivered over the web using technologies
e.g., XML, WSDL, SOAP and UDDI
26/22
Dynamic discovery
Composite services can be built from aggregates of other
services
27/22
BPEL notation
Request-response structure
<receive> : request message from an external partners
<reply> : response message corresponding <receive>
<invoke> : call a Web service provided by a partner
28/22