  In the Internet of Things (IoT), heterogeneous devices connect to each other
and to external systems to exchange data and provide services. Given the
diversity of devices, it is becoming increasingly common to establish
collaborative relationships between devices to provide composite services.
However, due to the high degree of heterogeneity in the IoT context, one of the
most significant challenges is to develop software applications that can run on
a wide variety of devices and can communicate and collaborate with an even
wider array of systems. A common middleware infrastructure for these devices
will therefore have a significant impact on the design, deployment, and use of
services in IoT systems by allowing developers to focus on the applications
rather than the low-level implementation details each device.
