Ode - Orchestration Director Engine
"A lyric poem of some length, usually of a serious or meditative nature and having an elevated style and formal stanzaic structure". - American Heritage Dictionary
We are proposing an orchestration service that implements the WS-BPEL specification. The implementation will also support Message/Event to process correlation
The project proposal includes development of an orchestration engine abstraction to standard externally defined interfaces/bindings. The interface implementations and/or bindings will enable the orchestration service to be plugged into various service bus or component architectures.
For a complete SOA stack, course-grained, long lived, service orchestration is an important aspect of service interaction. WS-BPEL is the standard description language for describing this level of service interaction. While there is a lot of ongoing effort in Apache towards solving the assembly and bus architecture issues of SOA, the higher level orchestration integration aspect could be better served.
The initial source for Ode originates from a Sybase donation and the PXE BPEL 2.0 engine from Intalio.
The Sybase donation generically implements a superset of the academically recognized workflow patterns that are a superset of WSBPEL yet adhere to specific WSBPEL v1.1 language constructs. The initial source contribution does not require any WSBPEL extensions and is opaque with respect to the orchestration process context types. The initial source fully implements the BPEL v1.1 specification however there are some things to do:
The Intalio PXE BPEL 2.0 engine is currently licensed under the CPL open source license, and has been integrated into third-party products/projects such as Sun's Java Studio Enterprise and Apache ServiceMix.
We propose growing the Apache SOA stack through integration with ServiceMix, Axis, Tuscany, Celtix, etc ...
The proposed implementation will solely focus on service orchestration. We will implement the appropriate plug-in points for a specific ESB or component architecture. This would include exposing BPEL definitions as a service, enable the consumption of services by a BPEL process and exposure of BPEL management services.
The core of the donated code is used within a commercially viable product and receives constant feedback. The project will be actively supported both by the current committers and those in the community actively seeking to leverage orchestration with the SOA stack. The BPEL 2.0 specification is a diverse and active community and we anticipate continued interest in the orchestration of Web Services and integration with other Apache projects.
The Eclipse foundation has formed a BPEL tooling project (http://www.eclipse.org/bpel/) that will help visualize service orchestration and add to service orchestration interest.
Many of the current committers have experience working with open source projects and communities and the leaders of this project are long time ASF contributors. We do not expect any difficulty in executing under normal meritocracy rules.
The initial contributions are developed by Sybase and Intalio employees but there is a strong support of developers wishing to work on the code from the current Geronimo, ServiceMix and Agila projects as well as developers from various companies: Envoi Solutions, IBM, Intalio, LogicBlaze, Sybase, Unity Systems, Virtuas, and WSO2...
We are anticipating that the service orchestration engine will be used within a larger SOA stack (i.e. ServiceMix, Tuscany, Synapse). To that end we will actively work with other projects to define and implement the appropriate plug-in points/bindings/abstractions orchestration. The default standards based plugin architecture for integration components is JBI (JSR 208) which we will be tackling first. Other kinds of plugins could be created over time.
For QoS features the Ode project will leverage Geronimo backbones (transaction management, security, threading).
The following individuals have expressed interest in participating as committers:
We kindly request the Apache Incubator PMC to accept this project.
These individuals will participate as Incubator Mentors