Title: A r o m a S o f t
1A r o m a S o f t
The Embedded JavaTM Platform Experts
A r o m a S o f t
2Java 101
3What is Java?
- As a language ...
- Object oriented programming language
- Elements from C, C and other languages
- Highly-tuned for the internet environment
- As a platform ...
- Write once and run anywhere
- Architecture neutral
- Highly-portable
4Java Language
- Concurrency like Mesa
- Exceptions like Modula-3
- Dynamic linking of new code like Lisp
- Interface definitions like Object C
- Automatic storage management like Lisp
- Ordinary statements from C
5Java Platform
Java Application Programs
Java Class Libraries
Java Virtual Machine
Hardware Platform
6Java Virtual Machine
7So what?
- Common API ABI
- Portable across different hardware
- Availability of software engineers (2.5 million
Java programmers) - After market software / post issuance
- Less code, less time and less effort
- Development environment independent
- Highly-tuned for the internet environment
- Built-in security Secure from downloaded errant
code - Lightweight distributed No all-or-nothing
monster downloads - Being ready for massively interconnected world -
Ubiquitous Computing Era
8Isnt Java memory hog?
E-mail
E-mail
PIM
PIM
Internet Browser
Internet Browser
JVM (For running Java Applets and Java Scripts)
Java Platform (kernel subsystems JVM Java
Class Libraries)
Traditional Platform (kernel subsystems)
Native Code
Java Code
9Performance?
The art of making tradeoffs
10Ubiquitous Computing
11Java 2 The UC Fitness
Java Classes
Java Classes
Smart Card Profile
HotSpot
JVM
CVM
KVM
Card VM
Servers Workstations PCs Thin
Clients Battery Powered Card
J2EE
J2SE
J2ME (Java 2 Micro Edition)
12J2ME Configurations Profiles
Screen Phone Profile
Car Profile
TV Profile
Mobile Information Device Profile
DoCoMo Java Profile
Kittyhawk Profile
OEM Extensions
OEM Extensions
CDC Foundation Classes
CLDC Core Classes
JVM / CVM
KVM
- 32bit and up processor core
- 75MHz and up processing power
- 4MB 16MB Non-volatile memory
- 4MB 32MB Volatile memory
- 16, 32bit processor core
- 16MHz and up processing power
- 2MB 4MB Non-volatile memory
- 256KB 1MB Volatile memory
13J2ME Specification Nest
CLDC Core Classes
JVM / CVM
KVM
14Capability Features
Core APIs (Must be present in all platforms)
Features
Capability
15Forces driving adoption of Java
- Increase in device complexity and functionality
- Demand for convenient internet access
- Decreasing price of memory and processor power
- Large pool of Java developers
- Capitalizing on third party software
- Reusing code across different hardware
Source VDC, 1999
16Future prospects of Java
- Shipment of Java enabled embedded devices will
increase by 114 CAGR, while the traditional
devices increase by 43 CAGR.
- In consumer electronics, mobile phones and
set-top boxes will be the leaders in Java
adoption.
- Service providers will play an increasingly
important role from the end-user perspective for
the industrys progression towards after market
and remote software upgrades.
Source VDC, 1999
17 and the industry says
51 OF COMPANIES SAY JAVA IS E-BUSINESS
PROGRAMMING LANGUAGE OF CHOICE
Cutter Consortium, 1999
"We look at any application in terms of
robustness and scalability. Java technology has a
proven record at Schwab on both these counts.
That is the first reason we chose Java
technology. If wireless takes off, we want
something stable that will scale easily. And
second, as new applications come along, it will
be easier to expose the Java technology to new
interfaces."
Charles Schwab, 2000
18Java in Wireless Services
- Committed
- LG TeleCom
- NTT DoCoMo
- SK Telecom
- (Non Sun Authorized)
- Trial Deployment Now
- ATT Wireless
- Cingular
- Sprint PCS
- Verizon
- Trial Deployment
- in Summer 2001
- One2one (UK)
- Vodafone (UK)
- Omnitel (Italy)
- Telefonica (Spain)
- Planning
- FarEaston (Taiwan)
- Smartone (Hong Kong)
19Handset Vendors Committed to Deploying Java
- Nokia
- Motorola
- Siemens
- SONY
- Samsung
- Mitsubishi
- Fujitsu
- Matsushita
- NEC
20CLDC
21CLDC Connected Limited Device Configuration
- What it is
- Defines Virtual Machine specification for KVM
- Defines Core Class Libraries to be deployed
across all devices with KVM - Defines input and output
- Defines networking
- Defines security model
- Defines internationalization
- Application life cycle management
- What its NOT
- Application model
- User interface
- Event handling
22Why CLDC?
- If the label says One size fits all, it fits no
one. - Ed Murphy
- Incremental deployment the definition of the
word Limited in CLDC shifts with particular
application and technology innovation
23KVM QA (1)
- GC? ????? ???? ??
- Mark Sweep GC
- 2 pass operation
- Scan the memory and mark the objects to discard
- Sweep the memory, discarding marked objects
- GC kicks in on first failure to allocate memory
for application object
24KVM QA (2)
- ?? ?? ??? ? ?? ???? ??
- ?? ?30KB (JAR File)
- Decompress??? Heap? ???? ? 45KB
- ? ??? ??? ??? ???? ???? ??
25KVM QA (3)
- ?? ???? ??? ?? ? ??? ??? ? ? ?? ??
- ???? ??? ?? Data? ?? ??
- ???? ??? ?? ???? JTAG? ?? ??? ??
26KVM QA (4)
- ???? ??? ??? ?? ??
- ???? Object ?? ??
- ??? ? Primitive Data Type ?? ??