Architecture
CloudPlugs IoT uses a flexible and powerful edge to fog to cloud computing architecture.
At the core of the cloud service, CloudPlugs IoT uses a high-performance, event-driven, secure, polyglot message broker that provides scalable connectivity and protocol transcoding services. Devices can communicate with each other through the cloud message broker, independent of the protocol they use to talk to the message bus. For example, a device speaking MQTT, can transparently communicate with a device speaking REST, WebSockets or PlugNet™.
The digital-twins of edge devices are implemented through Production Things. A Production Thing may be an individual device or a Gateway. The digital-twins of individual devices are implemented and communicate with the platform using:
- A SmartPlug™ IoT agent installed on a Linux based control board of the device.
- A Connectivity library for REST, WebSockets or MQTT installed alongside the firmware of the device. Typically used for low powered devices or control boards that do not run Linux. The libraries may also be used to connect mobile phones to CloudPlugs IoT.
- A PicoPlug™ agent installed on an ESP8266 control board of a device.
- An Edge One™ platform installed on a Linux-based control board of the device. The Edge One™ platform’s underlying SmartPlug™ agent is used for device management and theEdge One’s Message Router is used to send data to CloudPlugs IoT.
The digital-twins of more complex machines, buildings, etc. are implemented through gateways using the Edge One™ platform.
External applications such as web or mobile dashboards that connect to, exchange data with, or manage Production Things (individual devices and gateways) through CloudPlugs IoT are called Controller devices. A controller could be a mobile app, a web application or any HMI (Human Machine Interface) application. Controllers may have Read-Only, or Read/Write permissions on Production Things. Read-Only permissions allow controllers to read the properties of a Thing. Read/Write permissions allow Controllers to modify the properties of a Thing as well as to impersonate the Thing.
Production Things and Controller devices and external applications and services exchange messages through dynamic, hierarchical topics or channels using publish and subscribe methods. Production Things, Controllers and applications subscribe to channels to publish information and to read or issue control commands. Published data may be formatted as structured or unstructured JSON objects providing maximum flexibility. Devices and applications can subscribe and publish to one or more channels. Access Control Lists (ACLs) are used to determine the level of permissions (None, Read-Only, Read-Write) that devices have over the data or metadata and properties of other devices.
In addition, to the message bus, the CloudPlugs IoT enterprise grade cloud backend offers the following functionality and services:
- A Time series No-SQL Database that stores all the device data and metadata.
- Storage Engines such as:
i) a Data Ingestion engine implemented by the high performance message broker; ii) a Data Retention Engine that allows the configuration of a time-to-live (ttl) paremeter in published data, and which automatically deletes data when it expires;
- A Rules Engine to program triggers and alarm and workflows based on device data or events.
- A Geo-location engine to track mobile devices.
- Application Lifecycle Management tools that allow cloud based development, deployment, management and updating of both device and controller applications.
- Device Lifecycle Management tools that allow cloud based creation, provisioning, management and updating of your device digital twins.
- Data lifecycle management through the Storage Engines.
- API’s, connectors and gateways to allow programmatic access to all the platform’s functionality as well as integration with 3rd party applications.
Business and Operations Support systems and applications interact with the platform using the API’s to read or write data from/to devices through CloudPlugs IoT channels as well.