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 edge 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 applications suitable for the fog. In response to these challenges, we propose the FDK: A Fog Development Kit for software-defined edge-fog systems. By providing high-level interfaces for allocating computing and networking resources, the FDK abstracts the complexities of fog computing from developers and enables rapid development of edge-fog systems. Also, the FDK supports the utilization of virtualized devices to create a highly realistic emulation environment, allowing fog application prototypes to be built with zero additional costs and enabling portability to a physical infrastructure. We evaluate the resource allocation performance of the FDK using a testbed, including eight edge devices, four fog nodes, and five OpenFlow switches. Our evaluations show that the delay of resource allocation and deallocation is less than 279ms and 256ms for 95 of edge-fog transactions, respectively. Besides, we demonstrate that resource allocations are appropriately enforced and guaranteed, even amidst extreme network congestion.
CloudSim @cite_31 is perhaps the most popular cloud simulation platform available, which is used for modeling the cloud and application provisioning environments. It is a discrete, event-based simulator written in Java, meaning that it does not actually emulate network entities such as routers and switches. Instead, CloudSim uses a latency matrix which contains predefined values for the latency between entities in a virtual network. Additionally, CloudSim can model dynamic user workloads by exposing a set of methods and variables for VM-level resource requirements, and is an all-around tool for simulating and testing new cloud systems.
@cite_31
2045287414
Cloud computing is a recent advancement wherein IT infrastructure and applications are provided as ‘services’ to end-users under a usage-based payment model. It can leverage virtualized services even on the fly based on requirements (workload patterns and QoS) varying with time. The application services hosted under Cloud computing model have complex provisioning, composition, configuration, and deployment requirements. Evaluating the performance of Cloud provisioning policies, application workload models, and resources performance models in a repeatable manner under varying system and user configurations and requirements is difficult to achieve. To overcome this challenge, we propose CloudSim: an extensible simulation toolkit that enables modeling and simulation of Cloud computing systems and application provisioning environments. The CloudSim toolkit supports both system and behavior modeling of Cloud system components such as data centers, virtual machines (VMs) and resource provisioning policies. It implements generic application provisioning techniques that can be extended with ease and limited effort. Currently, it supports modeling and simulation of Cloud computing environments consisting of both single and inter-networked clouds (federation of clouds). Moreover, it exposes custom interfaces for implementing policies and provisioning techniques for allocation of VMs under inter-networked Cloud computing scenarios. Several researchers from organizations, such as HP Labs in U.S.A., are using CloudSim in their investigation on Cloud resource provisioning and energy-efficient management of data center resources. The usefulness of CloudSim is demonstrated by a case study involving dynamic provisioning of application services in the hybrid federated clouds environment. The result of this case study proves that the federated Cloud computing model significantly improves the application QoS requirements under fluctuating resource and service demand patterns. Copyright © 2010 John Wiley & Sons, Ltd.