I. Introduction
With the rapid development of Internet of Things (IoT), billions or even trillions of IoT devices will be potentially networked [1]. Since the computation capabilities of IoT devices are always limited, they must rely on external computing resources [2]. Cloud computing usually offers high reliability given its abundant computation resources, and provides scalable and efficient computing services. Cloud access usually, however, incurs huge bandwidth consumption and long delays, and so may not satisfy IoT applications that need very low latency [3]. Edge computing supplements cloud computing by providing cloud-like services closer to the IoT devices. While offering several advantages such as controllable latency and low energy consumption [4], edge servers are not as rich in capacities such as bandwidth, processing speed and memory size as cloud servers. Therefore, edge cloud computing has been proposed as a solution and is attracting a lot of interest as it balances the advantages of edge and cloud computing [5].