## 3 Novel Taxonomy for SSNs
### High Level Virtualization
#### 3.2.1 HLV Using Network Level Virtualization
* **Melete System**[60]: is one of the first trails towards SSN, as the idea of VSN wasn't clear yet, the proposed system implemented the idea of concurrent applications over the same WSN infrastructure, where all of the nodes initially join a global logical group, called the associated group, and each node stores its code all times; however, it added applications to the system during the runtime that required creating a logical group to serve each of them, thus, based on grouping criteria, any node is able to be a member of a dynamic group that was created to serve a certain application, where a node can serve up to five applications concurrently based on its RAM, while the whole system supports up to 16 logical groups. The technique of dynamic grouping is used to support the flexible deployment of concurrent applications at the network level, where each application is deployed and executed on a subset of sensors that were grouped to serve it based on the application requirements and the node's capabilities. Additionally, the technique of Trickle [61] was used to facilitate the code deployment across the whole network. As Trickle supports code movement only through one-hop, thus the developers of Melete added a multi-hop feature to it, using additional node states, as shown in Figure 24. The performance evaluation study of Melete System was presented both analytically and in simulation, where it was observed that when multiple capsules were simultaneously requested, a forwarding region might be blocked in its discovery stage by existing forwarding regions around it. Also the code caching reduced the number of forwarded requests by 20-30%, and reduced the completion time by 20-50%. Affected requests by the blocking problem were very low. Melete was better than Trickle in both of traffic and time costs. Network traffic, completion time, and number of requests and code chunks increased with the node density. Figure 23: Multi-Agent System’s (MAS’s) Node structure. * HLV using Cluster Based solutions: SSNs provide cluster based solutions over the whole network, where the physical network is partitioned into groups/clusters, and each cluster is dedicated to a certain application, at which each sensor node inside the cluster has a certain role, cluster head, or cluster member. This section will briefly list them:
* **Cluster Tree Based Self Organization**[62]: The proposed scheme was presented to facilitate the creation, operation, and maintenance of dynamic VSNs. When a node detects a desired event, it triggers the root of the cluster to start creating a logical dynamic tree for tracking it in a reactive manner. The VSN tree will logically connect the nodes that are interested in that event to ensure the notification detection, by providing unicast, multicast, and broadcast communications among them. In unicast communication, a hierarchical addressing scheme is used, while using a list for both broadcast and multicast communication schemes. In this way, this mechanism is able to group a subset of sensor nodes under a logical tree to serve a certain application. The performance of cluster tree algorithm was evaluated while using a discrete event simulator, with 5000 nodes being randomly placed in a circular region if the radius was 500 m. The event detection was considered under three different scenarios. The results proved that, as the number of sensor nodes monitoring an event increased, a linear increase of hops would occur. During tracking an event, the exchanged unicast messages between the source and destination are not affected by the network size, while the multicast messages are affected by it. * **Closed-Loop System for Subsurface Contaminant Plume Monitoring**[63]: The developed system aims to develop protocols and software that supported VSN and also a real time integrated subsurface chemical plume monitoring system.