Table of Contents
Fetching ...

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.

The Fog Development Kit: A Development Platform for SDN-based Edge-Fog Systems

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 -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.

Paper Structure

This paper contains 22 sections, 14 figures, 3 tables, 1 algorithm.

Figures (14)

  • Figure 1: Overall system architecture.
  • Figure 2: Enforcing bandwidth reservation using rate-limited queues. For each path reservation, rate-limited packet queues are created and attached to QoS configurations located on the egress ports towards the fog-device as well as those towards the end-device. Then, flow table entries are pushed via OpenFlow to enqueue traffic traveling from the end-device to the fog-device, and vice versa, on these queues.
  • Figure 3: The physical testbed used to implement the topology depicted in Figure \ref{['topology']}. End-devices, switches, and fog-devices are connected through physical links.
  • Figure 4: The network topology used for the development and testing of the FDK. $C_i$ represents a container running on a fog-device.
  • Figure 5: Overall bandwidth of the data received by fog-devices corresponding to the images captured and sent by end-devices via detection-app. Blue (solid) and red (dashed) bars denote service requests and shutdown requests made by end-devices, respectively. Bars which are less transparent indicate a greater amount of service or shutdown requests made during a particular second. This figure shows the dynamics of allocating and deallocating resources by the FDK when end-devices randomly issue service and shutdown requests.
  • ...and 9 more figures