Java in the Palm of your Hand - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

Java in the Palm of your Hand

Description:

Hardware support (e.g. ARM Jazelle, Zucotto XPRESSOcore 100) ... More resources (CPU, memory) - Moore's law is also valid here! ... – PowerPoint PPT presentation

Number of Views:66
Avg rating:3.0/5.0
Slides: 25
Provided by: jesperz
Category:
Tags: hand | java | jazelle | moore | palm

less

Transcript and Presenter's Notes

Title: Java in the Palm of your Hand


1
Java in the Palm of your Hand
  • 29. April 2002
  • An overview of the Java 2ME platform and its
    future development
  • By Jesper Zuschlag

2
About 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

3
A 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

4
The 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)

5
The 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!

6
Java - 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?

7
Java 2 Micro Edition - 1
8
Java 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

9
But 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

10
Configurations
  • 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!

11
Connected 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

12
Connected 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

13
Profiles
  • 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

14
Mobile 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/

15
MIDP 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

16
Other 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)

17
Industry 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)

18
Industry 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

19
Java 2ME supporting devices
20
Java 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)

21
Java 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

22
Why 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

23
The 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

24
The 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!
Write a Comment
User Comments (0)
About PowerShow.com