I. Introduction
The IoT (Internet of Things) is becoming part of almost every person’s daily life [4] thanks to the wide set of benefits it offers ranging from simple wearable devices and smart meters down to connected cars and smart cities. This led to an unprecedented increase in the number of IoT devices that are deployed and operated around the World. For example, Cisco estimates that the number of IoT devices will hit 30 billion by 2030 [5]. Cloud computing [6]–[10] has long been the first choice of IoT manufacturers and providers to accommodate their storage and analytical needs, due to the unlimited and high-performance computing and storage capabilities it provides. Nonetheless, the fact that cloud data-centers [11], [12] are usually deployed in locations that are quite far from the IoT devices entails high response time for high-end systems due to the long-distance communications and multi hopping. This of course entails risks since IoT devices are used in many verticals to which time is of essence. For example, consider the case of a patient using a wearable device that sends a piece of data from her brain for urgent analysis. In such a case, the longer the data analysis request takes to reach the intended server [13], the higher is the risk on the patient’s health. This causes a serious problem in cloud-based environment in which the analysis needs to take place in geographically cloud data centers. Therefore, this becomes a serious problem when it comes to delay-critical services that often require responses in milliseconds such as healthcare management and intelligent transportation system applications.