A comprehensive comparison of edge computing, fog computing, and cloud computing architectures for distributed systems