As long as there are developers working in both the proprietary software and the open source software spaces, the debate about which one is better will continue. Proprietary software is driven by the profit motive whereas open source is driven by the concept of sharing knowledge. In this article, the authors discuss the advantages of using open source architecture in the IoT.
Imagine a world where billions of IP-connected objects are sensing, communicating and sharing information. Imagine these objects regularly collecting data, analysing it and initiating action – unleashing a new wealth of intelligence for planning, management and decision making. This concept is called the Internet of Things (IoT).
The IoT refers to everyday objects that are readable, recognisable, locatable, addressable and/or controllable through the Internet, irrespective of the means of communication (whether RFID, wireless LAN, wide area networks, or others).
Examples of ‘things’ include:
- People
- Locations (of objects)
- Time information (of objects)
- Conditions (of objects)
These ‘things’ of the real world seamlessly integrate into the virtual world, enabling anytime, anywhere connectivity.
The impact of the IoT is being felt across a wide range of industries and applications, including agriculture, medicine, manufacturing, electronics, consumer durables, transportation and energy. Looking at the unprecedented number of connected devices, the pace of change, the rapid innovations, and the wide variety of standards and use cases that the IoT enables, organisations are increasingly looking at open source architectures and technologies. These will drive innovation and accelerate development. The IoT technology ecosystem is typically complex and includes hardware, connectivity, platforms, middleware, analytics, applications and services.
The seven high-level architecture requirements for an IoT based system are:
1. Context: Captures the context at all times, 24 hours a day, 365 days a year
2. Standards: Uses standards based communication protocols between IoT devices and enterprise systems
3. Scalability: Responds to increased load by a decline in performance, not failure; increases capacity proportionally as resources are added
4. Data management: Efficiently manages huge volumes of data
5. Connectivity: Provides high network connectivity for large data payloads and continuous streaming
6. Security: Moves and encrypts information securely even as IoT introduces new risks and vulnerabilities
7. Interoperability: Networks all systems together and ensures interoperability of all data
According to the estimates of several experts, the IoT will consist of around 30 billion objects by 2020.
Organisations that adopted proprietary IoT ‘platforms’ are now finding themselves tied to limited functionality, locked into a particular vendor, and are hence looking at other options. Many of them are now looking at open source software as an alternative, recognising the value of the community as a hub for innovation and the continuous development for IoT.
In the IDC Global IoT Decision Maker Survey, August 2016, 64 per cent of the participants think open source is very or extremely important in their deployment of IoT. According to the World Wide Web Consortium (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.
In the coming years, the IoT market will move towards adopting an open source and open standards ecosystem that enables collaborative innovation, and promotes interoperability, flexibility and modularity.
Why open source makes sense for IoT
Today, IoT promotes the adoption of different open source technologies, standards and protocols that help devices communicate with one another. The following are the drivers that prompt organisations to adopt open source technologies for IoT.
1. Cost: Adoption of open source IoT frameworks involves no costs at all, as these are free for use. This encourages the community and organisations to implement IoT without any hesitation.
2. Innovation: Open source code from the community helps in building newer applications, leading to more innovation and agility. The developers are able to build different products, which will be interoperable across different OSs such as Android, Windows, iOS and Linux.
3. Open APIs: Use of open source APIs for the IoT framework offers a common gateway for different software, hardware and the systems to communicate with one another.
4. 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.
5. Security: Open source software can protect individuals’ data by implementing really strong encryption for the use of the general public (SSH, SSL, PGP, etc), and hence supply the building blocks for mobile security and the protection of data.
6. Interoperability: Adoption of open source solves the problem of interoperability.
Open source IoT architecture
There is a need for organisations to provide a validated, modular, flexible IoT architecture that is built to be open, interoperable and cost effective. The architecture should deliver end-to-end open source IoT that addresses enterprise level IoT needs.
The characteristics of open source IoT architecture are:
- Loosely coupled, modular and secure
- Platform independent
- Scalable, flexible and can be deployed anywhere
- Based on open standards
- Streaming analytics and machine learning
- Open and interoperable on the hybrid cloud
- Application agility and integration
- No vendor lock-in, since there are no rigid architectures or proprietary formats and components
Figure 1 depicts the IoT logical reference architecture as three tiers — edge, platform and enterprise. These tiers process the data flows and control flows based on usage activities across the enterprise systems. They span three networks.
1. Edge: This consists of IoT devices and the IoT gateway. The architectural characteristics of this tier, including its breadth of distribution and location, depend on the specific use cases of the enterprise. It is common for IoT devices to communicate using a relatively short range and specialised proximity network, due to power and processing limitations. The IoT gateway contains a data store for IoT device data, one or more services to analyse data streaming from the IoT devices or from the data store, and control applications. This gateway provides endpoints for device connectivity, facilitating bi-directional communication with the enterprise systems. It also implements edge intelligence with different levels of processing capabilities.
2. Platform: This receives, processes and forwards control commands from the enterprise tier to the edge tier. The platform tier consolidates, processes and analyses data flows from the edge tier, and provides management functions for devices and assets. It also offers non-domain-specific services such as data operations and analytics.
3. Enterprise: This tier receives data flows from the edge and platform tiers, and issues control commands to them. The enterprise tier implements enterprise domain-specific applications and decision support systems, and provides interfaces to end users, including operations.
The architecture enables bi-directional communication with devices via the intelligent-edge IoT gateways. Data is routed through the IoT integration hub for application integration within the enterprise applications and for aggregation into the centralised data management platform for deep analysis and machine learning.
Users of the IoT system include both humans and digital objects. Humans typically interact with the IoT system using smartphones, personal computers, tablets or specialised devices. In all cases, the IoT system provides some form of application that connects the human user with the rest of the IoT system.
The architecture allows:
- Connection, provision, and management of millions of distributed IoT devices and gateways with added security
- Simplification of data flow management with intelligence and analytics at the edge
- Provision of a comprehensive, centralised advanced analytics and data management platform with the ability to build or refine machine learning models and the pushing of these models to the edge
- To put security in the forefront, with pre-integrated security and manageability across devices, access, authentication and applications, as well as data that is in-motion and at-rest
- Utilisation, application development, deployment and integration services
Figure 2 depicts the open source IoT ecosystem.
There are many opportunities for enterprises to use IoT to make business services more efficient and customer-centric. IoT can help enterprises achieve their most important goals by:
- Significantly impacting the customer experience, and delivering a unified product and service experience
- Delivering huge cost savings
- Improving employee productivity
- Improving customer requests and service delivery
- Improving innovation
The open source IoT frameworks achieve efficient delivery and manage highly secure, reliable and scalable IoT solutions.
Without open standards and common protocols, the devices may not be able to speak to one another. While many IoT devices ultimately connect back to the Internet, the methods they use to communicate with one another and with local control hubs are often proprietary or poorly documented.
Open source technology enables permissionless, low-risk innovation that could accelerate the search for new cutting-edge use cases. For big enterprises and startups alike, open source represents the ability to explore new technologies without big, upfront financial commitments, and with fewer concerns over future royalties or intellectual property lawsuits.
Open source is an established reality in the Internet of Things. It is already being used by the vast majority of IoT developers — 90 per cent of them use open source technology at least occasionally, while 60 per cent also contribute to open source projects.
We can find high quality open source alternatives for any type of proprietary tool or technology used by developers. This can be an opportunity or a threat. It is a threat if you have a closed source offering that faces competition from an open source option that’s also free.
Open source represents a giant opportunity for enterprises—a way to gain efficiencies and stimulate innovation by commodifying the non-core, non-differentiating parts of the technology stack, just like standards are.
Acknowledgements
The authors would like to thank Hari Kishan Burle and Raju Alluri of the Global Enterprise Architecture Group of Wipro Technologies for their time and support to bring out this article as part of the Architecture Practice efforts.