Extending cloud computing to edge devices gets easier with OpenEdge
OpenEdge is the framework you need if you are looking for a simple way to extend your cloud computing applications, data, and service to edge devices. Here, we take a closer look at what OpenEdge brings to the ecosystem and highlight some of its most interesting features.
If you are looking for ways to extend your cloud computing applications, data, and service to edge devices, OpenEdge is the framework you need.
OpenEdge’s architecture is based on modularization and containerization design and the main concept behind it is the modular design pattern that splits the product to multiple modules in order to make sure each one of them is a separate, independent module.
Without further ado, let’s dig in and have a closer look at this tool.
To start things off, let’s see what OpenEdge is made of.
OpenEdge consists of five separate modules:
Main program module – Used to manage all modules’ behavior, such as start, stop, etc. And it is composed of module engine, API and cloud agent.
- Module engine controls the behavior of all modules, such as start, stop, restart, listen, etc, and currently supports docker container mode and native process mode.
- Cloud agent is responsible for the communication with Cloud Management Suite of BIE and supports MQTT and HTTPS protocols. In addition, if you use MQTT protocol for communication, must take a two-way authentication of SSL/TLS, otherwise, you must take a one-way authentication of SSL/TLS due to HTTPS protocol.
- The main program exposes a set of HTTP API, which currently supports start, stop and restart module, also can get free port.
Local hub module – Based on MQTT protocol, which supports four connect modes, including TCP、SSL(TCP+SSL)、WS(Websocket) and WSS(Websocket+SSL).
Local function module – Provides a highly flexible and power due to MQTT protocol. Functions are executed by one or more instances, each of them is a separate process. GRPC Server is used to run a function instance.
MQTT remote module – Supports MQTT protocol, can be used to synchronize messages with a remote hub. In fact, there are two MQTT Server Bridge modules which are used to subscribe to messages from one server and forward them to the other.
Python2.7 runtime module – An implementation of local function module so developers can write Python script to handler messages, such as filter, exchange, forward, etc.
Moving on to OpenEdge’s main features, we could highlight the following:
- support module management, include start, stop, restart, listen and upgrade
- support two modes: docker container mode and native process mode
- docker container mode support resources isolation and restriction
- support cloud management suite, which can be used to report device hardware information and deploy configuration
- provide local hub module, which supports MQTT v3.1.1 protocol, qos 0 or 1, SSL/TLS authentication
- provide local function module, which supports function instance scaling, Python2.7 runtime and customize runtime
- provide MQTT remote module, which supports MQTT v3.1.1 protocol
- provide module SDK(Golang), which can be used to develop customized modules
If you are interested in a more detailed overview of the features, the advantages of using OpenEdge and examples, head over to the GitHub repo. For the Chinese speakers, there also a website available only in Chinese.
For running OpenEdge in docker container mode, in native process mode, or building OpenEdge from source, make sure to check out the ‘getting started’ guide to find out all the requirements and specifications.