Open Source
The ActiveBPEL Engine
The ActiveBPEL Engine is an open source implementation of a BPEL 1.1 engine, written in Java.
The ActiveBPEL Engine runs in any standard servlet container such as Apache Tomcat.
The ActiveBPEL Engine does not contain a visual designer that allows you to easily and quickly create BPEL orchestrations. It only supports the execution of previously-coded BPEL 1.1 processes.
The ActiveBPEL Engine is available for download here.
The ActiveBPEL Engine is made available under the GNU General Public License (GPL).
More about BPEL
BPEL is an XML language for describing business process behavior based on Web services. The BPEL notation includes flow control, variables, concurrent execution, input and output, transaction scoping/compensation and error handling.
A BPEL process describes a business process. Processes often invoke Web services to perform functional tasks. A process can be either abstract or executable. Abstract processes are similar to library APIs; they describe what the process can do and its inputs and outputs but do not describe how anything gets done. Abstract processes are useful for describing a business process to another party that wants to use the process. Executable processes do the "heavy lifting" -- they contain all of the execution steps that represent a cohesive unit of work.
A process consists of activities connected by links. (A process sometimes only contains one activity but that is usually a container for more activities.) The path taken through the activities and their links is determined by many things, including the values of variables and the evaluation of expressions.
The starting points are called start activities; their create Instance attributes are set to "yes." When a start activity is triggered, a new business process instance is created. From then on, the instance is identified by data called correlation sets. These data uniquely identify a process, but they may change over time. For example, the correlation set for a process may begin as a purchase order number retrieved from a customer order. Later, when an invoice is generated, the correlation set may be the invoice number.
BPEL is layered on top of other Web technologies such as WSDL 1.1, XML Schema 1.0, XPath 1.0 and WS Addressing. Leveraging the BPEL standard are the BPEL4People and WS-HumanTask specifications, which enable human interactions and a model of human interactions that are service-enabled.
A Web search for "BPEL" and "BPEL4People" will return a number of useful resources, including the specification document and numerous articles.
BPEL Files
A BPEL XML file describes a business process, but it does not normally stand alone. BPEL processes may refer to Web services, which are described by WSDL files. They may refer to partners, described by partner files which in turn reference WSDL files that describe the partner link types.
WSDL files describe the structure of messages (data containers), operations (method calls), and port types (operations and input, output, and error messages). WSDL files also bind port types to particular protocols such as SOAP. Finally, these bindings are tied to specific URIs that offer the Web service.

