Internet of Things (IoT) systems are expected to generate a massive amount of data that needs to be processed. Given the large scale and geo-distributed nature of such systems, fog computing along with publish/subscribe (pub/sub) messaging has been proposed as possible solutions for coping with processing at scale. However, it is still unclear how practitioners can leverage the benefits of fog computing, e.g., how to optimally place data processing operators and pub/sub brokers. Moreover, current IoT systems typically rely on pub/sub brokers at the cloud, which might diminish the benefits offered by edge or fog processing as the communication between IoT operators has to be mediated by the brokers located in the cloud. To address this shortcoming, we propose to place the IoT application operators and the pub/sub brokers jointly on a network of nodes spanning from edge to the cloud considering various factors such as network topology or the locations of the IoT sensors and the consumers of the IoT applications. Different than the prior works, we specifically consider pub/sub brokers and their unique characteristics in the placement decision. First, we formulate the placement of operators and brokers jointly across edge, fog, and the cloud as a cost minimization problem. Next, we design two low-complexity heuristics. Our simulation results corroborate the argument that a placement in the cloud is usually a good option for IoT use cases, but also reveal the gap to the optimal solution in scenarios with heavier clustering of producers and consumers of sensor data. Studying the optimality gap shows that in such a setting heuristic solutions usually stay under a stretch factor of 2, with a worst case factor of 2.5 for a tabu-based solution and 2.85 for a greedy and a fixed placement in the cloud.
- Operator placement