## 5 State of the Art
### Middleware Platforms for Distributed Computing Systems
The Justice uses deadline information of a job and historical job execution times to improve deadline satisfaction and fairness. A design of a distributed resource allocator for a multi-cloudlet environment is discussed in [34]. The allocator can offload jobs to remote cloud or cloudlets. It is adaptive to the dynamic environment, preserves fairness, and aims to satisfy the requirements of deadlines-oriented applications. It uses job execution times history, local and remote cloudlets utilization information to decide whether the application should run on the current cloudlet, a neighbor cloudlet, or a remote cloud. An online statistical model is used to estimate the resources required to complete a job. Authors of [35; 36; 37] have investigated the problem of offloading tasks from cloudlets to a remote cloud. The scheme in [37] aims to optimize offloading decisions whereas the scheme in [38] focuses on user fairness. The scheme in [35] aims to decrease execution latency and energy consumption in a multi-cloudlet environment. A feature-wise comparison of the most relevant resource allocation and offloading schemes is shown in Table 2.  
Middlewares for the cloud of things are surveyed in [39]. Authors have (a) discussed numerous features and characteristics of middlewares such as interoperability, context management, and reusability, (b) compared middlewares based on architectures such as distributed, component-based, and service-based, and (c) have discussed numerous challenges and research directions. The survey focuses on high-level features and characteristics. A detailed discussion of resource management algorithms and network management protocols has not been included. A cluster consisting of more than three hundred Raspberry PIs is developed in [40]. Authors in [41] implemented container and cluster technology on single-board computers such as Raspberry PIs. A container-based cluster architecture is proposed. The key elements of the architecture are devices, containers, links, and services. A cluster consists of several devices. Each device hosts containers and each container include services. Containers communicate with one another via links. Numerous edge and fog computing architectures and offloading strategies in fog environments are investigated in [42]. Fog computing systems for augmented reality applications are studied in [43]. Authors have investigated several multilayer edge and fog computing architectures, energy optimization, and latency optimization techniques, and offloading approaches. Several approaches described in the study encode regions of interest or transmit compressed data to reduce communication latency. An edge computing-based IoT architecture that uses Microservices and container technology is proposed in [44]. The edge computing layer of the architecture is coupled with AI hardware to meet the requirements of artificial intelligence IoT applications. The architecture consists of an application layer, network layer, perception layer, and newly proposed AI accelerated Microservices layer, which preprocesses the data and provides real-time response to the perception layer. In [45; 46; 47] an approach was proposed to offload augmented reality application tasks to edge computing systems such as cloudlets. A scheme in [45] also supports offloading of application tasks to an ad hoc cloudlet system which consists of mobile phones and laptops connected via a local area network. A scheme in [47] uses a three-layer architecture to reduce processing delays and energy consumption of mobile augmented reality applications. The architecture consists of the user layer, edge layer, and cloud layer. The edge layer includes three modules: communication, operation platform, and virtualized controller. The communication module provides data transmission services and the operation platform process the offloaded tasks. Virtualized controllers manage network activities, allocate resources to application tasks, and provide storage services.