67 open source tools and resources for IoT
The idea behind open source has been around for years, long before the movement toward open source software in the late 1980s—even before computers and well before the Internet of Things (IoT) tools on the market today. In the early days of automobiles, George Selden owned the patent on the two-cycle gas engine, which meant no auto manufacturers could deviate from Selden's basic design and requirements without a lawsuit.
Henry Ford put an end to that by successfully challenging Selden's patent and rendering it practically useless. This action also led to the Motor Vehicle Manufacturers Association and "cross-licensing," which allowed US auto manufacturers to develop and share their innovations openly without the threat of litigation between various auto companies. One could say that this approach accelerated the innovation and availability of those new technologies to mainstream consumers.
Fast forward to 2015: we're at a pivotal point in human history as we look to open source solutions to accelerate the innovation and adoption of IoT.
Drivers for open source
There are many drivers behind the popularity of open source:
Consumers want to use a large variety of consumer technology devices, and they don't want to be limited to using devices from one specific vendor (some smartwatches can only be paired with the same vendor's smartphone).
Vendors of IoT devices want to increase the number of technology ecosystems into which their devices can be integrated without major effort.
Application developers want to support a broad range of devices without having to develop vendor-specific code.
Open source solutions allow for this scale, velocity of innovation, and flexibility.
In order to scale to connect and support 50 to 70 billion sensors in the next decade, potentially millions of routers, gateways, and data servers will be required. There's no way to achieve these levels of scale without relying on open source frameworks and platforms within that infrastructure. Any other approach will simply be unaffordable.
Velocity of innovation
Open source technologies support rapid innovation through several advantageous characteristics, allowing for a more natural adoption approach within the enterprise. It's free and generally easy to download, install, and launch. This allows easy exploration of and experimentation with new technologies and enables enterprises to get comfortable with the software on smaller, non-mission-critical projects before any financial commitment is required.
Additionally, open source software enables permissionless innovation, easing concerns over royalties or lawsuits. In particular, open source promotes innovation by integration, where developers create new systems by combining freely available open source components.
Vibrant developer community
Open source software projects tend to promote innovation faster than proprietary solutions because they draw contributions from a large community of developers. The accumulation of this community participation accelerates the delivery of the key features and ecosystem that enterprises need. The result is that open source usually delivers on-target capabilities faster than proprietary alternatives.
The best possible way to have a new technology achieve rapid adoption is by combining open standards with a robust open source implementation. Open source implementations provide an easy adoption path with interoperability, and they reduce the cost of entering the market. Developers can spend less time implementing a standard and focus instead on building software that provides the firm with the product-differentiating features customers value.
A key advantage of open source solutions is that they don't lock your organization in to a proprietary provider. The cost of switching solutions and their vendors is typically high, which holds enterprises and startups hostage to proprietary service providers. Open source mitigates the risk of proprietary solutions being discontinued or no longer supported. How many firms have purchased proprietary software and invested in costly customizations, only to be stuck with an unsupported system or a costly upgrade path?
Industry-wide research on IoT open source technologies
Amyx+McKinsey conducted an industry-wide study on the open source projects related to IoT. Our goal was to obtain a cross-section of open source projects. Our scope was not to reach 100-percent coverage but rather to get a diverse representation of open source IoT projects.
The research methodology consisted of a survey questionnaire, video interviews, and secondary sources from websites, industry reports, and other sources. We found that not all projects open the entire source code for open source collaboration. The degree of "open" varies from project to project. Others offer a "freemium" model, or free open source code with the option of professional services for support and advanced tools.
A chapter on IoT open source, based on Amyx+McKinsey's research findings, will be included in the upcoming The Internet of Things and Cyber-Physical Systems Handbook in late 2015.
Open source projects in study
Note that some projects may fall under one or more categories.
2. Open Interconnect Consortium (OIC)
5. Open Source Hardware Association (OSHWA)
6. Advanced Message Queuing Protocol (AMQP)
7. Constrained Application Protocol (CoAP)
10. Very Simple Control Protocol (VSCP)
Operating systems (OS)
11. ARM mbed
19. Qeo Tinq
23. Chimera IoT
25. Distributed Services Architecture (DSA)
26. Pico Labs (Kynetx open source assigned to Pico Labs)
29. Open Source Internet of Things (OSIOT)
30. prpl Foundation
Node flow editors
42. IoT Toolkit
48. Intel Galileo
In-memory data grids
55. Home Gateway Initiative (HGI)
56. Ninja Blocks
61. The Thing System
63. Open Garden
Business use cases
Consider how businesses can take advantage of the technologies listed above.
For most businesses, the top priority in building an IoT solution is interoperability. These standards and protocols enable systems and devices to find each another and communicate across profiles, such as mobile, wearables, in-vehicle infotainment, TV, cameras, printers, and appliances.
Standards bodies concerned with interoperability include AllSeen Alliance, with their AllJoyn framework, the Open Interconnect Consortium (OIC) and their IoTivity open source software framework, Industrial Internet Consortium, OASIS IoT/ M2M, Eclipse, and others that are working on standardization, reference implementations, and certification programs. The standard plus the implementation reference helps to ensure interoperability among products, regardless of the manufacturer or vertical.
AllSeen Alliance: AllJoyn
The AllSeen Alliance consortium has more than 120 members, including Qualcomm, Microsoft, Panasonic, Sharp, Sony, LG, Cisco, Honeywell, HTC, Lenovo, Haier, TP-LINK, D-Link, ADT, NETGEAR, Symantec, and Verisign.
The AllSeen Alliance describes themselves as "dedicated to enabling and driving the widespread adoption of products, systems, and services that support the Internet of Everything with an open, universal development framework supported by a vibrant ecosystem and thriving technical community. It is the broadest cross-industry consortium to date that advances adoption and innovation in the Internet of Everything in homes and industry and looks to expand to healthcare, education, automotive, and enterprise."
The OIC was founded in July 2014 and has more than 50 members, including Intel, Samsung, Cisco, Acer, Dell, GE, Honeywell, HP, Siemens, Lenovo, and McAfee.
IoTivity from OIC is similar to AllJoyn, but it allows for flexibility to customize for verticals. Its salient capability is in the abstraction transport layer.
The Eclipse Foundation grew out of IBM's Eclipse Project and currently has 228 members, including IBM, Google, Oracle, SAP, Siemens, Texas Instruments, Research in Motion, BMW, Cisco, Dell, Ericsson, HP, Intel, Nokia, and Bosch.
Because a critical market requirement is the ability to scale, firms are looking for platforms that can support large-scale deployments. So, what are some available options for businesses to consider? In order to appreciate these platforms, we need to understand the more popular protocols: MQTT, XMPP, CoAP, and AMQP.
Described by mqtt.org as "a lightweight publish-subscribe messaging transport" designed for resource-constrained devices and low-bandwidth, high-latency, or unreliable networks, Message Queue Telemetry Transport (MQTT) is ideal for connections with remote locations requiring a small code footprint and featuring scarce network bandwidth.
Constrained Application Protocol (CoAP) is an application layer protocol intended for use in resource-constrained Internet devices, such as wireless sensor network nodes, low power sensors, switches, valves, and components controlled or monitored remotely through Internet networks. The key here is resource constrained.
Designed for message-oriented middleware based on XML, Extensible Messaging and Presence Protocol (XMPP) is a communication protocol developed in 1999 by Jabber, an open source community. XMPP has been extended to use in publish-subscribe systems and IoT applications, such as for the smart grid.
An open-standard application layer protocol designed for message-oriented middleware, Advanced Message Queuing Protocol (AMQP) features message orientation, queuing, routing (including point-to-point and publish-and-subscribe), reliability, and security.
SiteWhere enables businesses to create IoT solutions without custom coding. Devices can be assigned to physical or logical assets via pluggable, commercial, off-the-shelf modules. SiteWhere supports numerous protocols, such as MQTT, JSON, AMQP, XMPP, Stomp, JMS, and WebSockets, while providing published APIs. Event data can be stored in the cloud or on local servers. The solution is fault tolerant, scalable, and cost efficient. Communication with devices is bidirectional and asynchronous. This allows SiteWhere to manage solutions that require very large numbers of devices and event cycles. SiteWhere provides interfaces for customized event triggering, searching, and analytics, as well as out-of-the-box support for rapidly integrating customized device data into other platforms.
Xively, acquired by LogMeIn, is most similar to SiteWhere, which is also based on MQTT. SiteWhere claims that their solution is faster to deploy than Xively, with the advantage of deploying in the cloud and the local server.
webinos has 30 project partners across Europe, and its platform consists of an application platform, a connected everything protocol, and a security framework. webinos promotes a "single service for every device" vision, and supports deployments across a wide range of connected devices. Each gateway consists of a complete end-to-end specification of reference hardware, core platform, and example applications. Supported standards and protocols include HTTPS and JSON-RPC.
When we talk about scale and fragmented device environment, nothing poses a greater challenge than smart cities. For those firms looking for a smart city open source toolset, consider these projects for the OS layer.
RIOT is an open source microkernel operating system that is an alternative to Linux OS. Both RIOT and Contiki focus on sensors with very minimal processing and memory, allowing the full OS capability on tiny sensor devices that otherwise wouldn't be able to support Linux or Android because of the lack of power, memory, and processing. RIOT supports multiple chip architectures, including MSP430, ARM7, Cortex-M0, Cortex-M3, Cortex-M4, and others. Both RIOT and Contiki use RPL mesh network protocols.
Contiki specifically supports IPv6, 6loWPAN, Ripple, CoAP, TCP, HTTP, MQTT, DNS, JSON, and other standards. It has highly efficient memory allocation, full IP networking, low power consumption, and dynamic module loading.
OpenRemote is a middleware solution with a focus on home automation, commercial buildings, public spaces, and healthcare. OpenRemote is protocol-agnostic and operates on off-the-shelf hardware. OpenRemote's architecture enables fully autonomous and user-independent intelligent buildings. End user control interfaces are available for iOS, Android, and web-browser-based devices. User interface design, installation management, and configuration can be handled remotely with OpenRemote's cloud-based design tools.
A public space case study is based on the City of Eindhoven's use of OpenRemote. They were able to build a crowd management system with workflow and messaging. Data visualization software was integrated with devices, sensors, and subsystems via a local controller or hub. Using street sensors, the system was able to count the number of people passing, measure city sound levels, and use lighting as an actuator. A UI dashboard was available on mobile devices to view crowd management metrics.
There's a lot of competition in the smart home space, from organizations such as NEST, Icontrol Networks, and People Power. For those companies interested in entering the smart home category, what are some open source projects that can give you a head start? Here are two smart home platforms to consider:
openHAB and Eclipse SmartHome
openHAB offers a framework based on Open Services Gateway Initiative (OSGi). openHAB has a modular architecture that allows contributors to add devices, including legacy protocol-based devices, standards, and component support, which are ideal for connected homes, into a single solution that allows overarching automation rules and uniform user interfaces.
For enterprise use, openHAB core framework can be used within the Eclipse SmartHome project. Any changes to the openHAB code base is shared seamlessly with Eclipse SmartHome. Eclipse SmartHome tries to address the fragmented smart home ecosystem with common interfaces and APIs to integrate connectivity, automation, user interfaces, and persistence.
Home Gateway Initiative (HGI)
HGI is a consortium of major broadband service providers (Deutsche Telekom, Telecom Italia, NTT) and home consumer electronics manufacturers to build a smart home ecosystem. HGI publishes requirements and test plans for home gateways and wireless home networks with the goal of enabling applications, home gateway middleware, and home-network-based devices to connect seamlessly.
Rapid time to benefit
Piecing together various components and services is no simple matter. Yet, your stakeholders demand quick benefits. So, how can organizations achieve this?
On the API side, Zetta, which is built on Node.js, helps link devices with the cloud to create geo-distributed networks. Zetta combines REST APIs, WebSockets, and reactive programming, which is ideal for assembling devices into data-intensive, real-time applications. Zetta powers commercial platforms like Apigee.
On the middleware side, OpenIoT creates an open source middleware for pulling information from sensor clouds, without having to worry about what sensors are used. It explores efficient ways to use and manage cloud environments for IoT entities and resources, such as sensors, actuators, and smart devices, and offers a cloud- and utility-based sensing-as-a-service model via an adaptive middleware framework for deploying and providing services in cloud environments.
OpenIoT has developed use cases for smart agriculture, intelligent manufacturing, urban crowdsensing, smart living, and smart campuses.
Limited network coverage
Depending on the solution you're building, there may be use cases where Wi-Fi and cellular coverage will be limited. What do you do then?
Whether we're talking about live events, remote areas, or agricultural land, a mesh network offers connectivity when there's limited Wi-Fi or cellular service.
Open Garden SDK enables connected devices to connect to the Internet and communicate with other nearby devices using peer-to-peer mesh networking connectivity to share and receive data faster and more efficiently by automatically and actively choosing and switching to the best available network without requiring a user's involvement. Open Garden's wireless mesh networking application is supported on Mac, Android, Windows, and soon iOS. Founders claims that more than five million people are using Open Garden.
Some startups are using Open Garden and a low-power wide-area network (LPWAN) to create an off-the-grid, wireless messaging network that claims to work over a 20-mile radius and support up to 50 kilobits per second over 50 channels.
OpenWSN is an open source project based at UC Berkeley that supports "RPL, a routing protocol designed for low power and wireless sensor networks. The routing layer is responsible for relaying packets across multiple hops separating source and destination nodes. It's divided into a forwarding engine, which uses a routing table to decide which neighbor node is the next hop for that packet, as well as a routing protocol, which populates the routing table."
Utilization-based monetization: Chimera IoT
Another market requirement we hear about often is the ability to monetize based on utility. Companies need the ability to charge accordingly—be it by RPM, acceleration, or the number of times the front loader was raised.
Chimera IoT is building an IoT platform that allows enterprises to build real-time mobile and web applications with usage-based monetization and reconciliation, visible to both the billing company and the user. Its messaging service is based on RabbitMQ, an open source project utilizing AMQP messaging. RabbitMQ supports robust messaging for applications, runs on all major operating systems, and supports many developer platforms.
Chimera IoT will be unveiling their open source project for the server design of their messaging system and the device drivers for sensors on Android devices and Texas Instruments' SimpleLink Bluetooth Smart SensorTag.
High-volume, real-time analytics
High-volume transactions present a big challenge, but what about those companies looking to implement real-time analytics? How can firms tackle these challenges? One solution is an in-memory data grid, which primarily relies on main memory for computer-data storage to access data in memory. The following two projects support enterprise-grade, in-memory computing solutions for high-volume transactions, real-time analytics, and hybrid data processing.
The most widely used Java-based cache, Ehcache is an open source, standards-based, performance enhancing cache that offloads databases and simplifies scalability. Developed and maintained by Terracotta, Encache scales from in-process, with one or more nodes, while mixing in-process/out-of-process configurations.
Hazelcast provides in-memory NoSQL, Java caching, data grid, messaging, application scaling, and clustering.
Based on our evaluation of open source technologies, there's no silver bullet for success in IoT. These projects represent components or building blocks, not a single turnkey solution. Additionally, documentation and support vary greatly from project to project.
Yet the benefits of open source technologies for implementing the IoT far outweigh potential limitations. As a matter of fact, many of today's proprietary IoT solutions are using open source technologies under the hood.
If you work at a blue-chip, publicly traded company, that doesn't mean you have infinite resources to work with. In many cases, your sponsors want quick solutions that demonstrate benefits before they're willing to commit to a full-fledged IT project. If you work for a startup, you need to get up and running fast without legions of developers. In both scenarios, open source enables you to do more with less.
The message is simple: Don't start from scratch. Leverage these incredible open source projects and IoT tools to accelerate your product development.