25 May 2016

Internet of Things (IoT)

IoT is a collection of objects (e.g., sensors, computers, mobile devices, RFID tags etc.) with unique identifiers that are able to detect the presence of nearby objects and exchange data with one another using wireless and wired networks connected to the Internet in order to reach a common goal (Atrozi et al, 2010).

The definition of IoT varies depending on from which perspective you look at it – Internet-oriented, Things-oriented or semantic-oriented perspective. The Semantic-oriented IoT approach is based on the idea that the number of objects involved in the future Internet will be very high, making representing, storing, interconnecting, searching and organizing information generated by IoT to be very challenging.

IoT shifts the Internet from interconnected computers to interconnected things. It expands the "anywhere, anytime" ubiquitous computing paradigm to "anywhere, anytime, anything”.

Three IoT components enable seamless ubiquitous computing:

  • Hardware – comprises of sensors, actuators and embedded communication hardware,
  • Middleware – on demand storage and computing tools for data analytics,
  • Presentation – easy to understand visualization and interpretation tools that can be widely accessed on different platforms and can be designed for different applications.

Enabling Technology

WSN and RFID systems will be among the key components of IoT. Sensor networks will be a crucial component, especially if sensors can cooperate with RFID systems to enhance tracking the status of things. Sensor networks can increase environment-awareness and act as a bridge between the physical and digital world. The integration of sensors and RFID will enable many new applications for IoT.

IoT Architecture

There are two types of IoT architecture: Internet-centric architecture and object-centric architecture. The former focuses on Internet services while objects contribute the data; the latter focuses on smart objects.

The IoT architecture usually consists of the following layers:

  1. Perception layer is the lowest layer in the IoT architecture. Its main purpose is to identify an object / thing and gather data. It perceives data from the environment — all data sensing and collection are performed at this layer. Entities such as sensors, bar codes, RFID tags, and cameras are in this layer.
  2. Network layer collects data gathered by the Perception layer. It functions like the Network and Transport layers of the OSI model. It collects data from the Perception layer and sends it to the Internet.
  3. Middleware layer is responsible for service management and data storage. It receives data from the Network layer and performs information processing and makes decisions automatically based on the results. The output is passed to the Application layer.
  4. Application layer performs the final data presentation. It receives information from the Middleware layer and provides global management of the application presenting that information. How data is presented depends of the type of application.
  5. Business layer deals with how the service or model works. Data received from the Application layer is molded into a meaningful service and further services are created from existing services. Information is processed to make efficient means of using it.

IoT Applications

IoT applications can be classified based on the type of network availability, coverage, scale, heterogeneity, repeatability, user involvement and impact.

There are 4 application domains:

  1. Personal and home. The sensor information collected is used only by the individuals who directly own the network. Wi-Fi is used as the backbone to support high bandwidth data, e.g., ubiquitous healthcare and home monitoring system for elderly care. The ability to control home equipment, e.g., air conditioning, will support better home and energy management.
  2. Enterprise. Information collected from the network is used only by the owners and the data may be released selectively. A common application is environmental monitoring, e.g., sensors in a factory to monitor security, automation, lighting and climate control.
  3. Utilities. The collected information is usually for service optimization, e.g., smart meter by electricity supply company.
  4. Mobile. This encompasses smart transportation and smart logistics. Urban traffic contributes to noise pollution, air quality degradation and greenhouse gas emissions. Traffic congestion imposes a significant cost on economic and social activities. Congestion affects supply chain efficiency and productivity, e.g., freight delays and delivery schedule failures.

    Dynamic traffic information allows better planning and improved scheduling. Transport IoT supports the use of large scale WSNs for online monitoring of information, such as travel times, origin-destination route choice, queue length etc. The mobile IoT domain also enables efficient logistics management, which includes monitoring of items being transported in addition to efficient transportation planning.

Challenges of IoT

There are 6 core challenges.

