Overview
This article provides an overview of the ACME CSE's architecture, components, and database schemas.
Components
The ACME CSE is divided into several components. The following diagram shows the components and their relationships.
Resource Class Hierarchy
The CSE's resources are implemented as classes. The following diagram shows the class hierarchy of the resources.
Database Schemas
If the tinyDB database mode is used the database files are stored in the data
sub-directory of the CSE's working directory.
The database used by the CSE is TinyDB which uses plain JSON files for storing the data. Some files only contain a single data table while other contain multiple tables.
The filenames include the CSE-ID of the running CSE, so if multiple CSEs are running and are using the same data directory then they won't interfere with each other. The database files are copied to a backup directory at CSE startup.
Some database tables duplicate attributes from actual resources, e.g. in the subscription database. This is mainly done for optimization reasons in order to prevent a retrieval and instantiation of a full resource when only a few attributes are needed.