There's no single standard to link all devices in the "Internet of things" and there may never be one, but the Eclipse Foundation wants to at least make it easier for developers to code for the standards that are out there.
On Monday, the group released its Open IoT Stack for Java, an open-source development platform for consumer and enterprise IoT systems that supports three major standards. The free download from Eclipse's site combines the fruits of several projects that have been in the works at the open-source community. The stack includes support for the MQTT, CoAP and Lightweight M2M standards, as well as frameworks to build IoT gateways, home automation products and SCADA factory automation systems. It's being announced in conjunction with the JavaOne conference taking place this week in San Francisco.
IoT spans many types of connected devices, including factory-equipment sensors, home appliances and in-vehicle telematics. Machines have been talking to each other for years, but mostly through proprietary systems from the closed worlds of specific industries, where captive audiences and low volume kept prices high and innovation relatively slow. IoT needs to emerge from that era by using more common hardware and software.
Though there are several emerging standards that help to tie together different IoT systems, most developers have had to write their own implementations of those standards, said Ian Skerrett, vice president of marketing at Eclipse. It's much like the early days of the Internet, when many vendors created their own Web servers instead of using Apache, the open-source platform that in time was generally adopted, he said.
To help developers bring out new IoT devices more quickly, teams at Eclipse created implementations that they can pick up and use. Though the Open IoT Stack for Java won't lead directly to broader interoperability, the release of these implementations should help move the industry from proprietary to standard, Skerrett said.
"Open-source implementations of open standards is how you get adoption," he said.
The stack includes implementations of three standards, coming from different projects within Eclipse: Paho, already being used by IBM, is a Java implementation of the client for MQTT, a widely used machine-to-machine connectivity protocol, and Moquette is a Java-based MQTT broker. The Californium project implements CoAP (Constrained Application Protocol), a Web transfer protocol from the Internet Engineering Task Force. Another project, Leshan, brings a Java implementation of Lightweight M2M, an Open Mobile Alliance interface between IoT clients and servers.
Java, which Eclipse says has a developer base of 9 million, is much more widely used than languages such as C that are still common in the IoT world, said Chris Rommel, an analyst at VDC Research. The Open IoT Stack for Java should bring more programmers into the world of IoT development.
"It absolutely ... can help democratize software engineering to make it a little bit more like traditional software development," Rommel said.
But given how vast the IoT universe is becoming, Java won't be the only path to that goal, Rommel said. "It's still not going to be a fit for every project."
Eclipse's Skerrett acknowledged as much and said the organization plans to come out with IoT implementations for other languages, too.