Decentralized Orchestration of Composite Web Services - overview
Web services encapsulate information, software or other resources, and make them available over the network via standard interfaces and protocols. Complex web services may be created by aggregating the functionality provided by simpler ones. This is referred to as service composition and the aggregated web service becomes a composite web service.
Composite web services may be developed using a specification language such as BPEL4WS and executed by a workflow
engine such as Websphere Business Integration Server Foundation Process Choreographer
and BPWS4J. Typically, a composite web service
specification is executed by a single coordinator node. It receives the client requests, makes the required data transformations and invokes the component web services as per the specification. We refer to this mode of execution as centralized orchestration.
Specifying a composite service using a language like BPEL4WS has interesting ramifications. The specification can be analyzed using techniques such as program analysis , petri-nets, etc. In the Symphony project, we analyze a composite service specification for data and control dependences and partition the code can into smaller components that execute at distributed locations. We refer to this mode of execution as decentralized orchestration. In decentralized orchestration of composite web services, there are multiple engines, each executing a composite web service specification (a portion of the original composite web service specification but complete in itself) at distributed locations. The engines communicate directly with each other (rather than through a central coordinator) to transfer data and control when necessary in an asynchronous manner.
Decentralized orchestration is important for a variety of reasons. It may be the only way to orchestrate inter organization workflows or composite web services due to data privacy issues. For example, this is becoming increasingly important in the healthcare industry as confidential patient data is exchanged across different organizations. We apply decentralized orchestration to overcome such data flow constraints and data privacy issues for cross organizational composite services. Decentralized orchestration can also bring performance benefits for the following reasons :
- There is no centralized coordinator which can be a potential bottleneck.
- Distributing the data reduces network traffic and improves transfer time.
- Distributing the control improves concurrency.
- Asynchronous messaging between engines brings benefits of better throughput and graceful degradation.