Internet of Things (IoT) Framework is an integrated part of Future Internet including existing and evolving Internet defined as a dynamic network infrastructure based on standard and interoperable communication protocols where physical and virtual “things” have identities, physical attributes, and virtual personalities, use intelligent interfaces, and are seamlessly integrated into the information network.
In the IoT Framework, “smart things/objects” are active participants in business and information processes where they are enabled to interact and communicate among themselves and with the environment by exchanging data and information “sensed” about the environment, while reacting autonomously to the “real/physical world” events and influencing it by running processes that trigger actions and create services with or without direct human intervention
The IoT Framework consists of “Services” that will be able to interact with the “smart things/objects” using standard interfaces that will provide the necessary link via the Internet, to query and change their state and retrieve any information associated with them, taking into account security and privacy issues
The important elements for the design of the framework include the
right balance for the distribution of functionality between smart things and the supporting infrastructure
modelling and representation of smartobjects’ intelligence
These are addressed by classifying smartobject/things types as:
policy-aware objects, and
These types represent specific combinations of three design dimensions with the aim to highlight the interdependence between design decisions
The Internet of Things needs an open architecture to maximize interoperability among heterogeneous systems and distributed resources including providers and consumers of information and services
Architecture standards should consist of
well-defined abstract data models,
Interfaces and protocols, together with concrete bindings to neutral technologies
IoT nodes may need to dynamically and autonomously form peer networks with other nodes, whether local or remote, and this should be supported through a decentralised, distributed approach to the architecture, with support for semantic search, discovery and peer networking.
The IoT is based on the co-existence of many heterogeneous set of things, which individually provide specific functions accessible through its communication protocol. There are devices that offer discoverable web services on an IP network, while there are many other devices without such services that need the introduction of a wrapping layer, consisting of an interface and a communication sub-layers.
The communication 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/physical tagged objects. The use of an abstraction layer capable of harmonizing the access to the different devices with a common language and procedure is a common trend in IoT applications.
Services play a key role: they provide a good way to encapsulate functionality (e.g., abstracting from underlying heterogeneous hardware or implementation details), they can be orchestrated to create new, higher-level functionality, and they can be deployed and executed in remote locations, in-situ on an embedded device if necessary. Such distribution execution of service logic, sometimes also called distributed intelligence, will be the key in order to deal with the expected scalability challenges.
The middleware is defined as a software layer or a set of sub-layers interposed between the technological and the application levels. The middleware architectures proposed in many projects for the IoT often follow the Service Oriented Architecture (SOA) approach.
The adoption of the SOA principles allows for decomposing complex systems into applications consisting of an ecosystem of simpler and with well defined components. The use of common interfaces and standard protocols is common in such systems.
However typical SOAs fail to provide the loose coupling and proper separation between types and instances that are needed in domains that involve “things” (e.g. home automation). These loose coupling and proper separation between types and instances are however well known in Component Based Software Engineering (CBSE) approaches.
Service discovery and composition.
Semantic interoperability, semantic sensor web etc.
Data sharing, propagation and collaboration.
Lightweight and open middleware based on interacting components/modules abstracting resource and network functions.
Energy efficient micro operating systems.
Software for virtualisation.
Modelling and design tools for IoT objects and systems
Mathematical models and algorithms for inventory management, production scheduling, and data mining