|
| ( 01 Apr 2002 ) |
| By N.S. Manju Nath, Editor |
|
You may recall the initial promise from the creators of Java, that you would be able to write it once and run it everywhere. Despite the hype and high expectations, the reality with Java has been that you can, at best, write it once and run it somewhere. However, this seems to be changing thanks to fast developments in the embedded applications space.
Embedded applications designers have generally shunned Java because it is an interpreted language, which comes with a lot of overhead in terms of memory and speed. The source file you create when compiled gets converted into a bytecode file. When you run the program contained in the bytecode file, the Java interpreter installed on your computer implements the Java Virtual Machine (VM), which takes your bytecode files and translates them into instructions that your CPU can understand.
There are several approaches to overcome this problem. They include just-in-time (JIT) compilers and Java coprocessors. The JIT can compile Java bytecodes directly into native platform code, but requires a large memory to handle the code size and storage. Java coprocessors provide Java capability through hardware, and are typically connected to the I/O bus of the processor. Since I/O activity is important in embedded systems, the coprocessor approach comes at a price—a decrease in system performance. For embedded applications, a Java-enabled µP is perhaps the best solution, where the processor integrates Java support. That is, the processor accelerates Java applications alongside applications running natively. For detailed information on how you can develop embedded applications in Java, see java.sun.com/products/embeddedjava.
Why should Asian designers care? Several standards bodies in market segments such as digital TVs, mobile phones, and automotive multimedia have mandated Java as the language of application. For example, the Home Audio Video Interoperability (HAVi) consortium, formed by leading consumer electronics companies, defines a system architecture for developing applications that run on networked home entertainment devices. HAVi defines a programming interface called HJA, or the HAVi Java APIs.
It specifies a set of system services that form a foundation for building distributed applications. These system services include messaging, events, device discovery, lookup functionality, and configuration of streaming connections.
Implementation of the HAVi software stack is left to each vendor, as long as the implementation is fully compatible with the HAVi specification. The HAVi specification holds many advantages for you as a developer. You can develop home-networking applications easily by using the platform-independent HAVi native API or Java-binding HAVi API. Creating new digital audio/video products that cover a wide cost and functionality spectrum is possible based on HAVi scalability. You can also take advantage of the useful features of IEEE-1394, such as plug-and-play and fast data transfer. Writing compatible applications for devices from other manufacturers could bring in a lot of revenue.
For other creative application ideas, you may want to check out the MexE (Mobile Execution Environment, www.mexeforum.org) that specifies a flexible and secure application environment for 3G mobile phones, incorporating both WAP (Wireless Access Protocol) and Java. Also worth a detailed look is the DVB MHP (Multimedia Home Platform), a consortium of broadcasters and consumer electronics vendors. MHP, which is based on a Java VM, defines an interface between interactive digital applications and the terminals on which these applications execute. Please see www.mhp.org.
The potential uses of Java in embedded applications are staggering. So much so that we may see a revival of the early optimism. It may yet turn out that, with Java, you can write it once and run it almost everywhere.
What do you think? Send me your comments at nsmanjunath@cahners.com.hk.
|
| |
|
|
|
|
| |
|
|
Average Rate:
No rating yet |
| |
| |
|
|
|
|
|
|
|
|
|
|
| |
|
|
| |
|
| 6/1/2009 |
|
| 1/1/2009 |
|
| 18/12/2008 |
|
| |
|
|
|
|
|