# Scalable Dew Computing
## 4 Results  
### Scalability  
We define scalability as the ability of an analyzed system to provide sufficient performance even if there is an increase in the workload. Usually, a system scales by multiplying (replicating) the resources or by increasing the performance potential of the existing resources. This defines two basic approaches to achieving scalability:  
* _Vertical scalability_ is realized in an upwards vertical direction, usually by offloading computing requirements to more powerful computing resources in the computing architecture. * _Horizontal scalability_ is achieved by offloading computing requirements to more nearby computing resources. In addition, we can also define a mixed approach as _diagonal scalability_, where both the vertical and horizontal scalability approaches are applied. When these definitions are applied to the edge and dew computing architecture model presented in Figure 1, it is expected that the vertical scalability will be realized in the upwards direction offloading computations to the higher levels, where the resources are more powerful. According to the offloading capabilities, our earlier paper [27] addresses two horizontal offloading methods, which are the basis to define two new possible horizontal scalability implementations for edge and dew computing:  
* _Distributed horizontal scalability_ solution (Figure 2), where offloading for scalability purposes is realized on nearby devices on the same architectural level. * _Centralized horizontal scalability_ solution (Figure 3), where a master device coordinates the offloading among devices on the same architecture level. Distributed horizontal scalability is usually realized on the principles of ad hoc networks. Each device tries to connect to the other device on the same architecture level. In case of a centralized horizontal approach, all devices on the same architectural level share their resource availability to the master device, which can schedule tasks and orchestrate processing to the available devices [27]. The offloading procedure starts by checking if the neighboring device has sufficient energy resources and processing capacity to offload specific tasks, and then transfers the data, starts the computation, and retrieves back the results. Figure 2: Horizontal scalability with distributed approach achieved by offloading to other devices on the same architectural level. Horizontal scalability approaches can be realized on horizontal offloading schemes, such as those for cloud-edge systems analyzed by [PERSON] et al. [15] developing a horizontal scalable balancer, or those by [PERSON] et al. [44], mainly from the aspect of workload and capacity optimization, focusing on service availability and capacity, workload, delay, and cost of applied system, or the approach elaborated by [PERSON] et al. [45] as a two-step task distribution procedure. [PERSON] et al. [46] expanded the traditional cloud offloading model to include an autoscaler component that acts as a load balancer for different computational resources and provides a horizontal offloading scheme. Several case studies include horizontal offloading mechanisms for IoT and post-cloud architectures, such as a traffic management system [47] and vehicle-to-vehicle networks [48]. Two models are proposed: vertical default and vertical (VDV) model and vertical default and horizontal shortest (VDHS) model, as a combination of vertical and horizontal offloading in the mobile edge environment [49]. The new vertical scalability approach for dew computing means to offload computations on a lower architecture level, as presented in Figure 1. In this case, computations are offloaded to a larger number of devices with smaller computation power. Analyzing the architecture model in Figure 1, we conclude that vertical scalability is possible only in case the smart devices and \"things\" (IoT devices) are connected to the Internet.