Gamelan

 Top navigation
Navigation Links

EarthWeb sites:

 



PersonalJava

Developers working with Java for embedded systems say the first devices using the language in real-time operating systems (RTOSs) will enter the marketplace in 1998 -- but maybe not until the end of the year.

Sun Microsystems recently unveiled its plans for its PersonalJava and EmbeddedJava application programming interfaces (APIs). The PersonalJava specification is out of the gate first. PersonalJava 1.0 is now available to developers working on applications for embedded devices.

In addition, a group of leading RTOS vendors -- including Lucent Technologies, Motorola and Texas Instruments -- recently licensed PersonalJava and EmbeddedJava for use in their embedded system products.

Embedded Java applications running on RTOSs can be optimized for the constraints of small memory footprints and diverse visual displays, according to Sun.

Java offers developers such benefits as: dynamic linking and loading, which enables remote upgrading; the use of bytecode rather than native machine code, which saves on code storage space; and object-oriented functionality, which allows programmers to create code that is modular and multi-purpose.

The Java "toaster" question

In presentations, James Gosling, one of the creators of Java, likes to use his grandmother's toaster as an example of a really reliable consumer device. It seems the "interfaces" on her machine still work perfectly fine after 50 years -- a very high mark to shoot for in attempting to automate devices in order to improve them.

So when will we begin to see Java in the systems controlling reliable real-world products? Developer.com posed this question and others to a group of experts working in the field.

"I would not be surprised to see embedded devices using Java RTOSs within six months," said Madhu Siddalingaiah, a principal at start-up PraxisNet, in Arlington, Va., who specializes in the field. "In cases where graphics and sophisticated user interfaces are not required, a suitable Java runtime could be ported within a month or two."

Another embedded-device specialist confirmed this estimate. Kelvin Nilsen, president of NewMonics, in Ames, Iowa, laid out the timetable in the following way: "I believe we will see working prototypes by January or February of 1998. We will see deployed products by the second quarter of 1998. Some of the first real-world uses are likely to include factory automation products, telecommunication and data communication devices and point-of-sale products."

But other specialists were more cautious in their predictions.

"We will see meaningful Java RTOSs that will work about as well as the current RTOSs using C and C++ do today by the end of 1998," said Jim Ready, chief technology officer at Microtec, in San Jose, Calif., whose RTOS company was one of the recent Java licensees.

"We could see client applications written for hand-helds and smart phones within the next 18 months," stated James McAteer, a senior research analyst at SRI Consulting, in Menlo Park, Calif., who follows the sector. "But it's still at least two to three years away for control applications."

Question of maturity

The experts were also divided on whether Java is mature enough to fulfill the demanding tasks of real-time compilation and memory allocation in embedded devices.

Ready said that the criticism Java has received in this regard "is probably correct as far as hard real-time systems are concerned." He predicted that Java would first be adopted in the "easier systems" (those running less-demanding real-time applications) and that, as the language proved itself, more-demanding "hard system" applications would follow.

"Many of the criticisms of Java today were made of the C language 15 years ago," Siddalingaiah said. "Issues such as performance, memory footprint, interrupt latency and so forth were big back then. Java is a natural progression that will find favor among embedded software developers, just as it has among desktop applications developers."

"It took about 10 years for C++ to evolve into a mainstream development language for embedded apps," added McAteer. "In the same way it will take a while -- perhaps a little less time, given its market monentum -- for Java to become a real standard in the embedded world."

Nilsen took the question as an opportunity to mention his own company's response to this need: "While it is true that Java virtual machines provided by Sun do not support reliable deterministic operation under real-time constraints, NewMonics' PERC product does." PERC is a "clean-room" (independent) implementation of Java.

Personal question

As to the impact of the release of a final spec for PersonalJava and an accompanying style guide for developers, the specialists, once again, disagreed.

"It will mean that embedded software developers are not isolated from the rest of the computing world in terms of networking, graphical user interfaces and other modern technologies," said Siddalingaiah. He said that, historically, embedded software developers have been on their own in a world with few choices, often resulting in proprietary solutions. "Java allows embedded software developers to work with the latest technology as first-class citizens," he added.

"Perhaps this will mean that there will be more uniformity in the embedded Java world, as opposed to the C and C++ environment where the interfaces for the RTOSs are all different," said Ready.

Nilsen simply shrugged off the advance. "I don't think the PersonalJava specification will have much impact on the deeply embedded arena. People working on PDAs [personal digital assistants] and set-top boxes will clearly look at it and give strong consideration to what it offers in terms of standardization benefits. A lot of companies seem to feel that PersonalJava is too large for their embedded programming needs, and we are likely to find that some of these companies will find it necessary to deviate from the published standard in order to achieve acceptable price-to-performance."

"Their was -- and still is -- some danger that the various RTOS vendors would implement their own customized versions of the Java VM to fit in a real-time environment," commented McAteer. "By defining new versions of the VM specifically for the embedded and hand-held arena, Sun and its partners are trying to ensure a consistent implementation across various platforms."

Nilsen added that Java developers in the near future will need to choose which set of Java APIs they want to use for embedded devices in much the same way that traditional developers have to choose whether they want their programs to run under Windows, Mac or Unix.

The bottom line is that we may have to wait for our Java "toasters" a bit longer than promoters of the technology first envisioned.

Links on this story:

The smart set: PersonalJava and EmbeddedJava are finding uses in the operating systems for such devices as smart phones, set-top boxes, game consoles and hand-held computers.
Java: Coming Soon to Phones, TV Set-Tops, Hand-Held Devices ...
Sun Microsystems

Ready analysis: Microtec's Ready has written an insightful look at the more-technical aspects of PersonalJava and EmbeddedJava.
Java is ready, but not for all applications
EETimes

Clean-room implementation 1: "picoPERC is our smallest, fastest version of PERC, targeting applications where memory, networking and other resources are limited," NewMonics' Nilsen stated.
NewMonics Announces picoPERC: A Software Environment for Deeply Embedded Products
NewMonics Inc.

Clean-room implementation 2: A Japanese start-up has developed a compact, Java-like environment, called JV-Lite, for embedded devices in consumer electronics products.
A Lite Java Alternative
EE Times in TechWire

Give them a visit

Give them a visit



HomeAbout UsSearchSubscribeContact UsFAQs
Use of this site is subject to certain Terms & Conditions.
Copyright (c) 1996-1998 EarthWeb, Inc.. All rights reserved. Reproduction in whole or in part in any form or medium without express written permission of EarthWeb is prohibited.

Gamelon File I/O Library

Gamelon® is a registered trademark owned by Menai Corporation and Gamelan is used under license from Menai Corporation by EarthWeb, Inc. Menai Corporation is the maker of Gamelon® cross-platform software for the Internet. The adjacent logo is a trademark of Menai Corporation.