The AristaFlow Server constitutes the core component of the AristaFlow BPM Suite. It manages the process instances under execution, the process templates from which new instances may be created, the Activity Repository, and the organizational model. Internally, the AristaFlow Server is based on a relational database, whereupon the concretely used RDBMS is exchangeable (on condition that it provides a JDBC interface).
The AristaFlow Server is based on an extensible architecture. Furthermore, from the very beginning, in the design of this architecture aspects like scalability, performance and maintainability have been considered.
Basically, AristaFlow provides a service-oriented architecture (see Fig. 1). When designing it, we have tried to realize provided functionality in a generic way in order to be able to reuse system code whenever possible. For example, the components provided for process modeling, pro¬cess evolution, and ad-hoc changes are more or less based on the same set of change operations. This stimulated us to implement these operations by one se¬parate system component, and to make this component configurable such that it can be reused in different context. Similar considerations have been made for other system com¬ponents (e.g., visualization, logging, versioning, and access control). This design principle does not only reduce code redundancies, but – as a conse¬quence – results in better maintainability, decreased cost of change and reduced error rates for the whole AristaFlow BPM Suite software.
Fig. 1 shows the high-level architecture of the AristaFlow Server. A detailed description of this architecture is given in [Reichert09] .
Fig. 1: Basice Architecture of the AristaFlow Server (BT: Buildtime, RT: Runtime)