Database Reference
In-Depth Information
as an observer process (OBS), which is used to keep track of all the resources
that are in the network. The Arduino Yun and Intel Galileo run CoAP servers,
also implemented using the mjCoAP library, which provide some observable
resources, such as temperature and light sensors. The Zolertia Z1 nodes also run
CoAP observable resources (temperature and free-fall detection), implemented
using the Erbium library. Finally, one Android application, based on mjCoAP,
provides a noise detection service, using the smartphone's microphone.
The OBS registers to the RD's services list resource. When a resource enters
the network, the CoAP server sends a POST message to the RD, which in turn
notifies the OBS of the change in the network's state. The OBS then registers
for updates related to the newly available resource. When a resource changes its
state, the OBS receives a notification and uses this information to update the
content shown by a Smart Display (SD), which shows the value of the resources
being monitered in real-time. The available resources can be also accessed by
Android applications, based on mjCoAP. The app can request the list of available
resources to the RD and then send requests to the constrained resource either
directly, using CoAP, or through the proxy, using HTTP.
The experimentation that we have conducted has shown the absolute interop-
erability and compatibility among the used CoAP implementations, and proved
the easy development of mjCoAP-based applications. Even more importantly,
the evaluation that has been setup has highlighted how an IP-based IoT can,
in fact, integrate seamlessly with traditional Internet technologies and devices,
thanks to the use of standard communication protocols.
6 Performance Evaluation
An experimental benchmark evaluation has been conducted in order to assess
the performance of the mjCoAP library. The experimentation involved the evalu-
ation of (i) the response time and (ii) maximum number of processed requests by
a mjCoAP-based server. The server runs on a Raspberry Pi device and receives
CoAP requests sent by a test client application, implemented for the purpose
of stress testing, which can send requests to a target endpoint at a given rate.
A comparison with the performance of Californium with the same operational
conditions has also been carried out. The results of the experimentation are
shown in Fig. 3 .
Figure 3 (a) shows the number of received responses per second (for a lim-
ited arbitrary observation time interval) at different request rates, ranging from
1 request/s to 1000 requests/s. Each experiment consists in a running time of
10 s at a fixed request rate. The graph reports the number of responses received
within such a running interval: responses received outside the observation inter-
val are not counted. Both servers are able to handle all incoming requests until
they reach a saturation point (
240 requests/s
for Californium). If the rate of incoming requests surpasses the saturation point,
the requests are partly lost and partly delayed of an amount of time which
depends on the size of the receiver buffer. Californium's null rate is likely due to
220 requests/s for mjCoAP and
Search WWH ::




Custom Search