Open Source Middleware Platforms for the Internet of Things: An Overview

0
60
Platforms for the Internet of Things

IoT middleware connects devices to applications and services, and has specific characteristics and architecture. There are quite a few open source IoT middleware platforms available for the job.

Given the vast number of heterogeneous IoT (Internet of Things) devices generating immense amounts of data, it’s essential to manage them and enable applications effectively. This necessity prompts a revamp of existing architecture. The complexity of IoT solutions, anticipated future changes, and the integration of IoT with mobile devices, machinery, equipment, tablets, and more, highlight the need for industry-agnostic IoT middleware.

IoT middleware acts as a bridge between different IoT devices, applications, and services, facilitating communication and data exchange. It provides a set of software services that help manage, monitor, and control IoT systems.

Most IoT applications are heterogeneous and domain-centric. Deciding appropriate IoT middleware for application development is the major challenge faced by developers today. The important parameters for choosing the right middleware for IoT application are scalability, availability, ability to handle huge amounts of data, high processing speed, flexibility, integration with varied analytical tools, security, and cost.

The functionalities provided by different middleware vendors are almost similar but differ mainly in the underlying technologies. Middleware services provided by different IoT vendors include data acquisition, device management, data storage, security, and analytics. Selecting the right middleware platform is a critical step in application development.

Challenges in implementing IoT middleware

Handling large data volumes: As the number of connected devices increases, so does the volume of data. Ensuring that the middleware can scale to handle this data efficiently is a significant challenge.

Diverse protocols and standards: IoT devices often use a variety of communication protocols and standards. Ensuring seamless interoperability between these diverse systems can be complex.

Protecting data and devices: IoT systems are vulnerable to cyber threats. Ensuring robust security measures within the middleware to protect data and devices is crucial but challenging.

Privacy concerns: Safeguarding user data and ensuring compliance with privacy regulations is an ongoing challenge.

Real-time processing: Many IoT applications require real-time data processing. Ensuring that the middleware can process data with minimal latency is critical but difficult to achieve.

Device management: Managing the lifecycle of numerous IoT devices, including provisioning, updates, and decommissioning, can be complex and resource intensive.

Data management: Efficiently collecting, storing, and processing vast amounts of data generated by IoT devices poses significant challenges.

Implementation and maintenance: Deploying and maintaining IoT middleware can be expensive, especially for smaller organisations. Balancing costs while ensuring robust functionality is a challenge.

Legacy systems: Integrating IoT middleware with existing enterprise legacy systems can be complex and require significant modifications.

Multiple vendors: Coordinating and integrating middleware solutions from multiple vendors can lead to compatibility issues and increased complexity.

Adhering to standards: Ensuring that IoT middleware complies with various industry standards and regulations can be challenging, especially in highly regulated industries like healthcare and finance.

Keeping up with innovations: The rapidly evolving nature of IoT technology means that middleware solutions must continuously adapt to new developments and standards, which can be resource intensive.

Balancing loads: Ensuring optimal performance under varying loads and usage patterns requires careful planning and resource allocation.

Addressing these challenges requires a combination of robust technology architecture, design solutions, proper planning, and good governance to ensure the successful deployment and operation of IoT middleware.

Characteristics of open source IoT middleware

Middleware acts as an agent between service providers (IoT devices) and service consumers (enterprise applications). A software layer sits between applications and objects to provide the interaction between the internet and things. An open source IoT middleware platform should be fault-tolerant and highly available. Here are a few other characteristics IoT middleware should possess.

Flexibility: This helps in establishing better connectivity, which improves communication between applications, a diverse array of devices, protocols and data sources. Middleware acts as a unifying layer, simplifying the complexity of managing and integrating these diverse components.

An IoT middleware platform should support major communication protocols like MQTT, CoAP, HTTP, and WebSocket.

Privacy: Middleware hides many complexities and architectural details from both the application and the device so that these can communicate with minimum information about each other.

Interoperability: This allows different IoT devices and systems to exchange data and services regardless of the protocols, data models, and configuration. This interoperability is essential for creating cohesive IoT ecosystems.

Efficiency: By automating and streamlining processes, IoT middleware reduces the manual effort required to manage IoT systems. This leads to improved operational efficiency and allows organisations to focus on higher-value activities.

