# S.O.V.O.R.A.: A Distributed Wireless Operating System
## 2 Wireless Distributed Systems
### Distributed Architectures
#### 2.2.2 Fog Computing  
It is possible to deploy an architecture with heterogeneous devices and to extend the characteristics of the cloud to edge devices, avoiding the network bottlenecks. Since the edge devices consume data that can provide elastic computing, they can be connected ubiquitously and share their resources, in many cases collaboratively, achieving the primary purpose of fog computing [15]. Fog computing is the relationship between edge devices and network core (cloud) [16; 17; 18]. Fog computing resources are the same for all nodes (networking, computing, and storage), and in most cases, share the same logical abstractions of virtualization and multi-tenancy. Fog computing is typicallyused for low latency and geo-distributed applications (e.g., sensor networks and surveillance systems). Additionally, they are used in large-scale distributed control systems as smart grids, smart buildings and smart farming. Inside the fog environment, tenants perceive the resources as dedicated. This is the result of sharing resources, using virtualized file systems and a network infrastructure (e.g., Software Defined Networks (SDN)) [19]. In Reference [20], the author proposes a set of features to deploy services and an application within a fog environment, including node configuration, nodal collaboration, resource/service provisioning metrics, service level objectives, applicable networking system, and security. The fog computing is possible to implement and design with the addition of MANET features as the duality node/router on each node, without infrastructure to exploit the computing resources on the fog environment and scale the scope to cloud computing. In References [21; 22], some architecture is proposed to deploy services and share resources. The main objective is to optimize the Quality of Service (QoS) of heterogeneous resource attributes and applications known as a fog colony similar to an ad hoc cluster. In Reference [23], the infrastructure as a service approach is introduced for fog and cloud computing. The authors proposed a resource pool manager to detect and resolve deadlock and manage resources within the fog environment, and to achieve this objective, they employed a so-called free space fog resources. In this case, our model is oriented to probe the feasibility to use a fog computing or Ad Hoc Network as a cluster of resources on the paradigm of the mobile cloud. In Reference [24], another model was proposed that employs three tiers: the first, Things tier that manages wireless sensors, actuator networks, and mobile devices. These devices send information to the Fog (second tier), which includes the fog nodes (switches and routers) that link the system to the Cloud (third tier). This approach implies more computation for complex applications that cannot be executed by a fog node alone. The authors present an algorithm called unit-slot optimization, based on [PERSON]'s optimization technique to balance the average response time, average cost, and average number of application loss (three-way trade-off). These prototype sets are based on cloud computing and edge network devices to reduce latency and improve the resources time consumption. The control is reduced and system changes are limited; however, they can be managed by each cloud's control systems and edge devices. Our approach is a prototype based on this kind of architecture in order to validate the feasibility of management and to create virtual operative systems as Wireless Distributed Computing. In some cases, the most interesting element in a fog computing architecture is the orchestrator [25]. The orchestrator is a useful abstraction to manage and control distributed systems. It observes, decides, and acts, through policies defined by the system administrator, an artificial agent, or some script.