architecture - dl3ebb/OpenIot GitHub Wiki

Architecture

The following image illustrates the architecture of an OpenIot application :

OpenIot - Architcture

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.

<< Back to Getting Started