## 5 Implementation Details  
The proposal of each novel piece of architecture is illustrated with the model, architectural design, and then finally by the implementation. In the previous sections, we discussed the modeling of the system and the design considerations of the architecture. In this section of the paper, we summarize the technologies and tools utilized while implementing this work. As described in Figure 1, the proposed architecture has three sub-modules: mission-planning, the cloud web server, and the IoT gateway. Therefore, the implementation tools are summarized in their respective tables. Table 2 reviews the tools and technologies utilized for the IoT gateway which is based on Raspberry PI model B. Physical IoT resources such as sensors and actuators are connected with IoT gateway. Furthermore, the IoT server is deployed on the gateway to listen to the request from cloud-based web client application. The server is implemented in Python 3. We use a popular Model View Controller (MVC) framework built on top of Python 3, named as Flask. Figure 6: Sequence of operation among different subsystems of the proposed architecture. The second sub-module of the proposed architecture is the cloud-based web server. Table 3 summarizes the technologies and tools used in it. The application is hosted on Amazon Web Service Elastic Compute 2 (AWS EC2). It is implemented using Python 3 as in the case of the IoT gateway. The Front End User Interface (UI) is implemented using Bootstrap 3, which is a responsive design-based framework. The last sub-module of the architecture is shown in Table 4, which shows the technology stack used to implement the mission-planning toolbox utilizing the DIY approach. The prime role of this sub-module is to allow users to configure the system without any real programming skills. For this, an HTML 5 canvas is provided where the mission configuration is developed by simple drag-and-drop features. The technology stack for each sub-module is selected considering its compatibility with the features of the MC-IoT applications. For instance, Python 3 was used as a core programming language; it is backed in many recent research studies because of its equal popularity in research projects as well as in development [20]. Moreover, Flask architecture is selected because it is very lightweight, and consequently the response time is minimal. For the cloud, EC2 is used rather than dedicated IoT services such as AWS IoT or Azure IoT because the proposed system utilizes the cloud to persist and monitor the missions remotely, i.e., without the need of being on the premises. Thus, using such specialized services would have been overkill for such a job. Finally, for the DIY components, JSPlumb is used because it is really flexible and easy to use. It has a robust API and customization of the existing \begin{table}
\begin{tabular}{l l} \hline \hline
**Component** & **Description** \\ \hline Operating System & Windows 8, 64 bits \\ CPU & Intel (R) Core(TM) i5-4570 CPU @ 3.20 GHz \\ Primary Memory & 12 GB \\ IDE & PyCharm \\ Programming Language & Python 3.6 \\ Framework & Flask 2 \\ Communication & RESTFu API \\ Libraries & Jinja 2, HTML 5, CSS3, Bootstrap 4, jPlumb \\ Persistence & MySQL \\ Additional Tools & PHYAdmin, MobaXterm \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Technology stack of mission-planning toolbox. \begin{table}
\begin{tabular}{l l} \hline \hline
**Component** & **Description** \\ \hline Hardware & Raspberry PI 3 Model B \\ OS & Raspbian \\ Memory & IGB \\ IoT Server & Flask Webserver \\ Physical IoT Resources & RGB LED, Fan, Temperature Sensor, Humidity Sensor, Breakboard \\ Additional Add-ons & GPIO, Untangle for XML Parsing, Jinja Template \\ Editors & Vim, Sublime Text 3, PyCharm \\ Programming Language & Python 3 \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Overview of implementation technologies for IoT gateway based on Raspberry.