The layers and services of EdgeX Foundry provide a two-way transformation engine between edge devices/nodes and cloud/enterprise applications.
EdgeX translates and transforms the information coming from sensors and devices and delivers it to applications over network-based protocols in formats and structures that meet the needs of customers. It also takes data from applications and delivers it to the edge nodes/devices for updates, control and actuation. In this section you will find the main services available for the EdgeX loosely couple microservices architecture.
Device Services are the edge connectors interacting with sensors/devices or IoT objects (“things”) including Machines, Robots, Drones, HVAC Equipment, Cameras etc. Leverage available connectors to control devices and/or to get data from/to EdgeX. You can also use the Device Service SDK to create your own EdgeX Device Service.
This is where most of the knowledge as to what “things” are connected, what data is flowing through, and how EdgeX is configured in a given deployment.
Available Core Services:
Core Data - Centralized database for data readings collected by devices and sensors.
Core Command/Control - Enables commands/actions to devices on behalf of other microservices, applications and external systems
Core Metadata - Used by other services for knowledge about the devices and how to communicate with them
Configuration and Registry - centralizes and simplifies the service configuration data. It uses the open source project, Consul, which provides a Key-Value Store, and clients can access EdgeX through the REST APIs.
App Services are the means to extract, process/transform and send sensed data from EdgeX to an endpoint or application of your choice. This could be an analytics package, enterprise or on-prem application or a cloud system such as Azure IoT Hub, AWS IoT or Google IoT Core.
Available Application Services:
Alerts and Notifications - Delivers the alert/notification to a system or a person, to inform of something discovered on the node by another microservice.
Rules Engine (Kuiper) - EMQ X Kuiper is the EdgeX reference rules engine that allows users to realize fast data processing on the edge and write rules in SQL.
Scheduling Service - Executes operations in any EdgeX service on a configured interval or schedule.
Security elements protect data and control of devices, sensors, and other IoT objects managed by EdgeX Foundry.
There are two major security components:
Security API Gateway -Single point of entry for all EdgeX REST traffic. It acts as the barrier between external clients and EdgeX microservices that prevents unauthorized access to the REST APIs.
Secret Store - Central repository for EdgeX Foundry microservices secrets, such as tokens, passwords, certificates etc. Developers of other EdgeX microservices use the secret store to create, store and retrieve secrets relevant to their corresponding micro service.
System Management facilities provide the central point of contact for external management systems to start/stop/restart EdgeX services, get the configuration for a service, the status/health of a service, or get metrics on the EdgeX services (such as memory usage) so that the EdgeX services can be monitored.
There are two management services:
System Management Agent - the microservice that other systems or services communicate with and make their management requests to ( e.g. start/stop/restart, get the configuration, get the status/health, or get metrics of the EdgeX service). It communicates with the EdgeX micro services or executor (see below) to satisfy the requests.
System Management Executor - The executable that performs the start, stop and restart of the services as well as metrics gathering from the EdgeX services. While EdgeX provides a single reference implementation of the system management executor today (one for Docker environments), there may be many implementations of the executor in the future.