## 6 Implementation Details  
This section provides an overview of the implementation tools and techniques used to develop the system. The proposed tool is re-using some of the interfaces and technology stack outlined in [55]. The tool is intended to be run on general purpose machine hosted on the cloud. We will use the cloud to host the web-based tool. For this, we are using EC2 Compute node of Amazon Web Services [12]. Specialized services like Azure IoT and AWS IoT exist, but they offer a more dedicated services like data insight and analytics on sensory contextual data. Moreover, they are relatively over-expensive for the proposed work. Since the work presented in this paper is not a full-fledged IoT application, therefore it is best to opt for a compute node. Table 5 describes the technologies used on general purpose machine. Figure 6: Input and Process Modules Conceptual flow in Experimental Setup. The proposed tool communicates with Raspberry PI based IoT server to which numerous physical resources are connected. The physical resources which are discussed in later sections are attached to it. The cloud-based tool and the Raspberry PI based IoT server communicate using HTTP protocol. The IoT server listens to the request which is the scheduled instance of the task. It parses the request and performs the task on actual resource. The specifications of the Raspberry PI based implementation environment are demonstrated in Table 6.  
We use Python as a core programming language. Python is a general purpose and common programming language. It is widely used for developing web-based applications, desktop-based applications, data analysis and simulations. It has vast community and strong developers bench. We use Python for three reasons. First, it is equally popular among web programmers and scientist, and second, it is really easy to learn and adapt and last, it has strong API support. In this research, we used Python 3.5. Moreover, following a design pattern for implementing the tool is time-saving and leads to a very organised source code which can be easily maintainable if required [66]. Consequently, we used Flask which is an MVC based framework [67]. Flask is a mini framework based on model view controller architecture. It is a mini-framework in a sense that it does not utilise the full-fledged features of an MVC framework. It uses only those modules which are required on demand so brings efficiency in its core. The modules of the framework are loosely coupled and can be used as per need. For front-end technologies we use HTML5, CSS3 and JavaScript. We also use Bootstrap 3, a powerful front-end framework for reusing the code and making the tool responsive to run on mobile screens [68]. The major part of the presentation has been developed with the help of the Jinja templating engine. The controller is responsible for all the processing tasks. It takes requests, parses them, and processes them. For processing the requests, it needs data which is taken from the model. After processing the requests, the processed data is given to the view. The view generates a response in the form of HTML or JSON. Figure 7 shows typical flow of an MVC Pattern. \begin{table}
\begin{tabular}{l l} \hline \hline
**System Parameter** & **Value** \\ \hline Raspberry PI based IoT Server & \\ Hardware & Raspberry PI 3 Model B \\ Operating System & Raspbian \\ Memory & 1 GB \\ Server & Flask Webserver \\ Resources & LED, Fan, Temperature Sensor, Humidity Sensor, Breadboard, Expansion Board, Connecting wires, e-Health Sensor Platform \\ Libraries & GPIO, CSVReader, Jinja Template, Bootstrap 3, HTML 5/CSS3 \\ IDE & Vim, PyCharm (Remote Access) \\ Programming Language & Python 3 \\ \hline \hline \end{tabular}
\end{table} 
Table 6: Specification of Implementation Environment of IoT Server.