There were two interesting pieces of news this week related to the use of Java in embedded devices to help power the so-called “Internet of Things” (IoT).
The first is the results of a survey carried out by the Eclipse Foundation, (there’s also a slide deck) asking IoT developers about what they’re doing and what technologies they’re using for their projects. Let’s look at some of the key data points from this:
- The top five industries that are being targeted (in order) were:
- IoT platforms
- Home automation
- Industrial automation
- Energy management
- Connected cities
What surprised me a little in this list is home automation being number two. Whilst I like the idea of connected devices in my home (since I’m a hard-core geek) I suspect that the market for these is not as big as other areas on the list. I can see far more value (and ease of deployment) in industrial automation and even connected cities. Let’s wait and see whether home automation really does hit the big time. Only time will tell.
- The top concerns of developers. Again, the top three in order were:
No surprises here. Security, when deploying potentially billions of devices, has to be the biggest concern. Dealing with a wide range of heterogeneous hardware means interoperability and connectivity are going to be right behind security. Of course, all three of those concerns make Java an ideally placed platform on which to develop. Java has had a strong security model right from the very beginning (yes, there were some problems introduced by new features in Java SE 7, but these have been resolved now by diligent work on the part of Oracle’s Java engineering team). Also, right from the very beginning Java has been “Write once, run anywhere”, because of it’s virtual machine architecture. Connectivity at the application level is also easily handled in Java with a comprehensive set of APIs both standard and freely available through open source projects.
- Use of “open” technologies. Over half of the respondents said they use open-source software (58%) and open hardware (52%). Again, Java fits well in this space, since it’s now ten years since the creation of the OpenJDK project. This provides developers with a choice for their Java runtime. If they wish they can take the OpenJDK source code, build it, test it and address support issues themselves. If they want a simpler and quicker solution they can talk to us here at Azul about using the Zulu JRE. We build (and even port) OpenJDK for specific hardware platforms and provide support. Because we use OpenJDK can be more flexible on our licensing scheme so can discuss with the client what’s best for them (per CPU, per board, one off payment, etc.).
- I’ve written about Java’s popularity in the past and how this is measured by different surveys and the Eclipse Foundation one keeps the theme going, reporting that Java is the number one choice for IoT development. This covers all parts of the infrastructure, which is another of Java’s advantages: being able to leverage developers knowledge from embedded sensor development all the way up to the cloud back-end.
The second piece of news appeared on the Fedora mailing list reporting a huge improvement in JDK performance on ARM 32 architecture boards. This links back to the OpenJDK mailing list, which explains that engineers at Azul have recently pushed back changes that implement a port of the C1 compiler to the OpenJDK aarch32 port. Obviously, this makes Java an even better choice for embedded development now that the performance has significantly improved on the increasingly widely used ARM architecture.
Here at Azul, we’re always looking at ways to improve the performance of Java applications by making the JVM perform better. We have a strong commitment to the OpenJDK project and our Zulu binaries for both enterprise and embedded applications provide an excellent deployment option. Why not give it a go today?