Jasenka Dizdarevic, Technical University of Braunschweig
With the estimated growth of IoT devices and smart objects reaching billions within a few years, the new solutions which integrate fog and cloud computing into fog-to-cloud hybrid computing paradigm, including mF2C project, have been developed in order to support the computational demand and the latency sensitive applications of these IoT devices. One of the factors that will determine the performance of these new integrated systems is the choice of the best suited communication protocol that can satisfy a broad range of IoT applications. This choice can have a significant effect on the architecture, code, security, and the interoperability of the entire solution.
Due to the different requirements of numerous IoT scenarios and areas they have to cover, and taking into account that both cloud and fog computing have different system requirements, when we talk about communication protocols there is no common agreement on the reference architecture or adopted standards. However, there are many potential protocol candidates, including Message Queuing Telemetry Transport (MQTT), Advanced Message Queuing Protocol (AMQP), Extensible Messaging and Presence Protocol (XMPP), Data Distribution Service (DDS), Hypertext Transfer Protocol (HTTP) and Constrained Application Protocol (CoAP). In an attempt to capture new trends in IoT, potential solutions also include a new version of HTTP – HTTP/2 and QUIC protocol.
One of the prime candidate solutions is REST HTTP, due to the popularity and widespread usage of HTTP as a fundamental client-server protocol most compatible with existing network infrastructures. However, with fog-to-cloud solutions, for optimal protocol choice, it is necessary to take into account the differentiation of the layers, with fog computing layer performing computing tasks within resource constrained devices that require low latency and have less computing power and cloud computing performing tasks that require larger amounts of computing or storage resources. And while in devices that are not resource constrained, which are typically related with the cloud layer, HTTP still makes a perfect choice, it has been shown to exhibit a lot of performance issues in constrained devices where better results were achieved with lean communication solutions in the form of MQTT and CoAP lightweight protocols.
The single protocol based solutions are usually oriented towards optimally satisfying specific requirements and have been popular because of their easier implementation (especially more widely used and accepted protocols such as MQTT and REST HTTP). But this has many downsides as, for example, a protocol that satisfies constrained environment can underperform in other domain that has strict security requirements. With each protocol performing differently in different segments and suited for different types of application, in IoT fog-to-cloud systems it would make sense to combine different protocols. Through detailed analysis of the main features and implementations of each of the mentioned protocols, it can be concluded that individual protocols can be better positioned within parts of the overall IoT fog-to-cloud system. For the communication among two lower abstract layers in this type of system, that is IoT and fog, the most important feature of a protocol is its ability to run on constrained devices (MQTT, CoAP and XMPP). On the other hand, this restriction is not necessary for the communication among fog and cloud layer (AMQP, DDS, REST HTTP). When combining protocols it is also important to take into consideration that they follow similar concepts to which end, potential solution could be based on the combination of two protocols that follow the same architectural style, REST HTTP and CoAP or based on the combination of two protocols that follow the publish-subscribe interaction, such as MQTT and AMQP. Often discussed solution is also the combination of MQTT and REST HTTP (Figure).
The main challenge remains in testing these multi-protocol solutions in different IoT fog-to-cloud scenarios in order to resolve the key issues such as the interoperability of different chosen combinations and implementation stability of some of the mentioned protocols.