2.3 Nimbits
Like Xively there is also Nimbits made by Google;
both can be used to collect data, because they are all
based on the same structure and logic: the data com-
ing from the sensor are all processed, and then sent
to the Cloud’s services through SQL. The data are
collected into a storage, through a web page and af-
terwards they can be visualized on a thin (tablet or
smartphone) or thick (PC) client.
2.4 Raspberry Pi
Similar to Arduino, as well, it is also available an
open-source device named Raspberry Pi, that can con-
nect and use both Xively and Nimbits services. In
order to use it, an Operating System (OS)
4
must be
installed onto an SD card. In that sense Raspberry
Pi represents a real microcomputer while Arduino is
a microcontroller; this characteristics gives the possi-
bility to use both the devices.
2.5 Raspberry Pi and Arduino
The possibility of connecting the two devices and of
installing the Arduino software tools inside the Rasp-
berry Pi, can solve an important management issue
represented for instance by the remote update of the
distributed Arduino devices. In fact, as more then
one Arduino microcontroller can be connected to one
Raspberry Pi microcomputer, it is possible to mod-
ify its configuration through internet, i.e. without any
cable connection. Others interesting solutions can be
added like, for example, storing the data locally, re-
mote monitoring of the hardware status and perfor-
mance, changing the interval of data acquisition, and
so on.
The Arduino and the Raspberry Pi devices can eas-
ily communicate with each other in different ways:
they can communicate through Ethernet, Bluetooth or
Wireless communication, but it is also possible to the
Raspberry Pi to use an Arduino Shield, or just convert
the I/O pin tension
5
.
2.6 Raspberry Pi as a Data Storage
An interesting aspect could be to make the Raspberry
Pi device such as to behave like a server and data stor-
age, installing on it a NoSQL DB, like CouchDB, and
connect it to the Arduino on internet; in this way one
4
Raspberry Pi can be operated by an optimised Linux
OS chosen among list.
5
Arduino needs 5V instead of Raspberry Pi 3.3V, the
respective Pins must be connected.
obtains a real ”Internet of Things” communication.
However we have to consider that such configuration
does not provide a real Cloud service, like, for exam-
ple, an Infrastructure as a Service model may. There-
fore we have discarded this hypothesis, because the
main object of the project is ”infinity processing and
storage capacity of data from trillions of things and
people that are integrated via virtual services in the
Cloud”; for this reason, we will employ a Virtual Ma-
chine (VM) running inside a private Cloud. The men-
tioned ability of the Raspberry Pi to store a limited
amount of data could be useful for backup functions
in case of a short interruption of the communication
between the device and the VM.
3 MANAGING DATA STORAGE
IN A NoSQL DB
This chapter described a practical example of how to
make a real Infrastructure as a Service, and how to
use it.
Among the different open-source solutions, it has
been chosen and tested one that appeared to be one the
most interesting: oVirt. It is an open-source Infras-
tructure as a Service solution that allows the client, us-
ing an interface (the oVirt engine, see Fig.4), to man-
age hardware nodes, storage and network resources,
and to deploy and monitor virtual machines running
on the data center.
Given that the main strength of the Cloud approach is
in the optimisation of the hardware resources through
virtualisation, enabling a meaningful cut on total costs
of ownership, we decided to choose a VM, instead of
a simple dedicated machine, as a server. Another re-
ally useful and powerful Cloud oriented virtualisation
solution that we considered was OpenStack, but in our
test case oVirt was fit for the task.
It is possible to manage your own VMs using oVirt,
simply accessing a web interface known as User Por-
tal (see Fig.4).
oVirt provides a high availability mechanism that per-
mits the automatic migration of a VM to another hard-
ware node in case of failure on the current hosting
node. That happens without losing any data or infor-
mation, and no manual action on the VM is needed.
In our test case we employed a VM with CentOS
6.4 as OS and CouchDB installed as database to store
data; in this way it is possible to send a string through
TCP/IP and store data on the NoSQL DB (in this case
CouchDB). For performance reasons it is highly rec-
ommended to store data this way, and not, for exam-
ple, to employ a mySql DB, especially since a ”ter-
abyte torrent” coming from trillions of devices is ex-
CLOSER2014-4thInternationalConferenceonCloudComputingandServicesScience
166