## 3 Novel Taxonomy for SSNs
### Low Level Virtualization
#### 3.1.3 LLV Based on Middleware Solutions
Where the node provides the internal services (service discovery, reading data, controlling actuators, and communicating via a gateway from and to the network), while the gateway acts as a bridge between a SSN and the outside world, then registry stores all information regarding the infrastructure, and finally, the server acts as a web service provider and provides a friendly API, where each separate WSN is presented as a separate web service. The performance of TinySOA was evaluated by two approaches, the first was developing simple applications while using different types of programming languages and different levels of programmers (experts and beginners) to ensure that TinySOA overcomes the overload of being aware of a certain programming language or knowing related issues. The second was developing complex real world applications to test and measure the degree to which TinySOA tools can help application developers. * **MyHealthAssistant**[52]: is a service-oriented middleware for user-centric health monitoring running on a smart phone-mediated Body Sensor Network for multiple medical applications, it aims to mediate between the heterogeneous sensors and multiple medical applications running on a smart phone. It treats the applications as platform independent tasks, which act as a service to consumers and then implements the required services, like sensing, actuating, etc. by a set of united instructions across different platforms. Figure 18 illustrates the architecture of MyHealthAssistant. The ambient sensors communicate with Android Remote Services via Wi-Fi, while the body sensors communicate via Bluetooth protocol. A sensor module handles sensor communication and  
Figure 17: TinySOA Architecture. Figure 18: MyHealthAssistant Architecture. creates a corresponding sensor event, which is forwarded to the message handler, which injects the received event to broadcast channels to inform subscribed applications about new sensor readings. Subsequently, the event composer translates the incoming events into general situations on which the system has to react, and it creates a corresponding derived event, it also checks the accuracy of data and prevents the inaccurate data. The system monitor provides the overall system status and detection measurements for critical situations, such as a low battery level. Overall liveliness of the smart phone needs to be monitored, thus a periodical heartbeat message containing the phone status information are sent to a server, which allows the remote detection of a crashed phone or a bad connection to the network carrier. The performance of MyHealthAssistant MW was evaluated by three different healthcare applications that were deployed with it, the performance metrics are energy consumption, overhead that is caused for the smart phone, and processing time under real-world circumstances. The results shows that, as the energy consumption of MyHealthAssistant increased due to the increasing of message workload, the Android system energy consumption also increases by 30% for the additional communication tasks. The delivery ratio decreased lower than 99.9% when the number of workload increased by 12 event/Sec. As the event size increased the CPU utilization was not affected, though MyHealthAssistant decides which channel an event has to be sent only based on its type and it does not inspect the payload, the delivery ratio slightly decreases. Additionally, the results proved that the main contribution of MyHealthAssistant MW is running multiple applications while keeping the impact on the system performance steady, where the CPU utilization and message delivery ratio remain steady while the memory usage slightly increases.