Why Open Source Tools are Popular for Developing an IoT Ecosystem


The technology ecosystem of IoT is complex and includes hardware, connectivity, platforms, middleware, analytics, operating systems, applications and services. Open source technologies are useful in such a scenario.

Enterprises adopting proprietary IoT platforms are now looking at open source as an alternative, recognising the value of an open source community as a hub for innovation and continuous development for IoT. As per IDC, there will be 41.6 billion connected IoT devices, or ‘things’, generating 79.4 zettabytes (ZB) of data in 2025. Sixty-four per cent of the participants in the IDC Global IoT Decision Maker Survey think open source is extremely important in the deployment of IoT. And as per W3.org, 91 per cent of IoT developers use open source software, open hardware or open data in at least one part of their development stack.

We believe that in the coming years, the IoT market will move towards an open source and open standards ecosystem that enables collaborative innovation, and promotes interoperability, flexibility, and modularity.

Drivers for open source adoption in IoT systems
1. Cost: Adoption of the open source technology IoT framework does not involve any money, as it is free to use.

2. Efficiency: Adoption of open source helps developers reduce the development time, and hence the cost.

3. Scalability: Helps in affordable scaling — billions of devices can be supported by using open source technology.

4. Innovation: Building newer applications using open source is permissionless and low risk, which leads to innovation and agility.

5. Open source API: Use of open source APIs for the IoT framework offers a common gateway for different software, hardware and systems to communicate with one another.

6. Libraries: An open source IoT framework offers a wide range of libraries, SDKs and open source hardware like Raspberry Pi and Arduino, ensuring that companies remain on the cutting-edge of technology by using different open sourced tools to customise IoT platforms.

7. Security: Open source software can protect the data of individuals by implementing really strong encryption (SSH, SSL, PGP, etc).

8. Interoperability: Adoption of open source helps in collaboration and interoperability.

Open source IoT ecosystem
Enterprises need to build a modular and flexible IoT solution that is open, interoperable and cost-effective. The open source solution should deliver end-to-end enterprise level IoT needs.
A complete IoT ecosystem requires the following.

  • Hardware: This mainly covers sensors and devices.
  • Connectivity: This is needed for transmitting data to the cloud and receiving commands from it.
  • Software: Helps in analysing the data collected from the sensors and in decision-making.
  • User interface: This is required to address user interactions.
  • Provision and management: This entails managing millions of distributed IoT devices and gateways with added security.
  • Data flow: Here, data flow management is simplified, with intelligence and analytics at the edge.
  • Analytics: This provides a comprehensive, centralised, advanced analytics and data management platform with the ability to build or refine machine learning models and push these to the edge.
  • Security: This includes pre-integrated security and manageability across devices, as well as secure access and authentication for data that is in motion and at rest.
  • Utilisation: This comprises application development and deployment, and integration services.

Figure 1 depicts the open source IoT ecosystem.

Figure 1: Open source IoT ecosystem

Open source development platforms and frameworks
IoT platforms offer the support software that connects everything in an IoT system. They facilitate communication, data flow, device management and the functionality of applications. A few leading open source IoT development platforms for IoT based applications are listed below.

Kaa: Kaa is a flexible, multi-purpose platform for developing end-to-end IoT solutions for connected applications. It provides better communication, control and interoperation capabilities in connected products and smart devices. It is primarily based on flexible microservices and easily adapts to almost any need and application.

Sitewhere: This platform facilitates ingestion, storage, processing and integration of device data. It provides connectivity of devices using different protocols like MQTT, SMQP, STOMP, etc; devices can even be added through self-registration, REST services or in batches. The platform is based on microservices architecture, and is designed for reliability, high throughput, low latency and stability.

DeviceHive: This facilitates the connectivity of devices to the cloud within a short interval of time, i.e., just a few minutes, to allow streaming of data and command traversal. The platform is distributed under the Apache 2.0 licence and is highly scalable via containerisation. It supports Docker and Kubernetes.

