BOSTON Java is becoming the glue for connecting the embedded-device realm with the world of enterprise networks, according to product announcements at the Embedded Systems Conference (ESC) this week.
Among the more radical new products is the SavaJe XE operating system from startup SavaJe Technologies (Boston). SavaJe XE is the first Java 2 Standard Edition (J2SE) operating system that runs directly on a native CPU without needing to run on top of an additional OS. The company introduced the product at the JavaOne conference in June and is revealing a beta version at ESC here this week, with its 1.0 release scheduled for the end of this month. The initial release supports the ARM processor architecture.
SavaJe's decision to support J2SE rather than Java 2 Micro Edition (J2ME), the stripped-down embedded version of Java, has some interesting implications. With its small memory footprint, J2ME has become popular in such devices as cell phones. But SavaJe chief executive officer George Grey argues that J2ME gives up a lot of the key features that J2SE provides.
“A traditional problem of Java is that full Java is too big and too slow to run on small devices,” Grey said. “It runs slow because when you put a JVM [Java Virtual Machine] on top of another OS, you introduce such a huge number of inefficiencies. If you take a different approach and basically design an OS from scratch to run Java really well, you basically get the ability to run full J2SE applications at native performance levels.”
By running directly on the processor, SavaJe XE avoids layers of interfaces through which Java applications typically must travel. Java applications first go through the Java API, through libraries and through a virtual machine then through the same process again in the native OS.
“What SavaJe XE does is essentially remove all of the 'portability' layers, and [it] doesn't need to have a native API,” said Grey. “Effectively we can regard Java as the native API for this platform. We don't have to go and convince developers to write to our platform. They can use any Java development environment they're comfortable with, and when their application is written it will run on this platform. That makes this OS instantly accessible to the 2.5 million developers who can program in J2SE.
“J2SE is the platform for the desktop,” Grey said. Because of the approach the company has taken, SavaJe typically runs 10 to 20 times faster running typical Java applications, he said.
And because SavaJe supports full Java (J2SE) it lets developers use high-end graphics libraries so they can quickly build applications with frames, menus, pop-ups and so forth. It also enables developers to use all the distributed and pervasive computing technologies in Java such as RMI, Jini, JDBC and Corba. Those technologies offer rapid connections to back-end enterprise systems. J2SE also offers the full Java 2 security model. A system can run over a wireless connection, for example, using end-to-end 128-bit encryption, because effectively it is just making a TCP connection.
SavaJe XE includes all of the basic user-oriented functions in a typical OS: a Web browser, e-mail, personal information manager, MP3 player and, of course, the capability to run any off-the-shelf Java program.
At least one other vendor, Switzerland-based Esmertec Inc., also makes a line of Java OSes that runs directly on hardware, but it doesn't offer J2SE support.
“That SavaJe chose to implement the J2SE [is] an interesting choice that makes them kind of unique among Sun [Microsystems Inc.] licensees,” said Kelvin Nilsen, chief technology officer at NewMonics Inc. “NewMonics' Java VM, called Perc, is also compatible with J2SE. However, NewMonics targets the network infrastructure market, while SavaJe is aiming its product use for information appliances.”
Nilsen agrees that almost every experienced Java programmer would rather use J2SE than J2ME. It's more familiar, more powerful; it's got a lot more capabilities. “There's a difficult fragmentation in the market imposed by Sun choosing to craft these multiple platform standards of Java,” said Nilsen.
At this week's conference, NewMonics takes the wraps off Perc version 3.2. Among its new features are a set of VM Management APIs, a command line shell and improvements to its ROMizer linker.
The VM Management APIs provide developers with programmatic access to Perc information and control. Information includes threads, monitors and memory, GC, I/O, timing, and stack sizes. Control includes threads, GC, and timing parameters.
The Perc Shell provides a command line shell into the Perc environment via serial or telnet connections. Developers can view information and control the VM, run classes, set and display environment variables, load and exit class loader contexts, redirect input/output and run background tasks from the command line.
In Perc version 3.2, NewMonics has added a create-stubs option to its ROMizer tool for embedding Java code into ROM chips. The ROMizer static linker requires all classes referenced by the app being “ROMized” to be present, even if they aren't used at run-time. The create-stubs option allows the developer to specify that classes that are not available should be stubbed out.
IBM Corp.'s Embedded Systems Group (Research Triangle Park, N.C.) will show off the fifth major enhancement of VisualAge Micro Edition, a development and deployment solution for building multimodal Java applications and the embedded devices that run them.
Embedded Systems Group project manager Marc R. Erickson said VisualAge Micro Edition Version 1.4:
Part of that improvement in performance, said Erickson, is due to dynamic adaptive Just-in-Time and Ahead-of-Time features, which extend optimized compiled run-time performance to supported X86 and PowerPC-based platforms.
Just as important, he said, are fundamental improvements in the Java community development that is less Sun-dominated and more community based. That process has brought real-time and deterministic improvements to Java VM.