The Fog Development Kit: A Development Platform for SDN-based Edge-Fog Systems
Colton Powell, Christopher Desiniotis, Behnam Dezfouli
TL;DR
The Fog Development Kit (FDK) addresses the lack of a standard development platform for SDN-based edge-fog systems by unifying computation and networking resource allocation under a central controller and enabling emulation and portability between virtual and physical deployments. It integrates OpenDaylight and OpenFlow/OVSDB to provision containerized fog services with guaranteed bandwidth along reserved paths, and exposes an application-independent messaging protocol for end-devices to request resources. The architecture comprises TopologyManager, FlowManager, and ResourceManager, with a Resource Allocation Algorithm (RAA) that uses a modified Dijkstra search and a $k$-ary heap to optimize path selection under bandwidth constraints; performance is validated on a physical testbed and via OMNeT++ simulations, showing low latency for provisioning and robust bandwidth guarantees under congestion. The work demonstrates a practical, scalable platform that reduces development costs and accelerates fog application prototyping, enabling seamless porting to production networks and supporting complex edge workflows.
Abstract
With the rise of the Internet of Things (IoT), fog computing has emerged to help traditional cloud computing in meeting scalability demands. Fog computing makes it possible to fulfill real-time requirements of applications by bringing more processing, storage, and control power geographically closer to end-devices. However, since fog computing is a relatively new field, there is no standard platform for research and development in a realistic environment, and this dramatically inhibits innovation and development of fog-based applications. In response to these challenges, we propose the Fog Development Kit (FDK). By providing high-level interfaces for allocating computing and networking resources, the FDK abstracts the complexities of fog computing from developers and enables the rapid development of fog systems. In addition to supporting application development on a physical deployment, the FDK supports the use of emulation tools (e.g., GNS3 and Mininet) to create realistic environments, allowing fog application prototypes to be built with zero additional costs and enabling seamless portability to a physical infrastructure. Using a physical testbed and various kinds of applications running on it, we verify the operation and study the performance of the FDK. Specifically, we demonstrate that resource allocations are appropriately enforced and guaranteed, even amidst extreme network congestion. We also present simulation-based scalability analysis of the FDK versus the number of switches, the number of end-devices, and the number of fog-devices.
