## 3 Technology, Hardware and Software of Edge Computing
### The Software and Tools of Edge Computing
#### 3.2.2 Communication Protocols  
The computational workflow is distributed across the IoT devices, edge nodes, and cloud data centers depending on the application's functional requirements and QoS parameters. In this process, data are transmitted from the IoT device to the edge and then from the edge to the cloud using different communication protocols. Lightweight protocols such as the Constrained Application Protocol (CoAP) and Bluetooth Low Energy (BLE) are commonly employed to connect resource-constrained end devices to edge gateways [141].  
To facilitate data flow and monitoring on the edge server, foundational software tools such as Eclipse Mosquito (implementing the MQTT protocol), Node-RED (a flow-based programming environment), and SQLite (a lightweight SQL database engine) are commonly deployed [142]. MQTT, recognized for its minimal bandwidth and power consumption,follows a lightweight publish/subscribe (pub/sub) model and is widely adopted in edge computing scenarios. Eclipse Mosquito was selected due to its open-source nature and compatibility with constrained devices. Figure 5 illustrates the operational interactions among these components within the edge environment.  
MQTT, as a pub/sub protocol, is supported by various brokers including Eclipse Mosquito and HiveMQ. To enhance security in MQTT communications, the MQTLS protocol proposed in [143] introduces a mechanism that ensures that brokers read messages only when necessary, enabling selective message delivery between publishers and subscribers. Currently, MQTT security is primarily ensured through the use of the TLS protocol between the client and broker, as illustrated in Figure 6.  
AMQP is an open-standard, TCP-based application layer protocol designed for message-oriented environments [144]. Similarly, the Extensible Messaging and Presence Protocol (XMPP) is utilized in instant messaging applications and supports both synchronous (request-response) and asynchronous (pub-sub) communication models. XMPP also relies on TCP as its underlying transport protocol [145].  
The MQTT architecture consists of publishers (message-generating entities), intermediaries (components that ensure QoS and security), and subscribers (message receivers) [146]. Table 6 presents a comparative overview of commonly used application-layer communication protocols, emphasizing their respective strengths and use cases in edge and IoT networks.  
\begin{table}
\begin{tabular}{c c c c c c} \hline \hline
**Application Protocol** & \begin{tabular}{c} **Publish/** \\ **Subscribe** \\ \end{tabular} & \begin{tabular}{c} **Request/** \\ **Response** \\ \end{tabular} & **Transport** & **Security** & \begin{tabular}{c} **Quality of** \\ **Service(QoS)** \\ \end{tabular} \\ \hline Constrained Application & & & UDP (User & \begin{tabular}{c} DTLS (Datagram \\ Transport Layer \\ Security) \\ \end{tabular} & Yes \\ Protocol (COAP) & Yes & Yes & \
\begin{tabular}{c} TCP (Transmission \\ Control Protocol) \\ \end{tabular} & Yes \\ Minimum Message Queuing & & & TCP (Transmission & SSL (Secure \\ Telemetry Transport (MQTT) & Yes & No &
\begin{tabular}{c} Control Protocol) \\ \end{tabular} & Sockets Layer) & Yes \\ Advanced Message Queuing & & & TCP & SSL & Yes \\ Protocol (AMQP) & & & & & \\ Extensible Messaging and & & & & & \\ Presence Protocol (XMPP) & Yes & Yes & TCP & SSL & No \\ \hline \hline \end{tabular}
\end{table}
Table 6: Comparison of common application protocols [146].  
Figure 5: Software infrastructure and services deployed on the edge server [142].  
Figure 6: The security model in the pub-sub model in TLS [143].