## 3 Novel Taxonomy for SSNs
### SSNs Using Hybrid Level Virtualization
#### 3.3.2 Hybrid Virtualization Based on Middleware and Virtual Networks/Overlay Solutions  
This branch also handles the node level using middleware, but handles the high level by virtual network/overlay.  
Figure 38: Sensomax Architecture.  
Figure 39: Middleware layer architecture.  
* **SenShare**[20]: is a platform that allows SSNs to be shared among multiple applications. This platform separates between the infrastructure owner and the application developers to offer more flexibility. LLV is based on hardware abstraction layer (HAL) to allow multiple applications to simultaneously operate on each sensor node over a multitasking OS by defining a set of interfaces that facilitate the development of applications without caring about the background hardware, as in Figure 40.  
Each application in SenShare has its own ID that is attached to its packets to identify them from other running applications where ID is used to manage data and control messages from and to it. Applications also share the HAL that is used as a hardware abstraction layer to allow multiple access to it. Thus, each application has its own virtual hardware that is linked to the TinyOS. Therefore, when an application requests hardware access, the relevant virtual hardware passes that request to the runtime layer between it and the OS to start up the application, it also manages traffic isolation between multiple applications while using the ID attached to the packet at the source, and removes it at the destination. While, at the HLV the overlay middleware groups the scattered nodes associated to a certain application in a single VSN, that's done by using the Collection Tree Protocol (CTP) [81], which is also used for routing data and controlling messages among clusters. The performance of SenShare was evaluated by studying the sampling rate of the sensor node that decreased by 28% when multiple applications shared it as compared to a single running application for the same phenomena. The utilization of the CPU and memory usage linearly increased with the number of added applications. It was also observed that the overlay performs better as the number of scattered nodes increased.
* **A framework for service provisioning in VSNs**[18]: This framework aims to design a middleware between the applications and sensor nodes; it proposes a sensor node architecture that supports the advanced virtualization feature. It achieves the node level virtualization by a middleware that sits on the top of network layer, thus a new configured MAC layer will be instantiated for each application served by the node, where each node contains a node virtualization manager that handles the available resources with the received requests. A VSN core framework that consists of a Dynamic Virtual Network Server (DVNS), a number of instanced VSN Managers, and that may also host some Legacy Gateway Interworking Functions (LGW IF) achieves the network level virtualization. The DVNS is responsible for discovering/registering and publishing VSN services to the end users and initiating service providing. The VSN Manager is responsible for service negotiation, session establishment, and monitoring, while the LGW IF enables the interaction with legacy Wireless Sensor Islands (WSIs), which are the autonomous administrative domain that carry one service or more.  
Figure 40: SenShare node Architecture.