Scalability: Middleware provides the necessary infrastructure to support the addition of new devices and services, allowing IoT systems to scale efficiently. This is particularly important as IoT deployments grow and become complex.

Platform portability: The IoT platform should be able to communicate from everywhere and any time with any device. Middleware runs on the user side and can provide independence from network protocols, programming language, OS, etc.

Real-time data processing: Middleware facilitates the real-time collection, processing, and analysis of data from IoT devices. This capability is crucial for applications that require immediate responses, such as smart grids, industrial automation, and healthcare monitoring.

It supports open data formats like RestAPI, JSON, XML and Java.

Integration: A middleware platform should have no vendor lock-in to ensure seamless integration of enterprise-wide tools, applications, products and systems developed/deployed by different organisations and vendors. It should support open APIs and the deployment model of the cloud, and be highly available.

Reusability: Middleware makes designing and development easier by modifying system components and assets for specific requirements, leading to cost efficiency.

Maintainability: Middleware helps maintain the network efficiently.

Cost: Using middleware can reduce costs by minimising the need for custom integration, and allowing organisations to leverage existing technologies and protocols.

Device management: Middleware provides tools and frameworks for managing the lifecycle of IoT devices, including provisioning, configuration, monitoring, and maintenance.

Data management: Middleware facilitates the efficient collection, storage, processing, and retrieval of data from IoT devices. This ensures that data is accessible, organised, and ready for analysis and decision-making.

Security: IoT middleware includes security features to protect data and devices from unauthorised access and cyber threats. By implementing robust security measures, middleware helps safeguard sensitive information and maintain the integrity of IoT systems. It supports security features like encryption, authentication, authorisation, and auditing.

Next-generation technologies: IoT middleware supports technologies such as M2M applications, real-time analytics, machine learning, artificial intelligence, and event reporting.

IoT middleware architecture
Figure 1: IoT middleware architecture

Components of IoT middleware architecture

IoT middleware architecture must ensure that IoT systems are scalable, secure, and efficient, enabling seamless communication and data exchange between various components.

The middleware should support any data-producing entity as well as any data-consuming entity. Access to the middleware should be enabled via well-designed and documented APIs. These APIs should support application protocols like HTTPS, AMQP, MQTT, WebSocket, etc, and incorporate standard security schemes.

The owner of the middleware should be able to create accounts, provide identity credentials, and define access rights to the users of the middleware. Authenticated and authorised users/applications should be able to access live and archival data related to a sensor/device. Applications should be able to upload/publish data to the middleware, provided they are authenticated and authorised. Middleware should be agnostic to specific implementation choices for the components but be able to incorporate emerging tech advances.

The components/layers of the IoT middleware architecture are:

Device layer: This includes sensors, actuators, and other IoT devices that collect and transmit data.

Connectivity layer: This layer ensures seamless communication between IoT devices and the middleware. Common protocols include MQTT, CoAP, HTTP, and Bluetooth.

Edge layer: This processes data closer to the source (IoT devices) to reduce latency and improve real-time decision-making.

Middleware mediates between device layers and IoT data consumers. APIs for interactions with the middleware are based on standard application protocols. API endpoints for accessing the data and/or services should be searchable via an open catalogue and should contain linked metadata about the resources.

Data processing performs data translation, aggregation, and data filtering on incoming data. It is responsible for real-time decision-making at the edge. The database needs to support high-speed reads and writes with sub-millisecond latency.

IoT data stream normalises the data to a common format and sends it to enterprise systems. Cloud services provide scalable storage, computing, and networking resources to support IoT applications. Data analytics uses advanced analytics and machine learning capabilities to derive insights from IoT data.

IoT middleware supports authentication of users, organisations, applications and devices. It assists functionalities like certificates, password credentials, API keys, tokens, etc. It also supports single sign-ons, time-based credentials, application authentication (via signatures), and device authentication (via certificates).

Middleware manages logging of system debugging and auditing details. It helps to track the status of the various services, APIs, etc, and administer them.

Key open source IoT middleware platforms

IoT middleware is categorised as:

  • Application-centric
  • Platform-centric
  • Industry-specific

Here are some of the top open source middleware platforms for IoT based applications.

Kaa: This platform-centric middleware manages an unlimited number of connected devices with cross-device interoperability. It performs real-time device monitoring, remote device provisioning and configuration, and collection and analysis of sensor data.

