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 edge data 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 edge 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 edge 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's open edge software platform is configured in a given deployment.
Available Core Services:
Core Data - Centralized database for edge 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 Foundry through the REST APIs.
App Services are the means to extract, process/transform, and send sensed edge data from EdgeX Foundry to an endpoint or application of your choice. This could be an edge data 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 Foundry 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 Foundry 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 Foundry 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 microservice.
System Management facilities provide the central point of contact for external management systems to start/stop/restart EdgeX Foundry 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 Foundry service). It communicates with the EdgeX microservices 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 Foundry 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.