Software architecture

Apromore 7’s architecture follows a classic three-tier design, with a data layer, a business logic layer, and a presentation layer.

The data layer consists of two parts:

  • A database, which maintains all data related to the collaborative workspace, users & groups, process model and event log metadata.

  • A Logs Manager, which persists and manages access to the event logs, including caching.

  • A Models Manager, which persists and manages access to the process models.

The business logic consists of two components:

  • A Workspace Manager, responsible for management of the items in the Apromore workspace (e.g. importing, storing and exporting models and logs, creating folders, renaming models) as well as access control.

  • A set of logic plugins, which implement the operations over process models and event logs supported by Apromore, such as automated discovery of process maps and process models, event log filtering, dashboard generation, event log ingestion, etc. The business logic plugins are divided into process mining plugins (e.g. automated process map discovery), model manipulation plugins (e.g. process model merging and similarity search), and data ingestion plugins. Apromore can ingest data in CSV, XES, and Parquet (the latter in beta mode).

Mirroring the logic layer, the presentation layer consists of a Portal Manager and a set of plugins. The Portal implements the User Interface (UI) of the collaborative workspace, allowing users to navigate through folders and upload/download, manipulate, and open process models and event logs. Whenever a user performs an operation on a process model or event log, such as opening the Process Discoverer, the corresponding portal plugin is invoked. One of portal plugins is dedicated to process model editing (the Model Editor plugin). The remaining ones provide access to the process mining functionality (e.g. the Process Discoverer).


Technology stack

Apromore relies on three core technologies: Spring Framework, ZK and OSGi. Spring provides a simplified management of Java-based enterprise applications through the use of Java annotations and XML configurations. ZK is an AJAX framework used for designing the Portal. OSGi provides a flexible framework for managing component dependencies through the use of plugin bundles.

Each plugin is packaged as an OSGi bundle, whereby each bundle is composed of a set of Java classes, libraries and configuration files, plus explicitly-defined external dependencies on other OSGi bundles. OSGi offers several advantages over other plugin frameworks. First, plugins can be dynamically deployed, without the need to restart the Web server every time a plugin is added or removed. Second, multiple versions of the same plugin can coexist. This in turn does not only guarantee retro-compatibility of plugins, but it also prevents the violation of dependencies when a new version of a plugin is released.

Other technologies used in Apromore include MySQL database, Ehcache for caching and Kryo for on-disk mirroring of the data in-memory data structure for event logs.

Apromore is shipped both as a binary assembly and as containerized Docker images. When shipped as Docker images, the solution consists of two Docker images: one for the MySQL database (obtained directly from Docker Hub), and one for Apromore itself.