Advertisement
To print: Select File and then Print from your browser's menu
-------------------------------------------------------------- This story was printed from ZDNet Australia. --------------------------------------------------------------
Sun unveils first real-time Java implementation

By Ingrid Marson, ZDNet UK
July 01, 2005
URL: http://www.zdnet.com.au/news/software/soa/Sun-unveils-first-real-time-Java-implementation/0,130061733,139200016,00.htm


The first version of Java for delay-sensitive applications is now available, but one of its chief engineers admits that it's not the 'silver bullet' for real-time systems.

Sun on Tuesday in the US released its first Java platform that offers real-time capabilities. The platform, Java Real-Time System 1.0, implements the Real-time Specification for Java (RTSJ), a blueprint for how Java can be extended to support real-time application programming.

Real-time systems are those where the application logic must meet temporal conditions, resulting in predictable application behaviour.

Devices such as mobile phones often contain a combination of real-time, non real-time, and "soft real-time" software ââ,¬" where logic sometimes meets temporal conditions. These different software types are often run on separate processors and operating systems. This separation results in a distributed computing model within the phone and developers have to write complex code to communicate between the different types of applications, according to Greg Bollella, a distinguished engineer at Sun. This code complexity raises the costs of manufacturing a new phone, he said.

"When a cell phone manufacturer decides to bring out a new model, what do you think their software engineering budget is for that project? The number will probably shock most of you. They say it's 2000 programmer years ââ,¬" that's what the budget is for developing, testing and shipping software in a new phone," said Bollella, speaking at a session on real-time computing at the JavaOne conference on Tuesday.

Mobile phone manufacturers are keen to merge the real and non-real time systems to cut costs and complexity. Bollella claimed that a beta version of the real-time Java implementation has already been used by some device manufacturers, who are happy with the results.

"We are working with some companies and they really like it ââ,¬" they can hide the complexity of processors and have a single development platform where they can do non real-time, soft and hard real-time stuff all in a single node," said Bollella.

Bollella said Java Real-Time System 1.0 is an exciting development within the real-time computing space, but that knowledge about real-time systems within the technology industry is still limited.

"With distributed real-time systems, we're not quite there yet. RTSJ is not the silver bullet, but is a little sharper tool that builders of real-time systems can use," said Bollella.

The real-time Java implementation is "still Java", according to Bollella, but limits developers to using a subset of the Java language. For example, developers must directly manage memory, rather than relying on Java's automatic memory creation and garbage collection. The real-time implementation also properly implements thread scheduling, unlike the standard version of Java, he said.

The JLS [Java Language Specification] says there are 10 thread priorities, but doesn't say that priorities actually work ââ,¬" it says they might work. RTSJ says priorities have to work and here's how they work," said Bollella.

One disadvantage of writing both real-time and non real-time code using the same platform is that the performance of the code is likely to decrease.

"You expect to lose some [performance]. If you take a specification JVM you will get about 15 percent degradation for non-real time code. But, normally in our [the real-time] community we figure about 20 percent throughput loss is acceptable," said Bollella.

Copyright © 2009 CBS Interactive, a CBS Company. All Rights Reserved.
ZDNET is a registered service mark of CBS Interactive. ZDNET Logo is a service mark of CBS Interactive.