Prévia do material em texto
A. Yousefpour, C. Fung and T. Nguyen et al. Journal of Systems Architecture 98 (2019) 289–330 cloud can significantly reduce network traffic. To this end, they propose fog-based face identification and face resolution frameworks. 4.13.7. Artificial intelligence and machine learning [345] presents edge stochastic gradient descent (EdgeSGD), a decen- tralized SGD algorithm for solving linear regression problem with the objective of estimating the feature vector on the edge node. EdgeSGD is used to predict subsurface seismic anomaly via real-time imaging. The edge nodes form a mesh network, and the algorithm obtains the im- age by collaboratively optimizing the objective function over the edge network. The proposed algorithm is entirely decentralized and does not require synchronization. Comparably, an edge-assisted adaptive deep learning framework for mobile object recognition is introduced in [350] . 4.14. Software and tools In this subsection, we describe the software and tools that are devel- oped for fog computing. 4.14.1. Simulation and emulation Gupta et al. focused on implementing resource management tech- niques in fog computing to measure latency and throughput, and implemented iFogSim 5 , a Java-based tool for simulation of fog networks [380] . iFogSim relies on CloudSim, a cloud simulation tool that enables modeling and simulation of cloud systems and application provisioning environments. iFogSim supports cloud-only placement and edge-ward placement to demonstrate the scalability of fog-based applications. An extension 6 of iFogSim to support mobility through migration of VMs be- tween cloudlets is implemented in [385] . Another extension is proposed in [390] to simulate scenarios with strategies aiming to optimize data placement 7 . Similarly, the authors in [388] propose another edge computing sim- ulation environment, EdgeCloudSim 8 , that considers both network and computational resources and covers all aspects of edge computing simu- lation modeling, including network and computational modeling. Simi- lar to iFogSim, EdgeCloudSim relies on CloudSim as well. Additionally, EdgeCloudSim provides a modular architecture to provide support for a variety of critical functionality and supports simulating multi-tier sce- narios where multiple edge servers are running in coordination with upper layer cloud solutions. Nevertheless, compared to simulation, emulation supports both re- peatable and controllable experiments with real applications. The au- thors in [392] propose their software implementation of EmuFog 9 , an extensible emulation framework for fog computing. EmuFog enables the user to design network topologies, embed fog nodes in the topology, and run Docker-based applications on those nodes connected by an emulated network. The modules of EmuFog are easily extensible, although Emu- Fog provides a default implementation for them [392] . Another emula- tion environment for fog computing is FogBed 10 that is based on Mininet and Docker [395] . 4.14.2. Edge computing middleware One of the software implementations for fog is developed by the researchers of the University of Wisconsin, named ParaDrop [383] . ParaDrop is an edge computing platform that runs on WiFi access points to enable edge computing at the extreme edge of the network. Developers can use this edge computing platform to deploy services, which should be based on Docker containers, on the WiFi access points. 5 Available at https://github.com/cloudslab/ifogsim . 6 Available at http://www.lrc.ic.unicamp.br/fogcomputing/ . 7 Available at https://github.com/medislam/iFogSimWithDataPlacement . 8 Available at https://github.com/CagataySonmez/EdgeCloudSim . 9 Available at https://github.com/emufog/emufog . 10 Available at https://github.com/fogbed/fogbed . ParaDrop is available as an open source project 11 , along with the doc- uments and tutorials. ParaDrop has three components: ParaDrop access points, the ParaDrop controller, and the ParaDrop API. Using ParaDrop API, cloud services could be dynamically deployed on access points us- ing the ParaDrop controller, which is a back-end controller that devel- opers interact with to develop their desired services. Analogous to offloading computation and task to either cloud or fog, a group of researchers from Georgia Institute of Technology argue the utility of “onloading ” cloud services to the edge of the network to ad- dress the bandwidth and latency challenges of IoT networks [66] . They view the cyber-foraging (e.g., code/task offloading) research domain as client-based methodology, while their proposed approach is “backend- based ” cyber foraging or onloading. They define onloading specific ser- vices (e.g., caching, or aggregating traffic) near end-users, with a goal of minimizing user-perceived latency. They propose AirBox, a software platform based on containers for fast, scalable and secure onloading of edge services. Bruneo et al. designed Stack4Things 12 , a framework based on Open- Stack IaaS middleware that adopts a cloud-oriented model for IoT re- source provisioning [381] . Their framework allows injected code at runtime through the cloud, which they define as “contextualization. ” Similarly, the authors in [150] revise OpenStack Nova service for com- patibility with fog/edge systems, by leveraging a distributed key/value store instead of the centralized SQL backend 13 . One commercial edge computing platform for IoT gateways is the Everyware Software Framework recently developed by Eurotech 14 . Similarly, EdgeX Foundry 15 is a vendor-neutral open source project building a common open framework for edge computing. UC Berke- ley researchers also implemented a generic and platform-agnostic open source edge computing framework 16 called Open Carrier Interface (OCI) [393] . 4.14.3. Edge-based data analytics Xu et al. proposed edge analytics as a service (EAaaS) to promote a lightweight, scalable, and low-latency service model for IoT devices [382] . The primary motivations for EAaaS are the lack of desired real- time responsiveness, a pricy pay-as-you-go model, and data privacy concerns associated with cloud-centered IoT analytic services. EAaaS provides RESTful interfaces for outside applications, an edge analytics agent on the gateway side, and an edge analytics SDK to allow users to develop methods for integrating with devices. EAaaS is provided as a part of IBM Watson IoT platform on IBM Bluemix Cloud. In their work, the authors plan to provide software upgrade capabilities as part of the existing RESTful services and utilize machine learning for existing an- alytic models. Comparably, SpanEdge 17 provides a programming envi- ronment that allows programmers to specify parts of their applications that need to be close to the data source, without knowledge of the num- ber of data sources and their geographical distributions [355] . 4.14.4. Distributed deep learning Harvard University researchers recently proposed a framework and its software implementation 18 for distributed deep neural networks (DDNN), that can span over cloud, fog, and end devices [344] . The framework map sections of a deep neural network (DNN) onto a dis- tributed computing graph. While the resulting DDNN allows for deep inferences in the cloud, it accommodates fast and localized inference via some shallow layers of the DNN at the edge and end devices. DDNN 11 Available at https://paradrop.org . 12 Available at http://stack4things.unime.it . 13 More information and code available at http://beyondtheclouds.github.io . 14 Available at https://esf.eurotech.com . 15 Available at https://www.edgexfoundry.org . 16 Available at https://github.com/marckoerner/oci . 17 Available at https://github.com/Telolets/StormOnEdge . 18 Available at https://github.com/kunglab/ddnn . 311 https://www.github.com/cloudslab/ifogsim http://www.lrc.ic.unicamp.br/fogcomputing/https://www.github.com/medislam/iFogSimWithDataPlacement https://www.github.com/CagataySonmez/EdgeCloudSim https://www.github.com/emufog/emufog https://www.github.com/fogbed/fogbed https://paradrop.org http://stack4things.unime.it http://beyondtheclouds.github.io https://esf.eurotech.com https://www.edgexfoundry.org https://www.github.com/marckoerner/oci https://www.github.com/Telolets/StormOnEdge https://www.github.com/kunglab/ddnn All one needs to know about fog computing and related edge computing paradigms: A complete survey 4 Taxonomy of fog computing through a complete survey 4.13 Operation: applications 4.13.7 Artificial intelligence and machine learning 4.14 Software and tools 4.14.1 Simulation and emulation 4.14.2 Edge computing middleware 4.14.3 Edge-based data analytics 4.14.4 Distributed deep learning