## 6 Implementation Setup  
This section gives an overview of tools and technologies used in implementing and evaluating the proposed work. The development of this work is aimed to be run on general purpose machine and an embedded device as outlined in Figure 5.  
Figure 4: Interaction model among different modules. This work utilizes some functional features of the web tool proposed in [47]. Table 2 describes the technologies used on general purpose machine. The scheduler communicates with a Raspberry Pi-based IoT server to which numerous physical resources are connected. In this paper, Raspberry Pi is used because it is relatively cheap and readily available everywhere. Development tools on a general purpose PC and the Raspberry Pi-based IoT server communicate using HTTP protocol and send a hyper-period and other information back and forth. Modules like Task Controller, Optimal Parameter Analyzer, and Constraint Provider are implemented on the PC end while the Scheduler and Device Management Controller are implemented on the Embedded Raspberry Pi end, which serves as a gateway for IoT physical objects. The specifications of the Raspberry Pi-based implementation environment are manifested in Table 3. \begin{table}
\begin{tabular}{l l} \hline \hline
**System Parameter** & **Value** \\ \hline Operating System & Windows \\ CPU & Intel (R) Core(TM) i5-4570 CPU @ 3.20 GHz \\ Primary Memory & 8 GB \\ Integrated Development Environment (IDE) & PyCharm, Sublime Text 3 \\ Framework & Flask Micro Framework \\ Core Programming Language & Python \\ Libraries & Jinja 2, CSV Parser, Bootstrap 3, HTML 5/CSS3 \\ Persistence & CSV \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Specification of implementation environment of general purpose PC. Figure 5: Implementation architecture. We use Python as a core programming language. Python is a general purpose popular programming language. It is widely used for developing web-based applications, desktop-based applications, data analysis and simulation. It has vast community and a strong developer's bench. We used Python for three reasons. Firstly, it is equally popular among web programmers and a scientist. Secondly, it is effortless to learn and adapt and, finally, it has powerful API support. In this research, we used Python 3.5. Moreover, it is strongly recommended that following a design pattern for implementing the tool is always time-saving and leads to very organised and maintainable source code. This is why we use Flask; a Model View Controller (MVC) mini-framework [48]. It is 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 thus brings efficiency in its core. Modules of the framework are loosely coupled and can be utilised as per demand. For Front-End technologies, we use HTML5, CSS3, and JavaScript. We also use Bootstrap 3 and a powerful Front-End framework for re-using the code and making the tool responsive to run on mobile screens too [49]. The significant part of the presentation has been developed with the help of a Jinja Templating Engine. As part of the implementation of this work, a Web-based Graphical User Interface (GUI) based on [47] is utilised to simulate various algorithms and to compute the relative complexity of input tasks of both existing approaches and the proposed approach. The flow of different processes for experimental scenarios is portrayed in Figure 6. Input tasks are admitted for scheduling using existing approaches like static threshold, no threshold, and harmonization approach and then using the proposed optimal threshold approach. Web-based GUI is used to aid in the visualisation of results. In the proposed approach, the optimal threshold is computed and passed to the hyper-period tuner. A hyper-period tuner generates an optimal task set based on a computed hyper-period and passes it to the real-time scheduler. The real-time scheduler schedules the tasks based on the supplied algorithm. In this work, we consider RM and EDF.