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.

Sponsored Recommendations

Understanding Thermal Challenges in EV Charging Applications

March 28, 2024
As EVs emerge as the dominant mode of transportation, factors such as battery range and quicker charging rates will play pivotal roles in the global economy.

Board-Mount DC/DC Converters in Medical Applications

March 27, 2024
AC/DC or board-mount DC/DC converters provide power for medical devices. This article explains why isolation might be needed and which safety standards apply.

Use Rugged Multiband Antennas to Solve the Mobile Connectivity Challenge

March 27, 2024
Selecting and using antennas for mobile applications requires attention to electrical, mechanical, and environmental characteristics: TE modules can help.

Out-of-the-box Cellular and Wi-Fi connectivity with AWS IoT ExpressLink

March 27, 2024
This demo shows how to enroll LTE-M and Wi-Fi evaluation boards with AWS IoT Core, set up a Connected Health Solution as well as AWS AT commands and AWS IoT ExpressLink security...

Comments

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