Software:EdgeX Foundry

From HandWiki
EdgeX Foundry
EdgeX logo.png
Initial release2 October 2017; 6 years ago (2017-10-02) [1]
Written inC, Go
Operating systemLinux, macOS, Windows, and other *nix flavors
TypeEdge computing platform, IIoT
LicenseApache 2.0[2]
Websitewww.edgexfoundry.org

EdgeX Foundry is a vendor-neutral open-source platform hosted by the Linux Foundation, providing a common framework for industrial IoT edge computing. At the core there is a set of loosely coupled microservices organized in different layers.

Features

The goal of the project is the simplification and standardization of edge computing architectures applicable in industrial IoT scenarios, where a heterogeneous set of devices, sensors, actuators and other IoT objects (the so-called South Side) produce data that should be computed, and eventually analyzed, stored or aggregated on the fog and up to the cloud (the so-called North Side). The framework is structured in different layers, each one composed of multiple micro services. The modular architecture allows users to easily scale, update and distribute the logic into different systems, improving maintainability.[3]

  • Export services allows external (on-gateway or off-gateway) services to register within EdgeX as recipients for the data coming from the core. This layer contains services for registering recipients and processing data to be distributed to clients using different protocols, communicating directly with northbound infrastructure. In cases where the edge platform must operate independently, without contacting the north side, this layer can be avoided.
  • Supporting services contains services related to the communications of events and logging. In particular, a Rules Engine implements an event triggering mechanism based on user-defined rules applied on core data. The Notification & Alerts microservice dispatches event-related messages within or without the current systems as well as urgent alerts that need to be handled. The Logging service contains system log for each service, allowing administrators to monitor the behaviour of each components and their interactions. Finally the Scheduling service is used to plan the execution of tasks for cleaning stored data that has been already processed and transferred.
  • Core services is the central part of the framework, containing services for storing data coming from devices, and applying actions to them. Core data and Metadata functionalities process and store respectively data coming from southbound entities, and metadata about sensors, actuators and the types of data they are producing. The Command and Control module will take care of issuing commands and actions to other services, to applications within the same system or to external applications.
  • Devices services is made up of all services providing connections to southbound devices, ranging from sensors, actuators to home appliances, alarm systems and industrial machines. A backend for many different industry protocols is provided, while new backends can be included by using the provided SDK.

While core services are required for the whole platform to work, as they are unchangeable, services in other layers may be inserted or replaced in a plug and play fashion. EdgeX Foundry provides also two additional layers, focused on system administration and security.

  • Security layer contains services for secret storage (passwords, access keys, certificates) and an API gateway acting as a secure proxy to all other internal services through authentication.
  • System management layer provides tools for managing microservices, visualize statistics about them to monitor the state of the system and get configurations for each components.

File:An Introduction to EdgeX Foundry - Jeroen Mackenbach, Dell Technologies; with sound.webm

Deployment

EdgeX Foundry is compatible with Windows, macOS and Linux systems.[4] However developers provide docker containers to ship pre-built and ready to go images of each component. Repositories provide a collection of docker-compose files that can be used to easily setup the entire platform by selecting the release version to target.[5]

External links

References