The first Java version was made for embedded devices. However, Java has not made a big impact on the embedded space, apart from Java in mobile phones. A trend at JavaOne was that we could see Java in many different types of embedded devices. Could Java finally be used as it was intended?
Among the most interesting new platforms are:
- Real-Time Java (RTJ)
RTJ is a new version of Java that could be used in “hard real-time” systems. The
RTJ specification has been around for a long time, but there have not been any
implementations available. Now Sun has created the first RTJ implementation. A
very important aspect of RTJ is the garbage collector. It was actually invented at
the University of Lund, Sweden!
The Blu-ray technology is a replacement for today’s DVD technology. A Blu-ray
disc has a larger storage capacity than a DVD, thus making it possible to deliver
movies with higher resolutions and better sound quality. A Blu-ray compatible
player must contain a Java platform. This is used for bringing more interactive
content to a Blu-ray disc. One nice feature of the Java platform is the ability to
download new content. For example you could download extra features for the
movie contained on the disc. Of course, there is an alternative to Blu-ray, namely
HD DVD. The interactive content of a HD DVD is authored using the iHD for-
mat. The iHD format is developed by Microsoft & Toshiba.
- Sun SPOT
Researchers at Sun presented the SPOT technology, which stands for Small Pro-
grammable Object Technology. A SPOT device is a simple embedded device with
sensors, such as an accelerometer, and supports wireless communication. It is in-
tended as a simple development platform for experimental embedded projects.
- Java Card
This is the smallest official Java implementation available today. It is used for
so-called smart cards. A new version of Java card has been introduced. The most
talked about new feature is the built-in web server. Just think of it, a credit card
with a web server. It is rather impressive!
Since the conference, the battle between Blu-ray and HD DVD has continued. It
seems that there are more HD DVD devices on the market than Blu-ray devices.
On the other hand, there are more titles available for Blu-ray. The Blu-ray alliance
consists of more companies than HD DVD, including Sun. However, the HD DVD
alliance is backed by Microsoft. Only time will tell the outcome, but it sure is an
interesting battle! Will Java secure a new, big-market segment?
Java for Mobile Devices
A hot topic within the Java ME developer community has been the fragmentation
of Java ME. Multitudes of APIs are available today for Java ME. As it is up to each
device to implement the APIs it sees fit, it could be a problem if you develop ap-
plications targeted for several different devices. The current solution for solving this
problem is to create an “umbrella” specification, which requires the implementer
to support a set of JSR’s. The first of these “umbrella” specifications were the Java
Technology for the Wireless Industry (JTWI). Soon to hit the market will be phones
that support the second generation of “umbrella” specifications. This one is called
Mobile Services Architecture (MSA). Hopefully this new specification will give us
developers a platform with a well-defined set of APIs that work in a similar manner
on all devices.
Most Java applications (MIDlets) for mobile devices adhere to Mobile Informa-
tion Device Profile (MIDP) v 2.0. The new MIDP version (3.0) was presented dur-
ing JavaOne. Not very much was revealed, but here is a list of anticipated new
- Background MIDlets
- Auto-launched MIDlets
- Inter MIDlet communication
- Shared libraries for MIDlets
- Secure RMS stores
A couple of months after JavaOne there is still not very much information available
about MIDP 3.0. The specification should be finished during this year. However,
we can only speculate as to when it will be implemented and available to custom-
ers. A good guess would be at the end of 2007 or maybe early 2008. When it does
become available, it will almost certainly represent a big leap forward for mobile
A tradition at JavaOne is to present a “device of the show”. Here, you get the
chance to buy the device at a reduced introductory price. This year it was a mobile
phone built on the SavaJE platform, called S20. The SavaJE platform is based on
Java, in contrast to other mobile platforms that are built on C or C++. The most
remarkable feature of S20 is its ability to run Swing based applications.
Aspect Oriented Programming (AOP) is now available for Java ME. A very inter-
esting session was given on the subject. Here, it was used to make it simpler to port
MIDlets between different devices and to get more re-usable components. In a way,
it could be viewed as a way to get around device fragmentation. It will be interesting
to watch the development of AOP in Java ME. Will it enjoy the same success as in
A new feature that we can expect to see in future mobile phones is a multitasking
virtual machine (MVM). Several mobile phone vendors as well as Sun themselves
presented ideas surrounding MVM for embedded devices such as mobile phones.
Multitasking will enable end-users to run applications in the background, while still
playing a game in the foreground. This will most likely give the much needed Java
ME application market a small boost. Common for all sessions surrounding MVM
at JavaOne was the discussion of various problems that had been encountered dur-
ing research. The current strategy for most mobile phone vendors is, however, to
wait until MIDP 3.0 has been released and address the complicated multitasking
It seems Java has evolved a great deal when it comes to embedded development.
Java is now available in a lot of different flavours for embedded, each with a different
target platform. This makes it possible to use Java for development on a variety of
platforms, from little smart cards to big servers. We can also see that features such as
AOP and Swing, previously only found in Java SE, have now made it to Java ME.
Johan Karlsson & Kenneth Andersson
Originally published in JayView.