New Java ME Targets IoT Embedded Devices

Aug. 29, 2013
Oracle has released the latest version of Java ME Embedded. It targets the Internet-of-Things (IoT) and machine-to-machine (M2M) applications.

Oracle has released the latest version of embedded Java, Java ME Embedded 3.3, along with the Jave ME SDK 3.3. Oracle is looking to support applications for the Internet-of-Things (IoT) and machine-to-machine (M2M) solutions. They have even come up with the Java Platform Integrator Program to streamline the engineering work required to target and deploy Java applications across multiple platforms. Remember that “write-once, run everywhere” claim?

Related Articles

Java has made a significant impact in the enterprise and on the desktop. Java underlies many Android applications as well. Java has been utilized in embedded applications but typically where the hardware can readily support it. For example, a system that can run Linux easily supports Java in all its forms.

Getting Java to run on more resource constrained platforms is a challenge but one that has been addressed by Oracle as well as other Java suppliers (see Java Tool Slims Down Embedded Runtime). The migration from 8- and 16-bit micros to 32-bit Arm processors makes Java more interesting. It is possible to target the smaller platforms but the restrictions are many and the results are less than stellar. Besides, there are plenty of low end platforms that have more then enough capability to handle Java.

Oracle has essentially sidelined real time Java that was initially pushed by the Real Time Specification for Java (RTSJ). RTSJ has been around for awhile but did not garner lots of traction (see Real-Time Java Spec Gets Reference Platform). Companies like Atego still have real time Java implementations like Atego aonixPerc that including real-time garbage collection (see Atego Q & A On Real Time Java) but the bulk of embedded Java applications tend not to require real-time support.

This is where Oracle's latest comes into play. Java ME Embedded 3.3 also highlights the importance of the Arm architecture. It now supports everything from the ARMv5 through ARMv7 that matches most of the processors and microcontrollers with an ARM license. Java ME Embedded targets platforms from the low end on up where the low end is represented by platforms like the Raspberry Pi (see Arduino, Raspberry Pi or BeagleBone?) or Keil's STM32 F200 Evaluation Board for ARM (Fig. 1) that is an STmicroelectronics-based Cortex-M processor platform.

Figure 1. Oracle's Java ME Embedded 3.3 will run on platforms like Keil's STM32 F200 Evaluation Board with a 120 MHz Cortex-M3, 1 Mbyte of flash memory and 128 Kbytes of RAM.

The Java ME Embedded binaries and tools are freely available, for internal development and testing purposes only, on the Oracle Technology Network (OTN). This includes support for the Keil board and the Raspberry Pi. The minimum memory requirements are 8 Mbytes of RAM and 5 Mbytes of program memory but that does not leave any space for an application. It also targets Linux 2.6.22 or higher with glibc2.9. The G1 and HotSpot garbage collectors are supported.

Related Articles

Oracle has made a number of improvements and move the ME closer to the SE version. This includes support for a wider array of network and communication devices as well as improving logging and monitoring. Of course, extended lifetime support is part of the package that is important to embedded developers.

The Java ME SDK 3.3 supports the 32- and 64-bit versions of Windows 7. There are plug-ins for the NetBeans and Eclipse IDEs. There is also support for in-field and remote administration and debugging that works off the added logging and monitoring support.

Many embedded C/C++ programmers will wonder why anyone would choose Java for embedded applications but those who have used it think otherwise. It is simply a matter of choosing the right tool for the job and in the IoT connected world it makes sense having a platform that can help reduce programming errors, improve security and has a significant number of frameworks and support. It also makes a good match for M2M applications where Java is being employed on the server side so both programs are written in the same language.

About the Author

William G. Wong | Senior Content Director - Electronic Design and Microwaves & RF

I am Editor of Electronic Design focusing on embedded, software, and systems. As Senior Content Director, I also manage Microwaves & RF and I work with a great team of editors to provide engineers, programmers, developers and technical managers with interesting and useful articles and videos on a regular basis. Check out our free newsletters to see the latest content.

You can send press releases for new products for possible coverage on the website. I am also interested in receiving contributed articles for publishing on our website. Use our template and send to me along with a signed release form. 

Check out my blog, AltEmbedded on Electronic Design, as well as his latest articles on this site that are listed below. 

You can visit my social media via these links:

I earned a Bachelor of Electrical Engineering at the Georgia Institute of Technology and a Masters in Computer Science from Rutgers University. I still do a bit of programming using everything from C and C++ to Rust and Ada/SPARK. I do a bit of PHP programming for Drupal websites. I have posted a few Drupal modules.  

I still get a hand on software and electronic hardware. Some of this can be found on our Kit Close-Up video series. You can also see me on many of our TechXchange Talk videos. I am interested in a range of projects from robotics to artificial intelligence. 

Sponsored Recommendations

Comments

To join the conversation, and become an exclusive member of Electronic Design, create an account today!