# Simulating Fog and Edge Computing Scenarios: An Overview and Research Challenges
## 1 Introduction  
It is commonly accepted that society is on the brink of what is termed the fourth industrial revolution (4 IR), whereby cyber-physical systems will disrupt and transform entire industries and associated systems of production, management, and governance [1]. [PERSON] [1] posits that this revolution differs from the previous three revolutions because it is not based on breakthroughs in technology but rather communication and connectivity. At its core, 4 IR is not a new concept and is couched in the concept of a networked society whose social structures and activities, to a greater or lesser extent, are organised around digital information networks that connect people, processes, things, data and networks [2, 3]. As such, 4 IR, Industry 4.0, and the Internet of Things (IoT) are often discussed in juxtaposition. 4 IR is disruptive because it has the potential to radically redefine industrial performance trajectories and how, who, and where value is created, delivered and captured. Current exuberance about 4 IR, Industry 4.0 and IoT is driven by both the advances and widespread adoption of several underlying technologies namely cloud computing, ubiquitous sensing, and mobile technologies, connected across a cloud-to-things (C2T) continuum. In conventional cloud computing, processing and storage typically takes place within the boundaries of a cloud and its underlying infrastructure. It is not designed to cater for the scale of geographically dispersed, heterogeneous end points andlow latency required for many 4 IR, Industry 4.0 and IoT use cases. As such, conventional paradigms of computing need to be rethought to cater for the scale of data processing and storage needed to support the requirements of 4 IR, Industry 4.0 and IoT to function in a distributed, coordinated way at minimum latency [4]. Fog and edge computing are two relatively new paradigms of computing that have been proposed to address these challenges. NIST [4] recently defined fog computing as:  
_... a horizontal, physical or virtual resource paradigm that resides between smart end-devices and traditional cloud or data centers. This paradigm supports vertically-isolated, latency-sensitive applications by providing ubiquitous, scalable, layered, federated, and distributed computing, storage, and network connectivity._  
Edge computing, in contrast, is local computing at the network layer encompassing the smart end-devices and their users [4]. As such, edge computing in its narrow definition excludes both fog and cloud computing [5], as shown in Figure 1. Fog and edge computing provides significant advantages for processing data closer to the source and thus mitigate latency issues, lower costs of data transmission, and reduce network congestion [6; 7]. Fog and edge computing provide new and significant architecture design challenges for all of those involved in the 4 IR/IoT chain of service provision. Fog and edge computing use cases vary by the extent and degree of (i) contextual location awareness and low latency, (ii) geographic distribution, (iii) scale and coordination of end-point networks, (iv) heterogeneity, interoperability and functionality of end points, (v) real-time vs batch processing, (vi) mobility of end points, and (vii) interplay between the edge, the fog and the cloud layers [4]. These factors determine the extent to which quality of service levels can be met, performance bottlenecks avoided, energy consumption optimised, under-use reduced, and costs managed efficiently and effectively [9]. However, the complexity and scale of these use cases are orders of magnitude greater than conventional enterprise and cloud computing scenarios. Successful deployment of 4 IR/IoT use cases requires optimal placement of computation and storage along the C2T continuum on a case by case basis and new approaches to test resource placement and management strategies at scale. Figure 1: Cloud, fog and edge domains (based on [PERSON] et al. [8]).