JAVA-BASED REAL-TIME PROGRAMMING
JAVA-BASED REAL-TIME PROGRAMMING
JAVA-BASED REAL-TIME PROGRAMMING
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Preface<br />
This work, which should result in a freely available book, documents how<br />
to carry out safe 1 , flexible 2 , portable 3 and free 4 programming of embedded<br />
systems, such that the software without modifications can run on both small<br />
embedded devices as well as on standard Java platforms (JDK1.4.1 or later).<br />
The approach is motivated by and based on the following insights:<br />
• Efficient development of future software will increasingly be made for<br />
embedded systems with network connections and combined real-time<br />
and desktop-like functions. That requires the safe, flexible, and portable<br />
software techniques.<br />
• The idea of “write once run anywhere” that was formulated for Internetready<br />
software is highly desirable for embedded software. That is, embedded<br />
software must exist in portable form that supports deployment<br />
into specific configurations according to application needs.<br />
• It is most suitable to use an object-oriented and industrially accepted<br />
language that fulfills the requirements on safety and flexibility. Java<br />
is the most available and portable such language, with possibilities for<br />
automatic translation to the Microsoft .NET platform if needed.<br />
• The standard Java platform does not support real-time execution, but it<br />
supports concurrency and real-time properties are open to each implementation.<br />
By providing run-time solutions for real time, together with<br />
compilation to traditional binary code, Java-based real-time would be<br />
very attractable.<br />
1 Software components stay in their so called sandboxes; execution cannot harm unrelated<br />
data or code. Here this is accomplished by using the Java language and it's built-in safety.<br />
2 Execution adopts to the properties of the underlaying runtime system; concurrency<br />
correctness is maintained while real-time performance varies from hard to soft in a flexible<br />
manner according to the properties of the OS, managed by supporting classes.<br />
3 Developed applications run without recompilation on any type of computer to which the<br />
Java platform has been ported, and with recompilation on any type of embedded processor.<br />
A C compiler and a set of native functions is then needed for such embedded processors.<br />
4 Software development, compilation, deployment, and execution should be possible without<br />
any costs (royalties, fees for libraries, etc.) or delays (purchasing, legal matters, etc.)<br />
for licenses (documents, dongles, etc.); for student use and for agile product development.<br />
3