Title: Java%20for%20embedded%20systems
1Java for embedded systems
2Outline
- Embedded systems characteristics
- Application domains
- Java characteristics
- Java in embedded systems
- Future trends
- References
3Embedded systems
- Real-Time systems
- Timing constrains play a critical role in their
design and implementation. - Have dedicated functionality i.e. designed
strictly for a specific set of tasks - Incorporate relatively low-speed microprocessors
and may have a limited amount of memory.
4Embedded systems - Inputs
- Random
- Short-lived external signals
- Processor must interrupt whatever else it is
doing to capture the data, or it will be lost - gt embedded programs are organized as a set of
individual, but cooperating threads of execution.
5Hardware for embedded applications
- Most embedded systems are housed within a
highly-constrained box. - lack of space
- excessive vibration
- gt embedded applications will be structured as a
small section of initialization code that starts
the programs from a ROM disk
6Outline
- Embedded systems characteristics
- Application domains
- Java characteristics
- Java in embedded systems
- Future trends
- References
7Embedded systems applic. domains
- Machine and process control
- Medical instruments
- Data acquisition
- Network components routers and switches
8Less constraints
- Telephony mobile phones, pagers
- PDAs
9Outline
- Embedded systems characteristics
- Application domains
- Java characteristics
- Java in embedded systems
- Future trends
- References
10Characteristics
- Portability platform independence
- Software reuse OO
- Simplicity easy to learn
- Safety and security
- JavaTM Authentication and Authorization Service
(JAAS) - JavaTM Cryptography Extension (JCE)
- Secure Socket Extension (JSSE)
11Some key characteristics
- The key characteristics of Java that make it
attractive as a specification language for
embedded systems are - Built in multithreading and synchronization
- Lack of pointer arithmetic
- Automatic memory management
12Outline
- Embedded systems characteristics
- Application domains
- Java characteristics
- Java in embedded systems
- Future trends
- References
13Technical challenges for embedded environment
14Problems with Desktop Java
- Too big JVM JIT (just-in-time)
compilerlibraries ? 16 MB - Too slow 5 x slower than C code
- No notion of address most often hardware is
accessed referring to a specific address - Security, portability, dynamic behavior not
needed in embedded systems
15Problems with Desktop Java
- Java Garbage Collector - collect unused memory
- JCG dangerous in embedded systems
stop-the-world effect - Memory allocation is not fast enough and not
predictable
16Java embedded alternatives
- Special purpose JVM and core libraries
- JVM with JIT compiler
- Compiled JAVA (instead of interpreted)
17Special purpose JVM and Frameworks
- Suns PersonalJava
- Sun's EmbeddedJava
- JIT compiler
- J2MicroEdition
- JADEs LEAP
18PersonalJava
- Re-implements the full set of Java APIs defined
by the Java application environment - Fits into smaller devices with more limited
memory configurations
19EmbeddedJava - Goals
- Standardize software development for embedded
devices - Integrate a compact EmbeddedJava application
environment directly into new devices - Small adjustable memory footprint lt Configurable
APIs based on application.
20EmbeddedJava - Sun's advanced tools streamline
- JavaFilter - builds a list of the specific fields
and methods used by the Java platform to run the
Java application - JavaCodeCompact - optimizes the code by removing
unused parts of the platform. - JavaDataCompact for linking in auxiliary data
files such as HTML, image, and sound files.
21Sun's EmbeddedJava Technology
22EmbeddedJava Application Environment
23JIT compiler
24JIT vs. interpreted
Slow
25JVM/JIT compiler Products
- Dynamic compilation technique using a JIT
compiler but tradeoff between - performance
- memory consumption
- startup time
- KAFFE JIT- one order of magnitude better
execution time than Sun's JDK VM - SuperCede VM - performs 58 and 91 faster then
JDK - Guava by Softway -better than Sun's JDK 1.0.2 VM
- Microsoft's JVM/JIT- in Internet Explorer PC
Magazine, is the fastest JVM/JIT for the PC
market. - KVM Kilo Virtual Machine small code size
kernel
26Compiled JAVA
- Java ? native machine language
- Seems to be the current trend
- Bye, bye
- portability
- load new classes on-the-fly
- Best real-time behavior
27J2MicroEdition
- A subset of the Java Standard Edition
- Notion of configuration
28J2MicroEdition
- CDLC config.
- 160-512 kB of memory
- 16-32 bit processor
- network connectivity
- J2ME Wireless Toolkit
- debugging capabilities
- emulators
29JADE
- Java Agent DEvelopment Framework
- Software framework fully implemented in Java
language - A middle-ware that simplifies the implementation
of multi-agent systems - Complies with the FIPA specifications
30JADEs LEAP on embedded systems
- Lightweight Extensible Agent Platform
- LEAP is an extension of JADE to enable it to run
on wireless devices and PDA's such as cell phones
and Palms - 02/05/02 - LEAP 2.1 has been released
31LEAP Architecture
32LEAP agent communication
33Target devices for LEAP
34Outline
- Embedded systems characteristics
- Application domains
- Java characteristics
- Java in embedded systems
- Future trends
- References
35Trends
- Some constraints are relaxed more memory,
cheaper CPUs - Real-time functionality - delivered by OS not by
JVM - Tendency to link Java code with OS proprietary
code - Real-time threads parallel to JAVA threads
- New distributed services
36Trends - Real-time threads
37References (1)
- http//java.sun.com/products/embeddedjava
- What are the advantages of Java in embedded
systems? F.Mueller, ECE 2002 - Using Java in Embedded Systems V.Ivanovic, M.
Mahar, Circuit Cellar, 1999. - Java on embedded systems M.Gafen, NSI.com.
- Personal Java Application Environment
Specification v.1.1.2 1999. - Embedded systems conferences http//www.esconline
.com/
38References (2)
- LEAP a FIPA platform for mobile and handheld
devices Frederico B., Agostino P. - Introduction to Java 2 Micro Edition, Jeff
Brown, OCI (Object Computing Inc) - JADE http//sharon.cselt.it/projects/jade/
- LEAP http//leap.crm-paris.com/
- FIPA http//www.fipa.org/