Open source and open standards
Open source software can be downloaded for little or no cost and it can be used in myriad ways. The Open Source Initiative (OSI) is a non-profit corporation whose goal is to promote commercial usage and it maintains and promotes the open source definition. To be OSI certified, the software must be distributed under a license that guarantees the right to read, redistribute, and modify the software. The source code is made available for modification.
The fact that it is free does not imply that the software cannot be employed to create and maintain robust IoT solutions having all the functionality associated with those of mainstream vendors, many of whom employ open source standards like MQTT and Docker. However, an equally important benefit comes from the fact that open source software and standards are created and enhanced by a community of developers who share their experience and who respond to queries via forums and virtual meetings.
MQTT (Message Queue Telemetry Transport) is a lightweight communications protocol as well as a heavyweight connectivity technology that allows IM-type messages and files to be exchanged. Hospitals employ MQTT to communicate with pacemakers and other devices. Docker is a tool that makes it easier to create, deploy, and run applications by using containers, which enable developers to package up an application with all its parts. Anyone can contribute to Docker and extend it if additional features are needed.
ThingsBoard and Mainflux are typical examples of the way that open source software can be used to create commercial products.
ThingsBoard is a 100% open source solution that enables device connectivity via industry standard IoT protocols and it supports both cloud and on-premises deployments. Devices and other assets are provisioned, monitored and controlled using service-side APIs and a rules engine processes incoming device data with rule chains based on entity attributes or message content. Being open source allows it to be used commercial products for free.
Mainflux is a secure, scalable, open-source IoT cloud platform. It is written in Go, which is an open source programing language, and deployed in Docker. It functions as a software infrastructure and set of microservices for development of the IoT solutions and deployment of intelligent products. Each service is self-contained and it implements a single business capability. The platform accepts user, device, and application connections over various network protocols, thereby making a seamless bridge between them. It is used as the IoT middleware for building complex IoT solutions.
Eclipse IoT is an important community comprising a wide range of industry and academic partners who are building a set of open source technology. The IoT Working Group facilitates collaboration between organisations and individuals who share the goal of creating an open IoT. The collaboration focuses on the development, promotion and adoption of open source IoT technology and the members provide a wide range of projects and services built on top of Eclipse IoT technology.
The community has a number of projects that are focused on providing the functionality required for IoT intelligent gateways and cloud platforms. The Cloud platform stack represents the software infrastructure and services required to enable an IoT solution. It typically operates on a cloud infrastructure, e.g. AWS and Microsoft Azure, or inside an enterprise data center. The platform can scale both horizontally, to support the large number of devices connected, as well as vertically to address the variety of IoT solutions.
The open source community does not employ flashy web sites or make extravagant claims. The content is solid and in the case of Eclipse IoT, the information is comprehensive, vendor-neutral and not heavy techie. Obviously the sites target developers, but visits by IT and other managers should result in an informed, objective take on what can be realised in house and when company resources are not up to the task.