## 5 Experiments and Evaluation
### Evaluation  
We evaluated the TinyONet in two aspects; the performance results and the design principles. Additionally, we will discuss the future study of TinyONet. **Performance Evaluation**  
In the first experiment, the response time of conventional WSN linearly increased in proportion to the number of applications, but TinyONet maintained the regular response time. It showed the reuse of sensing data with the cache structure can greatly improve the response time especially when a large number of applications share the same sensor network. The second experiment indicated that conventional WSN generated much more packets than TinyONet when the same data update cycle was given. The fewer packet generation in a sensing field will result in the energy saving of each sensor node and the improvement of radio channel availability. **Reusability of Sensing Data**  
TinyONet is designed to support the reusability of sensing data. For example, if a heater raises the temperature of a room, the temperature data is cached on its corresponding virtual sensor. Then, the cached sensing data can be repeatedly used to serve a lot of sensor applications without performance degradation. The experiments in Sections 5.1 and 5.2 proved that the reusability of sensing data is greatly useful for the improvement of the response time and reducing the packet transmission. **Providing Diverse Communication Methods**  
In the experiment in Section 5.2, TinyONet showed that it can support both the node-centric and the data-centric communication methods. Mainly, TinyONet is designed to support the data-centric communication, but it also enable conventional WSN applications to use the node-centric communication with a BYPASS request. The experiment of Section 5.1 showed that TinyONet can also support the synchronous access. **Dynamic Adoption of Various Sensing Data**  
To satisfy diverse sensor applications' requirements, TinyONet is designed to dynamically adopt various kinds of sensing data. To verify this feature, we located a new kind of physical sensor and ordered it to report its location and energy. Then, we checked whether the corresponding _VirtualSensor_ to handle new properties well and to report the properties to external sensor applications as usual. The result was successful. **Dynamic Service Extension at Runtime**  
To show the feasibility of the dynamic service extension, we made a new _Action_ class calculating an average value and we uploaded it to the running TinyONet. After uploading, we checked that an external sensor application could request the uploaded 'average' action for the average value of the first room's temperature. The result was successful. Since the 'average' action is not bundled at deployment time, we can verify that the dynamic service extension at runtime is successfully performed. Figure 12: Accumulated number of packets on the _TxRx_. **Providing Sophisticated Functional Components**  
To verify that TinyONet can provide highly sophisticated functional components, we made a 'FireAlaram' _Action_ class. The _Action_ checked the temperature of the same room and notified an alarm when all three motes simultaneously reported an abnormal high temperature. After uploading this _Action_, we let physical sensors in the same room report very high temperature. The _Action_ handled this reporting as we expected. It shows TinyONet can load various services not only for simple reporting functions, but also for complex and sophisticated functions. Theoretically, third-party users can make any kind of _Action_ class if a new _Action_ class inherits the original _Action_ class. **Future Study**  
In spite of the remarkable results of this research, several design issues are still remained to be deeply considered. The first issue is a security risk related to the dynamic service extension. Although the dynamic service extension is very useful, it makes system be vulnerable as [26] indicated. To resolve the issue, the code signing or secure uploading channel has to be implemented.