Internet of Things – Architecture © - 62 -
Actuators can modify the physical state of a Physical Entity, like
changing the state (translate, rotate, stir, inflate, switch on/off,...) of
simple Physical Entities or activating/deactivating functionalities of more
complex ones.
Notice though that Devices can be aggregations of several Devices of different
types. For instance, what we call a sensor node often contains both Sensors
(e.g., movement sensing) as well as Actuators (e.g., wheel engines). In some
cases, Virtual Entities that are related to large Physical Entities might need to
rely on several, possibly heterogeneous, Resources and Devices in order to
provide a meaningful representation of the Physical Entity, c.f. in our ―Red
Thread‖ example, the values of several temperature Sensors are aggregated to
determine the temperature of the truck.
Resources are software components that provide data from or are used in the
actuation on Physical Entities. Resources typically have native interfaces. There
is a distinction between On-Device Resources and Network Resources. As the
name suggests, On-Device Resources are hosted on Devices, viz. software that
is deployed locally on the Device that is associated with the Physical Entity.
They include executable code for accessing, processing, and storing Sensor
information, as well as code for controlling Actuators. On the other hand,
Network Resources are Resources available somewhere in the network, e.g.,
back-end or cloud-based databases. A Virtual Entity can also be associated
with Resources that enable interaction with the Physical Entity that the Virtual
Entity represents.
In contrast to heterogeneous Resources – implementations of which can be
highly dependent on the underlying hardware of the Device–, a Service
provides an open and standardised interface, offering all necessary
functionalities for interacting with the Resources / Devices associated with
Physical Entities. Interaction with the Service is done via the network. On the
lowest level –the one interfacing with the Resource and closer to the actual
Device hardware–, Services expose the functionality of a Device through its
hosted Resources. Other Services may invoke such low-level Services for
providing higher-level functionalities, for instance executing an activity of a
business process. A typical case for this is the Service alerting ―Ted‖ based on
the temperature Service results in the ―Red Thread‖ example.
Since it is the Service that makes a Resource accessible, the above-mentioned
relations between Resources and Virtual Entities are modelled as associations
between Virtual Entities and Services. For each Virtual Entity there can be
associations with different Services that may provide different functionalities,
like retrieving information or enabling the execution of actuation tasks. Services
can also be redundant, i.e., the same type of Service may be provided by
different instances (e.g. redundant temperature Services provided by different