Title: Java in the Palm of your Hand
1Java in the Palm of your Hand
- 29. April 2002
- An overview of the Java 2ME platform and its
future development - By Jesper Zuschlag
2About the speaker
- M.Sc. in Computer Science and HCI from University
of Copenhagen with a special interest in
implementation of object oriented virtual
machines / run-time compilation - More than 20 years of programming experience
- More than 10 years of working experience in the
field of programming and system development - 4 years of Java experience
3A new era in personal computing
- The mobile market is growing rapidly
- Witnessing the beginning of a new era in personal
computing based on - A convergence of mobile computing (PDA's), mobile
phones, multimedia and Internet technologies - The deployment of 2.5G and 3G mobile technologies
(GPRS, EDGE, UMTS) - his creates the possibilities for a whole new
market of mobile application and services
4The challenge of mobile applications
- Not a single device type like the PC market -
diversity! - Many different incompatible platforms
- Hardware architectures (e.g ARM, MIPS, PowerPC)
- Operating Systems (e.g. Symbian OS, Palm OS,
Linux, QNX, WinCE) - Different form factors / screen sizes (e.g.
Communicators, Palm Pilots, Smart Phones, mobile
phones) - Different input devices (e.g. keyboard, pen,
touch screen, keypad and speech) - Fewer system resources (e.g. processor speed,
memory and storage capacity)
5The requirements of mobile applications
- Platform independence (Service providers do not
want to support multiple platforms) - Secure execution (I do not want virus on my
mobile phone) - Mature and robust technology (I do not want my
mobile phone crashing) - A richer user experience (I want something new!)
- Low memory footprint and processor consumption
(battery power) - Industry is special targeting the mass consumer
market!
6Java - a possible solution?
- A mature and robust platform, language and API
- Platform independence
- Secure execution through verification
- Object-oriented programming paradigm
- Dynamic loading and symbolic linking at runtime
- Automatic memory management
- Multiple vendors (choices!)
- Widespread industry acceptance
- But is it feasible?
7Java 2 Micro Edition - 1
8Java 2 Micro Edition - 2
- Standard Java platform (J2SE) doesn't fit well
- Requires too many resources
- Many standard classes are less relevant on mobile
devices - There is no one-size-fits-all, or no holy
grail! - Introducing the J2ME platform
- J2ME is a collection of building blocks and
frameworks that can be combined to suite a
particular type of devices sharing a common
characteristics. - Builds on the concept of configurations and
profiles - A pragmatic approach to a difficult problem
- Constantly developed to adapt emerging technology
9But isn't Java slow and memory hungry?
- New improved JVM technologies E.g. Project
Monty, CVM, SavaJe XL - Faster interpreters and dynamic compilation on
constraint systems - Better memory allocation garbage collection
- Improved optimisations, e.g. synchronisation,
array-bound check elimination, class-reuse etc. - Hardware support (e.g. ARM Jazelle, Zucotto
XPRESSOcore 100) - And finally Most mobile application is not
number crunching
10Configurations
- Defines minimum elements for a certain type of
devices - A given JVM specification
- A core API (typically a sub set of the J2SE core
API some additional classes) - Existing Configurations
- CLDC - Connected, Limited Device Configuration
(e.g. mobile phones, smart phones and small
PDAs) - CDC - Connected Device Configuration (e.g.
communicators and PDAs) - JavaCard - not actually a part of the J2ME
umbrella!
11Connected Limited Device Configuration (CLDC )
- Smart Phones / mobile phones
- Reduced JVM implementation (e.g. KVM
approximately 80kB) - Low memory consumption (typically 128kB)
- Low CPU consumption (can run on 25MHz 16-bit
CPUs) - No support for JNI support, floating point,
finalization, user-defined class loader,
reflection, thread groups, weak references - Limited error handling (java.lang.Error)
- Included packages
- java.io input and output through data streams
- java.lang fundamental classes
- java.util collections, data and time facilities,
other utilities - javax.microedition.io generic connections classes
12Connected Device Configuration (CDC)
- Full JVM with low resource consumption (E.g. CVM,
Monty) - Standard Java applications
- Very much like a 1.1.8 Standard Java
- java.lang, java.util, java.net, java.io,
java.text, java.security
13Profiles
- Defines the services/abilities of a certain type
of devices as a number of additional APIs and an
execution model - Specifies the configuration of the J2ME platform
that the profile runs on top of - Specifies the classes/methods needed above and
beyond J2ME software for a complete runtime
environment
14Mobile Information Device Profile (MIDP)
- Sandbox execution model with (a lot like Applets
just called MIDlets instead) - MIDlets
- Are executed within a MIDlet container (multiple
MIDlets!) - Are installed from e.g. a network connection
- First a small description file is downloaded (JAD
file) version, size, vendor, jar-url - If accepted by the container the jar-file is
downloaded and installed - Reduced Screen API
- Components API List, TextBox, Alert
- Low level API Canvas
- Try KAWT http//www.trantor.de/kawt/
15MIDP packages
- java.io
- java.lang CLDC, plus an additional exception
- java.util CLDC, plus timer facilities
- javax.microedition.io networking support (based
upon the CLDC framework - javax.microedition.lcdui for user interfaces for
MIDP applications - javax.microedition.rms persistent data storage
- javax.microedition.midlet defines applications
and interactions app/environment - java.util modified
- java.util.jar required if code signing is
included - java.util.zip modified
16Other profiles
- Foundation Profile/Basic Personal
Profile/Personal Profile - PDA Profile (CLDC) (JSR 75)
- Games Profile (CDC/Foundation Profile) (JSR 134)
- 3D Modeling and Rendering, 3D Character
Animation, 2D Rendering and Video Buffer, Game
Marshalling and Networked Communication,
Streaming Media, Sound, Game Controllers,
Hardware Access for Games - RIM Profile (CDC/Foundation Profile) (JSR 66)
- This profile interoperates with J2SE RMI, and
provides Java platformtoJava platform remote
method invocation for Java devices. - MIDP NG (CLDC) (JSR 118)
- USB Profile (JSR 80)
- Bluetooth profile (JSR 82)
17Industry support - 1
- Endorsement from all significant players in the
mobile industry E.g. Nokia, Ericsson, Sony,
Toshiba, NTT DoCoMo, Kenwood, Panasonic, IBM,
Oracle, Siemens, Motorola, Palm, ARM, Symbian,
Psion, Compaq, Sendo (Z100) - Even Redmond needs Java (Aplix JBlend)
- Java support in a wide range of products
- Nokia expect to sell 50 millions Java-enabled
phones in 2002 and 150 millions in 2003 - Symbian has chosen Java as a strategic component
for their Symbian OS. The Symbian (Nokia, Psion,
Sony Ericsson, Motorola, Matsushita (Panasonic)
and Siemens ) partners count for more than 70 of
the global mobile phone market - NTT DoCoMo demands Java support in all devices
for their 3G network (FOMA)
18Industry support - 2
- Strong industry participation in the JCP process.
- More than 350 companies, universities and
individual participating in a open process where
the future development of Java is decided - E.g. the MIDP 2.0 Expert group consist of
- 4thpass, AGEA Corporation, Aplix Corporation,
Aroma Soft Corporation, Baltimore Technologies,
Ciucci, Fabio Cordrey, Glen, Distributed Systems
Technology Centre (DSTC), Eaves, Jon, elata PLC,
Ericsson Inc., Esmertec, Inc., Espial Group,
Inc., France Telecom, Fujitsu Limited, Fung, Wai
Kit Tony, German Aerospace Center (DLR) Institute
for Communications and Navigation (KN-S), Hidden
Mind, Hitachi, Ltd., Hook, David In-Fusio SA,
J-Phone Tokyo, Jain, Myank, Neil Katin, Logica
Mobile Networks, Steve Ma , Mitsubishi Electric
Corp., Mobile Scope AG, Mobilitec Inc, Motorola,
NEC Corporation, Nextel Communications, Nokia,
Nokia Corporation, NTT DoCoMo, Inc., Omnitel, One
2 One Personal Communications Ltd, Openwave
Systems Inc., Orange PCS, PalmSource, Inc.,
Philips, Philips Semiconductor, Ravi Kumar Reddy,
Research In Motion, LTD (RIM), Samsung
Electronics Corporation, Sharp Corporation,
Siemens, Siemens AG, Smart Fusion, Sun
Microsystems, Inc., Symbian Ltd, Telefonica
Moviles Espana, Vaultus, Inc., Veloxsoft,
Inc.Vodafone Global Platform Internet Services,
Vodafone Group Services Ltd, Vodafone UK Ltd.,
Zucotto Wireless
19Java 2ME supporting devices
20Java 2ME supporting devices - 1
- More than 50 Java-enabled devices available today
- Many (gt25) more target for launch during the next
6 months, e.g - Sony Ericsson Z100 and P800
- Nokia 3410, 6310i, 7210, 7560 and 9210i
- Siemens M50
- Sendo Z100
- Most devices supporting CLDC 1.0 / MIDP 1.0
- Some also supports Personal Java / JavaPhone
(e.g. Nokia 92x0 and Sharp Zaurus 5000)
21Java 2ME supporting devices - 2
- Casio C452CA
- Compaq iPAQ H3800
- CorAccess WebTablet 380
- Ericsson ER209i
- Fujitsu F503i, F503iS, PenCentra 200 Web Tablet
- Hand Held Products Dolphin 7400
- Hitachi C451H, C3001H, KO210i
- Humaz DVB-MHP
- Japan Radio R961i
- Kyocera C3002K, 6035
- LG Electronics C-nain 2000, CX-300L,
Cyber-ez-X1, I-Book, P520 - Matsushita/Panasonic P503i, P503iS, P2101V
- Mitsubishi D503i, D503iS, J-DO5
- Motorola T720, V60i, A388, Accompli 009, T280i,
V60i, V66i, A820, T720, i50sx, i55sr, i80s,
i85s, i90c, i95cl, V60i - NEC N503i, N503iS, N2001
- Nokia 3410, 3585, 3590, 6310i, 7210, 7650,
9210, 9290, 9010i - Palm All models
- Psion Series 5mx, Revo/Revo, Series 7,
netBook, netPad - Samsung SCH-X130, SCH-X230, SCH-X250, SCH-X350,
NEXiO S150, SPH-I300
22Why choose Java for my mobile application?
- Is available NOW!
- A robust and mature platform (proven technology
with a fine track record) - Enjoys strong backing of all significant players
in the industry (the de-facto standard for mobile
applications) - A open standard defined through the Java
Community Process (JCP) - Plenty of device out their, many more to be
launched in the next 6 months - A high degree of knowledge transfer from previous
projects - Many high-quality development tools available
- Many Java skilled developers
23The future?
- Its difficult to tell the future
- More functionality/configuration and profiles in
J2ME (e.g. MIDP NG and PDA profile) - Next generation of mobile network (GPRS, EDGE,
UMTS) - Better Java performance
- More resources (CPU, memory) - Moores law is
also valid here! - Better Java implementations (e.g. KJIT and Monty)
- Hardware support for Java
- Threats against Java?
- .NET mobile framework Never under estimate
Microsoft but the mobile companies are not keen
to repeat PC mistake! - Emergence of a common platform
24The 6 Microsoft myths on .NET vs. Java
- .NET / C is not Java
- .NET is designed for compilation / Java for
interpretation - .NET supports multiple languages / Java only Java
- More than 160 languages implemented for JVM
(http//flp.cs.tu-berlin.de/tolk/vmlanguages.html
/) - Compiling .NET executable into Java bytecode
(http//www.halcyonsoft.com/) - .NET supports web services (Microsoft invented
web services) / Java does not - .NET is a open standard endorsed by ECMS Java
is a proprietary Sun technology - Pointers are good!