Zetta: This API based IoT platform built on Node.js is regarded as a complete toolkit to generate HTTP APIs for devices. Zetta combines REST APIs, WebSockets and reactive programming to build data-intensive and real-time applications.

Thingsboard.io: This is used for data collection, processing, visualisation and device management. It supports all standard IoT protocols like CoAP, MQTT and HTTP, as well as cloud and on-premise deployments.

Other popular open source IoT platforms are DSA, Thinger.io, Mainflux, Thingspeak, etc.

Open source middleware
Adoption of open source middleware enhances interoperability with other enterprise applications because of reuse of recommended software stacks, libraries and components. Open source middleware increases the productivity and quality of applications, speeds up the time to market, and reduces development risks. The following are a few top-of-the-line open source middleware platforms for IoT based applications.

Kaa: This is platform-centric middleware. It manages an unlimited number of connected devices with cross-device interoperability. It performs real-time device monitoring, remote device provisioning and configuration, as well as collection and analysis of sensor data. It supports on-premise, public cloud and hybrid models of deployment.

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

DeviceHive: This cloud-agnostic, microservices based, platform-centric middleware is used for device connectivity and management. It has the ability to connect to any device via MQTT, REST or WebSockets. It supports Big Data solutions like ElasticSearch, Apache Spark, Cassandra and Kafka for real-time and batch processing.

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

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 the cloud environment.

Other popular open source middleware platforms include ThingsBoard, NATS, DSA, MainFlux, OpenIoT, Sitewhere, OpenRemote and EclipseIoT.

Open source security for the IoT ecosystem
Security is the key parameter that needs to be addressed while setting up the IoT system. Security helps to automatically discover IoT devices and analyse their network traffic. IoT security features must be added at the start of the device development process, and included in its hardware and firmware.

Popular open source security tools include Princeton IoT Inspector, Open Web Application Security Project, Mainflux, etc.

Open source databases and analytics
The entire implementation of IoT moves around the idea of data collection and insertion through sensors, and sending control back to the devices. The selection of the right database in various stages of IoT implementation for a given IoT use case is important and is dependent on multiple factors like the extent of enterprise adoption, the nature of the business, etc.

The following are a few top open source databases available for IoT based applications.

MongoDB: This is a powerful, flexible, document-oriented and scalable NoSQL database. It supports features like range queries, sorting, aggregations and geospatial indexes. It also supports JSON to store and transmit information. JSON, being a standard protocol, is a great advantage for both the Web and the database. MongoDB supports a rich query language for read and write operations (CRUD) as well as data aggregation, text search and geospatial queries.

MySQL: This open source relational database management system brings data consistency, scalability, high performance, availability and flexibility to the IoT solution by efficient collection of data from IoT devices. It helps in data transformation through annotation and aggregation, for better analysis.

Redis: This in-memory open source database is a popular choice for IoT solutions. It is widely used for real-time analytics, messaging, caching, and many other use cases. It also helps in edge computing, which involves deep learning, image recognition and other innovative computing requirements.

Cassandra: This is a highly scalable and distributed open source database for managing voluminous amounts of structured data across many commodity servers. It provides availability, linear scale performance, simplicity and easy distribution of data across multiple database servers. It supports strong data consistency across distributed architectures.

Hadoop: This is an open source software platform for distributed storage and distributed processing of very large data sets on computer clusters built from commodity hardware. It helps in driving analytics from all IoT data. It easily ingests data from multiple data sources, and supports both batch as well as real-time data ingest from sensors using tools such as Apache Kafka and Apache Flume. It handles multiple IoT data types, structures, and schemas. It also supports real-time processing and applications on streaming data. Hadoop is a flexible, scalable and secure database.

Other popular open source IoT databases are CrateDB, GridDB, InfluxDB, BigChainDB, etc.

Open source connectivity protocols
IoT protocols are a crucial part of the IoT technology stack. Without them, hardware would be rendered useless as these protocols enable it to exchange data in a structured and meaningful way. IoT primarily exploits standard protocols and networking technologies.
The top five open source connectivity protocols in use today are briefly described below.
CoAP (Constrained Application Protocol): CoAP is an Internet application protocol for constrained devices. It is designed for IoT systems based on HTTP protocols. CoAP makes use of the UDP protocol RESTful architecture. It is used in mobiles and in social network based applications.

