OOPSLA '04

Program
Technical Program
  Invited Speakers
  Technical Papers
  Onward!
  Panels
  Practitioner Reports
  Tutorials
Workshops
DesignFest
Educators' Symposium
Demonstrations
Posters
Doctoral Symposium
Exhibits
Student Research Comp.
FlashBoF
 
Turing Lecture
 
Social Events
 
Week at a Glance
 
Final Program (1.5M .pdf)

Find in Program
 

Page
Printer-friendly

Basket
view, help

"Decentralizing Execution of Composite Web Services"
Object-Oriented Programming, Systems, Languages and Applications
Home    Program    Housing & Transportation    Registration    Submissions    Wiki    Maps
 
  > Technical Program > Technical Papers > Aspects in the Middle

 : Wednesday

Decentralizing Execution of Composite Web Services

Ballroom A-B
Wednesday, 11:00, 30 minutes
 


 
7·8·9·10·11·12·13·14·15·16·17·18·19·20·21

Mangala Gowri Nanda, IBM India Research Laboratory
Satish Chandra, IBM India Research Laboratory
Vivek Sarkar, IBM T. J. Watson Research Center

Distributed enterprise applications today are increasingly being built from services available over the web. A unit of functionality in this framework is a web service, a software application that exposes a set of "typed" connections that can be accessed over the web using standard protocols. These units can then be composed into a composite web service. BPEL (Business Process Execution Language) is a high-level distributed programming language for creating composite web services.

Although a BPEL program invokes services distributed over several servers, the orchestration of these services is typically under centralized control. Because performance is a major concern in enterprise applications, it is important to remove the inefficiencies introduced by the centralized control. In a distributed, or decentralized orchestration, the BPEL program is partitioned into independent sub-programs that interact with each other without any centralized control. Decentralization can increase parallelism and reduce the amount of network traffic required for an application.

This paper presents a technique to partition a composite web service written as a single BPEL program into an equivalent set of decentralized parts. It gives a new code partitioning algorithm to partition a BPEL program represented as a program dependence graph, in a way that minimizes communication costs. The paper explains why standard program partitioning approaches for multiprocessor execution do not work well in our setting. Departing from the traditional optimization target of reducing completion time, the paper uses throughput as its primary performance metric, which is more appropriate for the intended workload. It also gives a cost model to estimate throughput of a given code partition in order to select the most efficient one. Experimental results show that our algorithm can increase the throughput of example composite services substantially, easily doubling it under high system load.