# A Reference Model for Monitoring IoT WSN-Based Applications
## 2 Wireless Sensor Networks Monitoring Tools  
Several tools have been proposed during recent years which facilitate the development of wireless sensor network applications. These tools assist engineers in different stages of implementation. In [11] an in-depth revision of the large number of different proposed tools is shown: simulators, emulators, data visualization tools, testbeds, debugging tools, reprogramming tools and network monitors. Frontiers between those groups are often vague and some of them can be catalogued in several groups. More clearly, [PERSON] [12] classifies wireless sensor network tools into two groups: pre-deployment tools and post-deployment tools. The first includes simulators, emulators, testbeds and debuggers, whereas the second includes traffic visualization tools, remote debuggers, programming tools and a set of active and passive strategies grouped together as monitors. Table 1 additionally differentiates between the post-deployment tools that centralize the monitoring process and the ones that allow distributed monitoring. These tools can be classified [12], identifying the knowledge of the system (motes) about the monitoring process, as:  
* Passive: No action is required by the mote and there is no interference with network operation. They rely on communications packets received at the network gateway or overheard within the network. * Active: Motes are instrumented to make possible the monitoring process and the mote interacts with the monitoring tool. Network users interact with the motes to request or retrieve information about their state or about the network operation. * Opportunistic: Motes are also instrumented to make the monitoring process possible but there is no interaction between the mote and the monitoring tools. The information about motes and network operation is sent by the motes to the network controller when it is necessary. Thus, although not new, the concept of monitoring wireless sensor networks has adopted different names in designs and implementations over the years. Depending on the use and purpose of the deployment, different names have been adopted: monitor, sniffer, debugger, analyzer, diagnosis tools, etc. We advocate the use of the term monitor for such tools with a standardized and methodological classification. According to the literature, [PERSON] [13] defines a monitor as a tool that quantifies the results of an observation. [PERSON] [14] defines a monitor as a tool that facilitates analytic measurements necessary for performance analysis and evaluation. The name monitor reflects the fact that performance \begin{table}
\begin{tabular}{l c c} \hline \hline \multirow{2}{*}{**Pre-Deployment Tools**} & \multicolumn{2}{c}{**Post-Deployment Tools**} \\ \cline{2-3}  & **Centralized Monitoring** & **Distributed Monitoring** \\ \hline Software debuggers & & Network self-diagnosis \\ Software simulators & Active and passive packet analyzers & Remote-debuggers \\ Software emulators & Logging \& Tracing & Packet sniffers \& Visualization \\ LowPAN Testbeds & IP network utilities & Distributed packet sniffers \\ \hline \hline \end{tabular}
\end{table} 
Table 1: [PERSON] [12] tools classification lists. cannot be assessed from a snapshot measurement, but only after observing (monitoring) the system for the appropriated time lapse. The measurement process entails three main problems:  
1 What information is pertinent to a specific measurement objective. 2 Where such information can be found. 3 How it can be extracted and processed. Furthermore, a monitoring platform (as a distributed system) must solve some additional problems: data coherence between the different elements that form the distributed system, and the underlying communications subsystem to support collaborative processing. To overcome the heterogeneity of developments in this research area and the lack of a complete classification and a systematic implementation methodology, we can outline the main characteristics of the most important developments. Maybe the most widespread monitor is Nucleus [15].