Oracle is advancing the role of Java for IoT (Internet of Things) with the latest releases of its Oracle Java Embedded product portfolio - Oracle Java ME Embedded 3.3 and Oracle Java ME Software Development Kit (SDK) 3.3, a complete client Java runtime and toolkit optimized for microcontrollers and other resource-constrained devices. Oracle is also introducing the Oracle Java Platform Integrator program to provide partners with the ability to customize Oracle Java ME Embedded products to reach different device types and market segments.
The product releases are part of Oracle's larger IoT strategy, Oracle’s Peter Utzschneider, vice president of product management, explained during a recent interview. Starting in 2010, Utzschneider said, Oracle has been repurposing and repositioning some of the technology acquired with Sun Microsystems in order to build a horizontal platform to make Java the number-1 embedded platform.
IoT: The Next Big Wave
“We see IoT as the next big wave that will hit the industry and it is already happening, whatever hockey stick or projection you want to look at. People are talking about tens of billions of devices that will come on line. What is happening is a combination of more powerful devices, at a lower cost, that are also connected. The fact that you can now stick devices in places at a lower cost - and that they can be connected really changes the whole embedded landscape,” said Utzschneider.
Oracle feels strongly about Java in the IoT space for a number of reasons, explains Utzschneider. “Java has a lot to add to the space which is highly fragmented with people developing things all on their own in native code. We can accelerate the development cycle and enable companies to deliver solutions with faster time to market. But more importantly, we can also extend the lifecycle of the devices because Java allows you to easily rev the version of an application and update it over the air so you are not stuck with a version that was on a device when you shipped it. Additionally, from an Oracle perspective, having Java on devices enables developers to push business logic out to the devices, to the edge, so the devices can be smarter.”
According to Utzschneider, one of the concerns with IoT or Machine-to-Machine (M2M) computing is the amount of data that will be coming off of devices. “We think it is critical that we provide the ability for the devices to be smarter about what data they are sending and also be able push processing of data on to gateways and edge devices. We have technology that we introduced last year, our server-based Oracle event processing that we shrunk down and put on a gateway so now you can do event processing or filtering through streams and streams of data flowing off of edge devices in real time and then pick up the relevant bits and send that back to the data center.” For Oracle, which has a heritage on the enterprise side, and is embracing things like big data, fast data, cloud, and engineered systems to support large scale, the new Java ME (Micro Edition) releases represent an extension. “We have a strategy that will connect full end to end infrastructure technology for the industry - and the key part is getting Java out there so the 9 million Java developers worldwide can use their skills for this.”
Oracle's Approach to IoT
As part of Oracle’s approach, said Utzschneider, the company wants to make Java as a runtime available on as many devices as possible and to make it easy for embedded developers as well as Java developers to be able to program applications on very small devices all the way to gateway devices just like they do on servers.
“Last fall we launched Java ME Embedded. Previously, ME, on the very small side,was used primarily in feature phones - the precursor to smart phones. We took that technology, stripped away the telephony feature phone portion of it and released it as a generic binary, and since then we have had a 3.1 release, a 3.2 release and now this 3.3 release.” With every release of Java ME Embedded, additional ports are added, said Utzschneider. Java ME Embedded 3.3 adds additional ports for the low cost and popular Raspberry Pi and for the Keil STM32 F200. “There are millions of Raspberry Pi’s that have been sold and we want developers to use their creativity and develop things in Java. In particular with Java Embedded 3.3 we want them now to have an easy way to play with ME.” The new Keil port is also significant since it adds to the number of industry-standard development boards where Java is available.
In addition, Utzschneider said, the Oracle Java ME Software Development Kit (SDK) 3.3 adds support for common IDEs, including NetBeans and Eclipse “so developers can use the IDE that they are very comfortable with in order to develop in ME."
And the third piece of Oracle’s rollout is the Oracle Java Platform Integrator program to enable partners to do additional ports of Java ME Embedded themselves as well as to enable developers to do extensions or “verticalizations” of the platform,” said Utzschneider. “For example, if somebody had a specific API to healthcare they wanted to implement they could do that through this program. If they wanted to port Java to a chip that we had not yet ported to ourselves or something that was a little more exotic or specific to a niche market, then this program enables them to do that.”
Making it as Easy as Possible for Developers
In total, with the combination of the additional ports, support for the additional IDEs and availability of a rich SDK as well as the launch of a formal Java integration program, “We are looking to make it as easy as possible for people to pick up and use Java ME Embedded as well as make it more broadly adopted to a wider variety of chips,” said Utzschneider. “In the embedded space, unlike x86 on servers or gateways, when you get down to these little devices there are literally thousands of different combinations of chips and boards, so it is important to us to be able to make Java as readily available to as many boards as possible. Both the program and our own porting helps do that.”
More information is available about Oracle Java ME Embedded 3.3, Oracle Java ME Software Development Kit (SDK) 3.3, and the Oracle Java Platform Integrator program.