This microservices-based portable and highly available IoT platform supports on-premises, public cloud and hybrid models of deployment.

Kaa is built on open components like Kafka, Cassandra, MongoDB, Redis, NATS, Spring, React, etc.

SiteWhere: This platform-centric middleware provides ingestion, storage, processing, and integration of device data. It supports multi-tenancy, MQTT, AMQP, Stomp, CoAP and WebSocket. Built on open source technology stacks like MongoDB, Eclipse Californium, InfluxDB, and HBas, it seamlessly integrates with Android, iOS, and multiple SDKs.

IoTSyS: IoTSyS is platform-centric and industry-specific middleware that uses IPv6 for non-IP IoT devices/systems. It provides interoperable web technologies for sensors and actuator networks, and is used in smart city/smart grid projects.

DeviceHive: This cloud-agnostic, microservices-based platform-centric middleware is used for device connectivity and management, and can connect to any device via MQTT, REST or WebSocket.

It supports Big Data solutions like Elasticsearch, Apache Spark, Cassandra and Kafka for real-time and batch processing.

EclipseIoT (Kura): This platform provides device connectivity, data transformation, and business logic with intelligent routing, edge processing/analytics and real-time decisions.

Zetta: This application-centric middleware is a service-oriented open source IoT platform built on Node.js. It can run on cloud platforms like Heroku to create geo-distributed networks and stream data into machine analytics like Splunk.

Node-RED: This is a visual programming tool that simplifies the creation of IoT applications.

MainFlux: This application-centric middleware provides solutions based on the cloud. Containerised by Docker and orchestrated with Kubernetes, its architecture is flexible and allows seamless integration with enterprise systems like ERP, BI and CRM. It can also integrate with databases, analytics, back-end systems and cloud services easily. It supports REST, MQTT, WebSocket and CoAP.

DSA: Distributed Services Architecture (DSA) facilitates decentralised device intercommunication, allowing protocol translation and data integration to and from third party data sources.

OpenRemote: This application-centric middleware is used to connect any device regardless of vendor or protocol to create meaningful connections by converting data points into smart applications.

OpenIoT: This is an application-centric open source middleware for pulling information from sensors. It acts as sensing-as-a-service for deploying and providing services in a cloud environment.

ThingsBoard: This is an open source IoT platform for data collection, processing, data visualisation and device management. It supports IoT protocols like MQTT, CoAP and HTTP with on-premises and cloud deployment. It is horizontally scalable and stores data in Cassandra DB, HSQLDB and PostgreSQL.

NATS: Developed as microservices architecture, NATS.io is a simple, secure, and high-performance open source messaging system for cloud native solutions.

Benefits of open source IoT middleware

Open source IoT middleware scores over proprietary middleware in many ways.

  • It is easy to upgrade to new technologies with open source middleware.
  • This middleware has the ability to connect with upcoming device protocols and backend applications.
  • Open source middleware adoption lowers overall software cost.
  • Microservices-based architecture, built using open source technologies, results in high-performance, scalability, and fault tolerance.
  • It provides multi-protocol support and is hardware-agnostic.
  • It offers the flexibility to work with different cloud services providers.

Middleware is necessary for managing heterogeneous devices in the IoT network. Since several IoT middleware are available in the market, selecting the right one is important. To do that, we must analyse the business problem and arrive at the solution. We must then break the solution into services and understand the middleware needs of these. This will help us to narrow down the middleware choices.


Disclaimer: The views expressed in this article are that of the authors. Tricon Solutions and Albertsons do not subscribe to the substance, veracity or truthfulness of this opinion.

Previous articleSocket Programming In Python
Next articleHow Open Source Enhances IoT Security
The author is an Enterprise Architect in BTIS, Enterprise Architecture Division of HCL Technologies Ltd.  Has 28 Years of experience in architecture and design, which includes Digital Transformation and Enterprise Architecture with key focus on IT Strategy, Application Portfolio Rationalization, Application Modernization, Cloud Migration, M&A, Business Process Management, Cloud Native Architectures, Architecture Assurance, Connected Intelligence, Trust, and Realization. Brings a global perspective through his experience of working in large, cross-cultural organizations, and geographies such as US, Europe, UK, and APAC.
The author is principal enterprise architect at Albertsons Companies. He has more than 25 years of experience in the IT domain.