Optimize with a SATA RAID Storage Solution
Range of capacities as low as $1250 per TB. Ideal if you currently rely on servers/disks/JBODs
Page 3 of 7
But even more than in desktop applications, embedded software is composed of relatively few types of constructs. The basic jobs involved in an embedded system aren't that numerous, and that makes embedded systems ideal candidates for object-oriented languages.
Embedded software also has to perform correctly. Anything from the proper shade of brown on your morning toast to the lives of a planeload of passengers may be riding on the software. By their nature, rigidly object-oriented languages like Java are easier to test than non-object languages like assembly, or C++, which supports object-oriented methodology but also permits programmers to write code that is not actually object-oriented.
The idea of a distributed, object-oriented language for embedded applications makes a lot of sense. Indeed, many companies are rushing to deliver products using Java or tools that can be used to write such products.
For example, several of the makers of real-time operating systems (RTOSs), like Wind River Systems, Microware, Integrated Solutions Inc., and Microtec, are adding Java capability to their systems. Because of the limitations of Java (see below) these RTOSs aren't being rewritten in Java, but JVMs are being grafted onto them so they can run applets. Microware's effort includes adding Spyglass' Web Technology Kit (WTK) to its OS-9 operating system for embedded applications. The result is an embedded operating system with a JVM and a very compact Web browser that can act as a server as well as a client.
Other embedded and control tools for Java have been announced or are appearing. ObjectAutomation Inc., a Santa Ana, CA, maker of industrial control software, has announced a real-time Java-based control engine for Microsoft Windows NT and Windows CE. The product will use VenturCom's RTX 4.1 RTOS and the PERC virtual machine from NewMonics Inc. of Ames, IA. (See the discussion of real-time Java below.) Several companies specializing in embedded software development, including Software Research Inc. and Wind River Systems (maker of the Tornado development system), have added Java support to their debuggers.
Applications also are starting to appear -- both those written entirely in Java, such as Forge Software Corp.'s Java Manufacturing Interface, a Java-based front end for interfacing with legacy and client/server manufacturing applications, and HMS Software Inc.'s Shop Floor Control and Data Collection, which tracks assemblies and components on the shop floor. Other companies are adding Java capability to their products. For example, SoftPLC, a Houston company that makes PC-based replacements for process controllers, has added to its software the ability to create additional instructions with Java.
In general, Java is more likely to be found in higher-end embedded systems, handling things like user interfaces and communications over a network. This high-end focus exists primarily because the user interfaces, communications over networks, and the like are where the development momentum is in the much larger desktop market. For example, nearly all modern browsers can handle Java code, making it easy to Internet-enable a system with Java. Java also fits best in higher-level embedded systems because Java's disadvantages for embedded systems, such as its resource demands and its lack of built-in real-time capability are less important at these higher levels.