Scale. Due to the massive scale of IoT, it is infeasible to coordinate each required device due to constraints such as time, memory, processing power and energy consumption. E.g., an application that requires the temperature of a city can calculate the average temperature based on data collected from a set of thermometer readings incorporated into devices in the city. However, if there are a few thousand such devices in the city, this set of temperature reading quickly becomes unmanageable. One solution is to calculate the average temperature based on a small sample of temperatures uniformly distributed within the city. The challenge is how does a middleware bypass the need for a human expert and perform the probabilistic sensor selection on its own?

Deep heterogeneity. An important characteristics of IoT is that services representing things are much more heterogeneous than typical services currently on the Internet. Sensors/actuators in the network would be from different vendors with varying characteristics, such as error distributions, sampling rate, spatial resolution etc. Moreover, due to cost consideration, new sensor/actuator hardware often will not replace older generations already deployed, but different generations of devices will operate alongside one another. As the network size increases, delegating the coordination tasks to humans would be infeasible. A fully automated methods for high level inference becomes a necessity.

Unknown topology. The topology of IoT is both unknown and dynamic. Applications cannot assume nor depend on services to be available from any single pre-existing component of the network at any given time. How does IoT middleware perform functional substitutions on its own without supervision? How would it perform service composition optimally when the network size is huge with unknown topology?

Incomplete or inaccurate metadata. The solution to the problems above is use of metadata. Unfortunately, the metadata must be manually entered by a human at installation time, which in a big network, might result in a large amount of incomplete/inaccurate data due to human error. Furthermore, some information (e.g., calibration parameters) may change over time. The state of metadata is bound to degrade over time until it no longer represents the current state of the network. The challenge is how to monitor and update metadata when necessary.

Conflict resolution. This problem arises mainly with actuators. It occurs when multiple application attempt to actuate the same device in opposing ways or exert mutually incompatible changes on the environment. E.g., an application requires a pan-tilt zoom camera to turn left and another requires it to turn right. How would the network satisfy both applications or gracefully degrade their QoS?

Unknown data-point availability. A consequence of unknown topology is sometimes there might not be a suitable device at a required location or the device does not have the required data. It is, however, possible to estimate the value of the required data, e.g., if there is no thermometer at a required location, the temperature can be estimated based on thermometer readings in nearby areas.

Requirements for Pervasive Computing and IoT Applications

Developing pervasive computing applications is different from developing conventional applications due to a number of constrains, such as heterogeneous operating environment. Developing IoT applications are subjected to similar constraints and challenges.

Multiple platforms for mobile devices means the OS and languages used to develop applications also vary. This poses a challenge for application developers because it is time consuming to develop the same application for different platforms. Even if it is possible to generate new applications as fast as new devices emerges, writing application logic only once, independent of devices, would tremendously add value in solving the application scalability problem.

The requirements:

  1. What-you-need-is-what-you-get (WYNIWYG) model loads only components required to provide a service, making is suitable for resource-constrained devices. Six patterns are needed for the applications: multi-device support, user-centrism, runtime adaptation, mobility, context awareness and environment independence.
  2. The application should be able to execute in a broad spectrum of highly heterogeneous environments in order to support seamless and distraction-free user experience. The applications require minimal manual configuration and are able to adapt and optimize themselves autonomously depending on the capabilities of the environment. Failures are handled transparently and new capabilities are integrated on-the-fly.
  3. Pervasive computing / IoT applications are distributed over a few devices, e.g., a mobile device for user input and a server on a fixed infrastructure for data storage. The platform to support this must fulfil three requirements:
    • Ubiquitous communication and interaction: The middleware should support ubiquitous and configuration-free interaction with other devices. An abstraction is required to access remote devices.
    • Integration of heterogeneous devices: The middleware should allow the integration of heterogeneous devices into the system (in terms of hardware / software platform and resources).
    • Dynamic mediation: the middleware should provide a dynamic mediation service to select suitable interaction partners at runtime.
  4. The requirements are application-specific, but usually includes high flexibility, re-usability, reliability, localised scalability, adaptability and context-awareness. The complexity of operations are characterized by resource constrains, fault-proneness of devices, network topology dynamics, requirements to interface with heterogeneous hardware and network protocols, programming of multiple devices and their interactions, and functionalities for context data and service management. A pervasive computing / IoT middleware has the potential to help address all of these issues.
  5. Pervasive computing / IoT algorithms and protocols have to be device agnostic because users and applications are interested in services and data, not the devices.

