Embracing Java for the Internet of Things

Technology executive and enthusiast Mike Milinkovich on Java's role in shaping future enterprise development.


Hardware and software are coming together in new and exciting ways. To get a better sense of this excitement, one need look no further than the nascent explosion of connected devices and technologies. But how do we best cater development for these emerging paradigms, and how do more mature languages, like Java, fit into the equation?

I spoke with Mike Milinkovich, Executive Director at the Eclipse Foundation. Mike and his team are currently leading the charge to promote open source IoT protocols, runtimes, frameworks, and SDKs across a variety of languages, including Java. Eclipse’s IoT stack for Java is already being utilized by such companies as Philips, Samsung, and eQ-3. Here, he talks about Java’s unique standing in this emerging marketplace, and the impact of the open source community on IoT development.

How did you become interested in open source technology?

Mike Milinkovich: Eclipse was really the first open source technology that I was really interested in, largely because the core development team were long-time friends and colleagues of mine. At the time that Eclipse launched in November 2001, I was working at WebGain, which was a direct competitor in the Java tools market. WebGain was an early example of the kind of impact open source was going to have on proprietary business models, as it went out of business in 2002. When the opportunity came along in 2004 to join the Eclipse Foundation, I jumped at the chance.

What makes Java unique in the IoT landscape compared to other programming languages?

Mike Milinkovich: The phrase “Internet of Things” is extremely broad, and can mean a great many different things. I think that it is helpful to differentiate between consumer IoT, and the industrial Internet. In the area of consumer IoT I think that Java has a ton of competition in languages and platforms. In the industrial Internet, I think that Java has a huge opportunity. Think of the industrial Internet as the merger of embedded software development and the enterprise. In that area, Java has a number of key advantages: first is skills – there are lots of Java developers out there, and that is an important factor when selecting technology. Second is maturity and stability – when you have devices which are going to be remotely managed and provisioned for a decade, Java’s stability and care about backwards compatibility become very important. Third is the scale of the Java ecosystem – thousands of companies already base their business on Java, ranging from Gemalto using JavaCard on their SIM cards to the largest of the enterprise software vendors.

Technically speaking, I think that one important advantage that Java has today is OSGi. Now, I know that not everyone is a fan of OSGi, but the device gateways, which make up such an important part of most industrial Internet device gateways, are pretty much what OSGi was originally designed for. The ability to do extensible, services-based architectures, remote management, provisioning and lifecycle management on a device gateway is extremely important, and OSGi provides a mature platform for doing exactly that.

What kind of hardware, devices, and projects are using Eclipse’s IoT Stack for Java?

Mike Milinkovich: Deutsche Telekom’s Qivicon home automation platform is based on Eclipse Smarthome. Qivicon provides a home automation gateway, which can then be integrated with devices from a wide range of vendors, including Philips, Samsung and eQ-3. Solair is an Italian start-up that uses the Eclipse Kura device gateway framework to create IoT solutions deployed to Windows Azure. Eurotech uses Kura in its Everyware Software Framework, which is a device application framework for building device gateways.

MQTT deserves a special mention all on its own. Pretty much all of the companies deploying MQTT-based solutions, or bridges from MQTT to other messaging systems such as AMQP, RabbitMQ, etc. are using the Eclipse Paho MQTT client. The Eclipse Mosquitto MQTT broker is widely used as well.

What kinds of companies or industries are using Eclipse’s IoT Stack for Java?

Mike Milinkovich: Mostly we are seeing adoption by vendors building IoT platforms and solutions. Really what Eclipse IoT provides is a set of building blocks for implementing IoT protocols (CoAP, LWM2M, MQTT), device gateways (Kura, Mihini), and solutions in home and industrial automation (Smarthome, SCADA). So companies are using these components and assembling them into their product.

How did Eclipse start developing frameworks and services for IoT?

Mike Milinkovich: It all started with Eurotech, IBM and Sierra Wireless kicking off what we called at the time the “M2M Industry Working Group” in November 2011. Eurotech and IBM brought MQTT to the table, and launched the Eclipse Paho project. Sierra Wireless contributed their Lua-based Mihini device gateway and Lua development tools for Eclipse. Those contributions kick-started the IoT community at Eclipse, and we’ve been growing ever since. In 2014 the project community really grew, with the addition of new projects like Wakaama (LWM2M client), Leshan (LWM2M server), Californium (CoAP), Mosquitto (MQTT broker), Smarthome, Kura, Krikkit, and OM2M.

How critical is open source to the future development of IoT?

Mike Milinkovich: Open source is absolutely critical to the success of IoT. You do not have to look any further than the success of the Internet and the web itself to understand why. All of the fundamental building blocks of the Internet and the web are free and open source. I am thinking of technologies such as TCP/IP, HTTP, and HTML. But in addition to those, it was the availability of FLOSS technologies such as Linux, the Apache web server, MySQL, and Python/Perl/PHP that allowed the Internet to scale – what was referred to at the time as the LAMP stack. Without the availability of those open source components, we would absolutely not be living in the world we have today.

The IoT is exactly the same. We believe that the next few years will see the creation of a number of free and open source stacks which will be the equivalent of the LAMP stack for common IoT architectural patterns. Those stacks absolutely have to be open source, if for no other reason that no other model will allow them to achieve the deployment scales necessary.

What kind of role will Eclipse play in this future?

Mike Milinkovich: We want Eclipse IoT to be the open source community for the Internet of Things. We have 16 projects already, and more on the way. We have projects in Java, C/C++, Lua, JavaScript and more. What’s even more important is that we have an active and lively community with some great people working hard to make their projects successful. Watching the steady growth in discussion, networking and collaboration is a lot of fun. So, if you’re an IoT open source developer and you either have a project to contribute, or want to contribute to a project, come and join in. A recent example is the tinydtls project, which has just been proposed to join the Eclipse IoT community. This project implements a minimal Datagram Transport Layer Security (DTLS) engine, and they brought their project to Eclipse because it works with the CoAP and LWM2M projects to provide security for IoT solutions. That is a great example of how organic growth in open source evolves towards creating a more complete solution or stack.

Any final thoughts on the IoT landscape, or where you think it’s going?

Mike Milinkovich: Most of what you read about the Internet of Things focuses on the technology, or the scale of the business opportunity (which equates to trillions of dollars). What you don’t hear enough about is the development challenge, and the sheer number of developers who are going to need to be recruited, trained and enabled to make the IoT a reality. Implementing the Internet of Things is going to be a process, not an event. There are major challenges around security, privacy, scalability and interoperability, which are going to have to be worked out over the next decade or so. The Internet of Things is only going to be possible, never mind successful, if we are able to reduce complexity by providing open source software components, SDKs, APIs, and tools to help developers focus on building their solutions.

Editor’s note: If you’re interested in finding out more about how the Eclipse Foundation and other consortiums are doing in the areas of openness, availability, and industry adoption in IoT, check out Ian Skerrett’s presentation on ABCs of IoT consortiums at Solid 2015, June 23-25, 2015 in San Francisco.

This post is part of our ongoing exploration into the integration of open source culture and code.

Public domain image via pixabay.

tags: , , , , , ,