MQTT Protocol: This messaging protocol is used for remote monitoring in IoT. Its primary task is to acquire data from many devices and transport it to the IT infrastructure. MQTT connects devices and networks with applications and middleware using a hub-and-spoke architecture. MQTT protocols provide efficient information routing functions to small, cheap, low-memory and power consuming devices in vulnerable and low bandwidth based networks.
XMPP: This is a communication IoT protocol for message-oriented middleware based on the XML language. It enables the real-time exchange of structured yet extensible data between any two or more network entities. XMPP enables messaging applications to attain authentication, access control, and end-to-end encryption.

AMQP: AMQP is an application layer protocol that supports reliable communication via message delivery assurance primitives like ‘at-most once’, ‘at least once’ and ‘exactly once’ delivery. The AMQP protocol consists of a set of components that route and store messages within a broker service. This protocol enables client applications to talk to the broker, and interact with the AMQP model.

Data Distribution Service (DDS): This is used for real-time machine-to-machine communication. It enables scalable, real-time, dependable, high-performance and interoperable data exchange via the publish-subscribe methodology. DDS can be deployed in platforms ranging from low-footprint devices to the cloud, and supports efficient bandwidth usage as well as the agile orchestration of system components.
Other open source connecting protocols are VSCP, STOMP, etc.

Open source infrastructure
The following are some of the key open source cloud platforms.
OpenStack: This is open source software for creating private and public clouds, built and disseminated by a large and democratic community of developers in collaboration with users. OpenStack is mostly deployed as Infrastructure-as-a-Service (IaaS), whereby virtual servers and other resources are made available to customers.

Cloud Foundry: This is an open Platform-as-a-Service (PaaS), which provides a choice of clouds, developer frameworks and application services. Cloud Foundry makes it faster and easier to build, test, deploy and scale applications.

OpenShift: This is Red Hat’s cloud computing PaaS offering. It is an application platform in the cloud, where app developers and teams can build, test, deploy and run their applications.
Cloudify: Cloudify was developed and designed on the principles of openness to power the IT transformation revolution. It enables organisations to design, build and deliver various business applications and network services.

Other open source cloud platforms are WSO2, Cloud Stack, etc.

Open source hardware
Open source hardware consists of physical artifacts of technology designed and offered by the open design movement.

Arduino: This operates through an array of hardware specifications that can be given to interactive electronics. The software of Arduino comes in the form of the Arduino programming language and Integrated Development Environment (IDE).

Raspberry Pi: This inexpensive computer runs Linux, and also provides a set of GPIO (general purpose input/output) pins that allow you to control electronic components for physical computing and explore the Internet of Things (IoT).

mangOH: This industrial grade open source hardware is designed to address common IoT pain points and deliver out-of-the-box IoT applications as prototypes, helping to bring IoT products to the market sooner.

Open source operating systems
Android Things (formerly known as Brillo): This operating system from Google is built on the power of Android for embedded devices. It has access to all the Android APIs, Google services and developer tools.

RIOT (Real-time IoT): This is a real-time operating system, which is based on the micro-kernel architecture for IoT. RIOT has been developed by a consortium of universities in Germany and France.

Zephyr: This is another real-time operating system (RTOS), similar to RIOT, launched by the Linux Foundation and available under the Apache license. It is small, scalable and optimised for resource constrained devices.

Ubuntu Core: Ubuntu Core is based on the Linux OS developed for IoT devices. It is delivered as Linux application packages called Snaps.

In conclusion, open source tools used in IoT enable efficiency in data delivery, and help to manage highly secure, reliable and scalable IoT solutions.

Previous articleDetecting an Attack with Snort is Easy
Next articleHow Blockchains Help the Healthcare Industry
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 a chief enterprise architect in the Wipro Digital division of Wipro. He can be reached at raju.myadam@wipro.com.


Please enter your comment!
Please enter your name here