Thinkstock
Industrial

EdgeX Foundry Delivers Framework for IoT Edge Computing

March 15, 2018
This vendor-neutral, open-source project is building a common open framework for IoT edge computing.

EdgeX Foundry is a vendor-neutral, open source project from the Linux Foundation that provides a common framework for IoT edge computing. The target is industrial IoT, although it can be applied to other IoT applications such as supporting consumer products. It defines a collection of loosely-coupled microservices that communicate via network (Fig. 1) interfaces in a manner similar to other network frameworks like the Robot Operating System (ROS). This allows services to be collected on a single gateway or distributed across a number of nodes based on application requirements.

Components are designed to work in a plug-and-play fashion. Certification of EdgeX components helps to ensure interoperability and compatibility. The group collaborates other open-source projects, standards groups, and industry alliances to ensure consistency and interoperability across the IoT framework.

1. The EdgeX Foundry framework is a collection of microservices that link devices with application services.

EdgeX components can run on a variety of systems, including Windows; Mac OS; and Ubuntu desktop, server, and core. The components are created using the Eclipse Java Mavin projects and the microservices are written in Java 8. They can take advantage of the MongoDB data base system by default for persistent data. Applications can be written in other languages as well, like Python, C++, and Go.

EdgeX is coming from the cloud down to IoT gateways so much of the architecture and terminology will be more familiar to DevOps than embedded developers. One aspect that highlights this difference is that EdgeX microservices are often delivered in the form of Docker containers. This modular approach allows systems to be configured quickly and to take advantage of tools like docker-compose to pull a system together.

The Eclipse development system can be employed in a hybrid configuration where code developed in Eclipse can call Docker-based EdgeX services. This can simplify application development.

The platform allows sensor and device makes to deliver application level drivers. This allows system integrators to combine services and devices into custom IoT solutions.

The system consists of a set of core services that include registration and configuration support. Other services include support for logging, scheduling, notification, and so on. There is even a rules engine. The device management support is still a work in progress and all areas continue to be improved with new service versions. Developers can use any combination of services in addition to creating new ones.

The communication model allows services to be migrated or split among nodes within the system (Fig. 2). It also allows for creation of services to handle load leveling and system scaling. This flexibility is key to the system’s success as hardware performance continues to provide more integration options.

2. EdgeX services can reside throughout an IoT environment from edge gateways to the cloud.

EdgeX is already being utilized in a variety of products and projects. It is also supported by a range of hardware platforms, such as those available from Cavium and Dell.

About the Author

William G. Wong | Senior Content Director - Electronic Design and Microwaves & RF

I am Editor of Electronic Design focusing on embedded, software, and systems. As Senior Content Director, I also manage Microwaves & RF and I work with a great team of editors to provide engineers, programmers, developers and technical managers with interesting and useful articles and videos on a regular basis. Check out our free newsletters to see the latest content.

You can send press releases for new products for possible coverage on the website. I am also interested in receiving contributed articles for publishing on our website. Use our template and send to me along with a signed release form. 

Check out my blog, AltEmbedded on Electronic Design, as well as his latest articles on this site that are listed below. 

You can visit my social media via these links:

I earned a Bachelor of Electrical Engineering at the Georgia Institute of Technology and a Masters in Computer Science from Rutgers University. I still do a bit of programming using everything from C and C++ to Rust and Ada/SPARK. I do a bit of PHP programming for Drupal websites. I have posted a few Drupal modules.  

I still get a hand on software and electronic hardware. Some of this can be found on our Kit Close-Up video series. You can also see me on many of our TechXchange Talk videos. I am interested in a range of projects from robotics to artificial intelligence. 

Sponsored Recommendations

Comments

To join the conversation, and become an exclusive member of Electronic Design, create an account today!