Service Orchestration Functional Specification - Overview
$Revision: 126.96.36.199 $
$Date: 2009/10/29 16:50:04 $
This functional specification will give details about the design of the new SOA Web Service Orchestration Designer tool (aka BPEL-BPMN tool) which will be introduced in NetBeans Enterprise Pack. Web Services Business Process Execution Language is a specialized programming language for specifying business process behavior based on Web Services. Note that the current finalized specification of BPEL4WS is 1.1. The next generation of this specification will be WS-BPEL 2.0, note the name change. This functional specification will primarily use the term BPEL in order to maintain focus on the language rather than a particular specification number. It is currently assumed that the first release of the Orchestration Designer will target WS-BPEL 2.0.
"WS-BPEL provides a language for the formal specification of Executable and Abstract business processes. By doing so, it extends the Web Services interaction model and enables it to support business transactions. WS-BPEL defines an interoperable integration model that should facilitate the expansion of automated process integration in both the intra-corporate and the business-to-business spaces." WS-BPEL 2.0
A BPEL4WS technology solution consists of design time and runtime aspects. The design time technology must allow BPEL developers to author BPEL files which describes a BPEL process. The runtime technology consists of a BPEL Server,(aka BPEL engine) to which BPEL artifacts are deployed. Once deployed, the BPEL server "contains" the BPEL processes and supports process instantiation and execution. BPEL servers may be written in any language and hosted in any configuration that a BPEL server vendor provides. This means that a BPEL server is not the same as a J2EE server. A BPEL server may be hosted by a J2EE Server, or it may be a stand alone entity. That is a BPEL server vendor decision.
Relationship between Orchestration Designer and BPEL Server(s)
This functional specification will concentrate, primarily, on those features of the new feature cluster which will support the design time authoring and interactive debugging of BPEL processes. While the primary BPEL artifacts developed in JSE will be portable to any BPEL server, the full cycle BPEL support described in this functional specification will be limited to those BPEL processes which are deployed to the co-bundled Fivesight PXE BPEL Server. JSE will provide an out of the box BPEL runtime environmet by bundling the open source PXE Orchestation Server from FiveSight. This will allow JSE to provide a full cycle orchestration ecology that enables developers to design, deploy, test, and debug BPEL processes. This functional specification will address the integration points between the JSE design time environment and the bundled Fivesight PXE BPEL server.
Additionally, the Sun Java Business Integration (JBI) team plans to host a BPEL server as part of its Java Business Integration Server offering. At present, the plan of record is that this BPEL server will also be the PXE orchestration server, albeit one which has been modified to be hosted by JBI. Eventually, the JSE Orchestation Design tool may support full cycle development to the JBI hosted PXE server in a similar fashion to that which is envisioned for the bundled stand alone PXE server. However, the exact details of a JSE - JBI bundling are out of scope for this version of the functional spec.
Finally, in the interest of avoiding confusion, there is a third BPEL runtime on the horizon. That is the BPEL runtime provided by SeeBeyond, which was recently acquired by Sun. Eventually, the JSE Orchestation Design tool may support full cycle development to the SeeBeyond hosted BPEL server in a similar fashion to that which is envisioned for the bundled stand alone PXE server. However, the exact details of a JSE - SeeBeyond bundling are out of scope for this version of the functional spec.
Relationship between Orchestration Designer and BPMN Notation
BPMN stands for Business Process Modeling Notation. It is also a specification from BPMI.org whose current finalized version is BPMN 1.0.
“The Business Process Modeling Notation (BPMN) specification provides a graphical notation for expressing business processes in a Business Process Diagram (BPD). The objective of BPMN is to support business process management by both technical users and business users by providing a notation that is intuitive to business users yet able to represent complex process semantics. The BPMN specification also provides a mapping between the graphics of the notation to the underlying constructs of execution languages, particularly BPEL4WS.” BPMN Spec V1.0
BPMN is intended to compliment BPEL4WS by providing a standard visual notation since BPEL4WS does not specify a visual modeling notation. BPMN appeals to both tool vendors and business process designers who will be able to standardize on the modeling notation for business process diagrams as opposed to a vendor specific free for all world where every tool promotes its own unique notation. This is analagous to the appeal of UML which also provides a standard modeling notation that benefits both tool vendors and designers. In fact, BPMI.org has submitted BPMN to the OMG (the standards body that oversees UML) for consideration as the foundation for a new UML diagram type called business process diagram. This last point is merely meant to suggest the future direction of BPMN. For the sake of this functional specification we will be referring to BPMN 1.0.
Our intent in the JSE Orchestration Designer is to provide business process analysts and designers with a design time IDE where they can visually design business process diagrams using the BPMN notation and the tool will then generate BPEL process files based on these diagrams. Conversely, the tool should be able to import arbitarty BPEL files and present them for continuing development as BPMN diagrams. However, the Orchestration Desisgner will not support the full scope of BPMN.
While, on the surface, BPMN and BPEL seem totally complimentary, the real story is more complex. Unfortunately, at this time, the BPMN specification only provides a mapping from BPMN to BPEL. It does not provide a mapping from BPEL to BPMN. Additionally, BPMN is "bigger than BPEL" to the extent that the BPMN specification includes some BPMN constructs that are not mappable to BPEL. It is not as simple as diagramming in BPMN and then easily generating BPEL. After much analysis, the decision has been made to bias the Orchestration Designer in favor of BPEL. This means that the design center will be the BPEL process and to this end the tool will make use of as little or as much of the BPMN technology as is reasonable. The Orchestration Designer will be true to the spirit of BPMN but not the letter of BPMN. The tool will use the BPMN shapes but the properties for each element will more directly reflect the BPEL source code than the BPMN element properties. This strategy has the advantage of allowing developers to more transparantly and intuitively understand the relationhip between the process diagram and the BPEL source. It also makes the job of reverse engineering from BPEL to BPMN much, much easier and acheivable.
2. High Level Use Cases
This section will list all the high level use cases that relate to
Orchestration Designer functionality for JSE.
||Designer should support the
visual authoring of BPEL files in a forward engineering fashion.
Forward engineering is where a developer works on a "visual business
process diagram" and the Designer generates the corresponding BPEL
||Customers need to be able to
author BPEL files without having to read or write the actual BPEL XML
|Orchestration Designer||Designer should support the
visual authoring of BPEL files in a reverse engineering fashion.
Reverse engineering is where a developer imports an arbitrary BPEL file
and the Orchestration Designer generates a corresponding "diagram". The
developer is then free to forward engineer modifications to the BPEL.
|Orchestration Designer||Designer should support
deployment of BPEL artifacts to BPEL server(s)
Initially, automation of deployment may be restricted to the co-bundled Fivesight PXE BPEL server since there is no standard BPEL deployment across BPEL server vendors.
|Orchestration Designer||Designer should support
importation of arbitrary WSDL files in an easy to use fashion to
expedite the creation of BPEL where the WSDL files correspond to
"partners" of the BPEL process
|Orchestration Designer||Designer should support
interactive debugging of deployed BPEL processes.
Initially, interactive debug may be restricted to the cobundled Fivesight PXE BPEL server since there is no standard BPEL debugging API across BPEL server vendors.
Designer should provide a robust sample data and process test
drive environment for the BPEL process under development.
2.1. Requirement Assumptions
- In the absence of a BPEL4WS endorsed notation, the only significant specification for business process notation is BPMN. And since BPMN is specifically targeted at being mappable to BPEL, this is a reasonable choice for the Orchestration Designer tool to use BPMN as its notation of choice. The alternative is for the Orchestration Designer to expose a proprietary BPEL notation of our own design. A proprietary notation is less appealing for many reasons.
- The correspondence between the BPMN specification and the BPEL execution language is less than perfect, particularly as regards reverse engineering BPEL to BPMN. For this reason the orchestration designer will limit its usage of BPMN and compliance with the BPMN specification to that which is practical and expedient. The Orchestration Designer wil employ a heavy bias toward BPEL process design. Rapid development of BPEL is the goal, BPMN is merely a means to get there.The assumption here is that the BPEL bias will provide a more consistent and productive full cycle development environment for our targeted customers. A companion assumption is that, while not strict BPMN, the diagrams will be readily intelligible to anyone familiar with BPMN.
- This specification will be a living document. The first draft will be light on pictorial details of the actual tool. As these details are filled in, this document will be adjusted to reflect those designs. Eventually, all images and descriptions will be precise for the JSE version.
- The persisted process file (.bpel) will be the primary design artifact. Diagram layout metadata will be either embedded in the .bpel file via the BPEL extension mechanism or kept in a companion side file.
- In theory each BPEL file can be deployed and run on any BPEL Server. This functional specification will concentrate primarily on those features of JSE which will support the design time authoring of BPEL processes. While the primary BPEL artifacts developed in JSE will be portable to any BPEL server, the JSE interactive BPEL debugging support described in this functional specification will be limited to those BPEL processes which are deployed to the co-bundled Fivesight PXE BPEL Server.