architecture - dl3ebb/OpenIot GitHub Wiki
Architecture
The following image illustrates the architecture of an OpenIot application :
It consists of several building blocks:
The OpenIot Core
The OpenIot Core primarily includes an Event Manager and registrations for Modules, Connectors, and Webpages. The Event Manager serves as the backbone of the system. A module can define events, trigger them, or listen for events from other modules. This decoupling ensures the modules remain independent and makes the system easier to maintain.
Modules
Modules extend the functionality of the core. For example, Wi-Fi is a common extension an application might require.
Connectors
Connectors link Elements (the building blocks of applications—see below) to the outside world. Their purpose is to convert external inputs into internal events. For instance, toggling a digital input triggers a "NewBoolValueEvent" that other application components can subscribe to.
Currently, Connectors exist for MQTT, REST, digital input/output, and a web user interface.
Application
The application contains the user’s logic. It defines Elements and Events, which communicate with each other to implement the desired functionality.