Requirements Specification

  1. Introduction
  2. Actual State
  3. Purpose
  4. Functional Requirements
  5. Non-Functional Requirements
  6. User Interface

Introduction

bexee (BPEL Execution Engine) is an open source Java engine for deploying, processing and executing business flows described in the Business Process Execution Language (BPEL). The main purpose of BPEL is to define a standard way to describe business processes. Concretely BPEL is used to orchestrate distinct Web Services into business processes. While the orchestrated Web Services need not know anything about each other in order to be parts of a higher level business process, it's a BPEL engine that runs a Business Process composed of those different services.

Actual state

Thanks to the widely accepted Web Service standard, business services can be exposed for use in the web using Web Service technologies. The exposition of services is an important step for the creation of virtual business processes. Although those services may be made available for use (using the mentioned Web Services technologies), there is no standard way to compose Business Processes based on the available services. In spite of several attempts to establish an accepted standard for the composition or the orchestration of services, none of the proposals prevailed [ WSFL , XLANG , BPML , BPMI ].

Purpose

The intention of bexee is to provide a prototype of an engine able to interpret and execute business processes described with BPEL. While there exist a number of commercial BPEL engines, the bexee project is meant as a starting point for further development and experiments in the area of Business Process Modeling (BPM). bexee will also be used as a platform for the evaluation of technologies that might be used for a complete implementation of a BPEL engine. In other words, bexee is to provide a solid base and a set of throughout evaluated tools for a complete implementation of a robust and extensible BPEL engine.

Functional Requirements

See the Use Cases document.

Non-Functional Requirements

The main purpose of the bexee system is to provide a partial implementation of a BPEL engine. Although it should be easily possible to finalize this partial implementation in order to provide a complete BPEL engine, the main goal of bexee (in the scope of the diploma project) is to provide the core functionality of such an engine. Therefore, non-functional requirements as:

  • security
  • performance
  • availability
  • etc.
will not play a major role in case of the bexee system.

Info! The bexee system will be implemented as a J2EE EJB application. Because the main idea of the J2EE model is to provide an environment where it is possible for the application developers to concentrate on business logic and leave the technical aspects to the Application Server, taking care of the non-functional requirements will depend on the configuration of the used Application Server. It will not be necessary to modify the bexee system in order to enable its non-functional aspects.

User Interface

bexee Business Process users

The bexee system must provide a user interface for the bexee users. This interface will enable bexee users to use the system as described in the Use Cases section.

bexee Business Process deployers

The bexee system must provide a user interface for the bexee deployers. In case of this system interface it is important, that the deployers may choose their preferred technology for the interface. The system need not to provide a multitude of interfaces using different technologies, but a standardized interface, which would act as an intermediary for human-usable interfaces.

This interface will enable bexee deployers to use the system as described in the Use Cases section.

bexee Business Process administrators

The bexee system must provide a user interface for the bexee process administrators. In case of this system interface it is important, that the process administrators may choose their preferred technology for the interface. The system need not to provide a multitude of interfaces using different technologies, but a standardized interface, which would act as an intermediary for human-usable interfaces.

This interface will enable bexee deployers to use the system as described in the Use Cases section.

bexee administrators

The bexee system must provide a user interface for the bexee administrators. This interface will enable bexee administrators to use the system as described in the Use Cases section.