The IoT relies on a vast and heterogeneous set of objects,
each one providing specific functions accessible
through its own dialect. There is thus the need for an
abstraction layer capable of harmonizing the access to
the different devices with a common language and procedure.
Accordingly, unless a device offers discoverable
web services on an IP network, there is the need to introduce
a wrapping layer, consisting of two main sub-layers:
the interface and the communication sub-layers. The first
one provides a web interface exposing the methods available
through a standard web service interface and is
responsible for the management of all the incoming/outcoming
messaging operations involved in the communication
with the external world. The second sub-layer
implements the logic behind the web service methods
and translates these methods into a set of device-specific
commands to communicate with the real-world objects.