The pervasive computing / IoT organizational model can be divided into two:

  1. Smart environment. A smart environment is a spatially limited area, e.g., an office space, equipped with sensors and actuators. Many devices in this environment are stationary. Users may use mobile devices and some devices must be dynamically integrated. The integration process depends on the physical location of the device or is manually configured through a user interface. A middleware for a smart environment usually relies on a stationary and powerful computer to provide basic services, therefore, the coordinating computer must be highly available.
  2. Smart peers. The smart peer model is based on a dynamically formed collections of smart peers. It takes a people-centric instead of location-centric approach to pervasive computing / IoT applications. A pervasive system is viewed as a collection of computers that surrounds a person independent of the physical location. This model cannot assume there is continuous presence of any device, which prohibits centralised coordination. Smart peers has to utilise mechanisms that support decentralised coordination. In order to make it manageable, the middleware limits the size based on spatial proximity. The management mechanism tends to be more complicated and less efficient if not designed properly.

Middleware Requirements

A middleware is a software layer or a set of sub-layers interposed between the technological and application levels in order to hide the details of different technologies to exempt the programmers from issues that are not directly pertinent to their focus, which is to develop specific applications.

We need IoT middleware because:

  • It is difficult to define and enforce a common standard for all devices in the IoT environment,
  • A middleware acts as a glue that holds together the heterogeneous components together,
  • Application from diverse domains require an abstraction/adaptation layer,
  • A middleware hides the heterogeneity by providing the API for physical layer communications and required services to the application.

A middleware is an important component of IoT because of its role in shielding programmers from having to deal with different technologies at the lower layers when developing new services and integrating legacy technologies into a new one. The architecture proposed for IoT middleware is the Service Oriented Architecture (SOA), which allows monolithic and complex systems to be decomposed into applications with simpler ecosystem and well-defined components. SOA also allows hardware and software reuse because it does not impose a specific technology for service implementation.

Pervasive computing / IoT middleware is different from traditional middleware in the following ways:

  • There is greater devices, network protocols and operating systems heterogeneity in a pervasive computing / IoT environment.
  • In order to provide situation-aware services, pervasive computing applications require context-awareness and service orientation support, which requires special mechanisms in the form of raw context collection, storage and processing, higher-level context derivation, and context inconsistency resolution. Equally important are service discovery and composition to provide users with unconstrained service support.
  • Because IoT applications are human-centric, they are often safety-critical and has to support users unobtrusively without requiring any intervention.
  • The middleware should be lightweight for implementations on mobile nodes that have limited processing power and energy.

The requirements for IoT middleware:

  • Scalability.
  • Platform portability including legacy support.
  • Robustness and ease of administration.
  • The middleware should support three main services: spontaneous interaction, context management and application adaptation.
  • The middleware supports three core services: context management service, service management service, and reliability and security support.
  • Interoperability: The heterogeneity of devices in IoT imposes a critical challenge for middleware because the devices are expected to collaborate and exchange information. An approach that assumes compliant devices, e.g., an IEEE 1451 compliant sensor devices, would be restrictive.
  • Abstraction provision: The middleware should provide abstractions at various levels, such as heterogeneous I/O, hardware devices, hardware and software interfaces, data streams, physicality and the development process.
  • Spontaneous reaction: This is generated by sudden interactions caused by the movement of things, where new objects come into the wireless range of other objects. The middleware is required to manage events in an arrive-and-operate fashion.
  • Security and privacy: RFID tags embedded in personal, everyday items can be triggered to respond with their ID and other information, giving rise to privacy and security concerns. The management support of security and privacy has the considered as a main function for IoT middleware.
  • Network-agnostic connectivity.

What is IoT and why should you care?

Swimming with sharks - security in IoT

Source:

1 comment:

IEEE 802.15.4e Standard

Low reliability, unbounded packet delays and no protection against interference and fading are among the limitations of the IEEE 802.15.4 ...