Download Overview of Java Micro Edition

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Overview of
Java Micro Edition
Introduction
●
●
●
●
Brief history of the Java platform.
In many ways, today's Java Platform, Micro Edition (JME) is a return
to the technology's origins.
The JME defines a set of APIs and runtime environments targeted at
embedded and consumer devices, such as wireless handhelds,
PDAs, TV set-top boxes, and other devices that lack the resources to
support a full JSE implementation.
The JME platform does not define a new language; it adapts existing
Java technology for handheld and embedded devices. JME maintains
compatibility with JSE wherever feasible. In fact, JME is as much
about removing unnecessary parts of JSE (or JEE) as it is about
defining new classes to address the stricter limitations of small
devices.
JME, JSE, JEE
The three editions of the Java platform
Java Micro Edition
●
●
The JME platform specifically addresses the rapidly growing
space of consumer electronic. The devices can be divided into
two groups:
–
personal, mobile, connected, information devices, such as
cellular phones, pagers, and organizers;
–
shared, fixed, connected, information devices, such as set-top
boxes, Internet TVs, and car entertainment and navigation
systems.
The JME platform defines a set of tools that can be used with
these devices:
–
a Java Virtual Machine (KVM, CVM, etc);
–
API libraries for consumer device application programming;
–
deployment and device configuration tools.
JME Organization
●
Rather than a single, monolithic platform
with a large footprint, JME is a multilayered organization of software bundles
of three types: configurations, profiles, and
optional packages.
–
A configuration provides fundamental
services for a broad category of
devices.
–
A profile supports higher-level services
common to a more specific class of
devices.
–
An optional package adds specialized
services that are useful on devices of
many kinds, but not necessary on all of
them.
JME Configurations
●
●
●
●
●
A configuration defines the basic (lowest common denominator) JME
runtime environment.
This includes the virtual machine and a set of core classes derived
primarily from JSE. Each configuration is geared for a family of
devices with similar capabilities.
Up to now, two configurations have been defined:
–
the Connected, Limited Device Configuration (CLDC);
–
the Connected Device Configuration (CDC).
At the heart of the CLDC implementation is the KVM, a truly minimal and
almost complete Java Virtual Machine, small enough to fit in tens of
kilobytes.
The CDC reference implementation uses the Compact VM (CVM), a JVM
with full JSE 1.3 VM support that is more portable, more efficient, and
smaller than the standard JSE VM. As a full-featured JVM, the CVM
supports almost all of the advanced features of a JSE VM, including lowlevel debugging and native programming interfaces.
Connected, Limited Device
Configuration (CLDC)
Connected Device
Configuration (CDC)
Description
Typically targeted at low-end, resourceconstrained devices with limited
connectivity. At the heart of this
configuration is a VM like the KVM,
with some JSE capabilities removed.
Typically targeted at less restrictive
high-end connected devices. At the
heart of this configuration is a VM
like the CVM, with full JSE
capabilities.
Device
CDC and CLDC
Devices with 16-bit or 32-bit processors,
at least 160KB of non-volatile
(persistent) memory, and at least
32KB of volatile memory (a total of
192KB of memory) and some type of
network connectivity, such as
cellphones, two-way pagers and lowend PDAs.
Devices with 32-bit processors, at least
2MB of total memory, and some type
of network connectivity, such as
high-end PDAs or sophisticated
embedded devices.
CLDC
●
●
●
The Connected, Limited Device Configuration is a minimal JME configuration
that contains a small subset of the standard (JSE) core Java language packages
and classes tailored for the constrained devices. In addition, the CLDC
introduced the new Generic Connection Framework (GCF) package,
javax.microedition.io.
Java packages included in the CLDC
–
java.io
–
java.lang
–
java.lang.ref (CLDC 1.1 only) CDLC subset in support of weak references
–
java.util CDLC subset of J2SE Java utilities classes
–
javax.microedition.io network support based on the Generic Connection
Framework
CDLC subset of core Java programming language classes
The Generic Connection Framework
–
●
CDLC subset of system input and output through data streams
The Generic Connection Framework (javax.microedition.io) was introduced
to support I/O in devices that lack the memory to use the larger java.net and
java.io packages. The GCF is a straightforward hierarchy of interfaces and
classes to create connections (such as HTTP, datagram, or streams) and to
perform I/O.
Enhancements in CLDC 1.1 include introduction of float and double data types,
support for weak references, and other improvements.
CDC
●
The CDC is a superset of the CLDC, it includes all the classes defined by
the CLDC, including any new ones not included in JSE, such as the
Generic Connection Framework.
●
CDC Java packages
–
java.io
CDC subset of system input and output through data streams, serialization, and the file system
–
java.lang
CDC subset of the core Java programming language
–
java.lang.ref
–
java.lang.reflect For obtaining reflective information about classes and objects
–
java.math CDC subset of classes for performing arbitrary-precision integer arithmetic
–
java.net
–
java.security
–
java.security.cert
–
java.text
For handling text, dates, numbers, and messages in a manner independent of native languages
–
java.util
CDC subset of collections, date and time facilities, and internationalization
–
java.util.jar
For reading JAR (Java archive) file format,
–
java.util.zip
CDC subset of classes for reading the standard ZIP file format
–
javax.microedition.io
Supports a limited degree of interaction with the garbage collector
CDC subset of classes for implementing networking applications
CDC subset of classes and interfaces for the security framework
CDC subset of classes and interfaces for parsing and managing certificates
Network support based on the Generic Connection Framework
Profiles
●
●
●
A profile extends a configuration, adding domain-specific
classes to the core set of classes provided by the
configuration.
Profiles provide classes that are geared towards specific
uses of devices and provide functionality missing from the
base configuration - application life-cycle, user interface,
network connections, persistence mechanisms, security
features, and so on.
CLDC-based profiles include the Mobile Information
Device Profile (MIDP) and the Information Module Device
Profile (IMP).
–
●
●
The CLDC in itself is very limited. It provides no
classes for driving the user interface, or for
maintaining information locally in the device, or for
accessing the network. That type of functionality is
provided by the profiles, or by optional packages.
CDC-based profiles include the Foundation Profile (FP),
the Personal Basis Profile (PBP), and the Personal Profile
(PP).
Multiple profiles can exist within the same configuration.
MIDP
●
The Mobile Information Device Profile (MIDP) is the first and most mature JME
profile. MIDP is based on the CLDC and is currently supported by major device
manufacturers such as Motorola, Nokia, SonyEricsson, and RIM, and by carriers like
SprintPCS, Nextel, and NTT DoCoMo. Many independent software vendors also
support MIDP.
●
●
Device requirements for MIDP
–
Display screen-size: 96x54; display depth: 1- bit; pixel shape (aspect ratio):
approximately 1:1;
–
Input one or more of the following user-input mechanisms: one-handed
keyboard, two-handed keyboard, or touch screen;
–
Memory 256 kilobytes of non-volatile memory for the MIDP implementation,
beyond what's required for CLDC; 8 kilobytes of non-volatile memory for
application-created persistent data; 128 kilobytes of volatile memory for the Java
runtime;
–
Networking two-way, wireless, possibly intermittent, with limited bandwidth;
–
Power limited power, typically battery-operated.
IMP: similar to MIDP but without support for graphical user interfaces. To be used
with vending machines and similar.
MIDP 1.0 and 2.0
●
●
●
MIDP 2.0 enhanced version 1.0 quite a bit. Even though the MIDP
specification indicates the use of CLDC 1.0, nothing would preclude
MIDP 2.0 (or 1.0) using CLDC 1.1 as its base.
In addition to the MIDP 1.0 APIs for networking, user interfaces, local
persistence, and MIDlet life-cycle, MIDP 2.0 adds APIs for:
–
networking, including socket (TCP) streams, UDP datagrams,
serial, push-initiated, and secure connections,
–
a security API and policy;
–
APIs for sound and gaming.
MIDP 2.0 also formally includes in the profile specification an update
of the MIDP 1.0 Over the Air (OTA) User Initiated Provisioning
recommendation, which describes how applications are to be
discovered and downloaded over wireless networks.
MIDP
Mobile Information Device Profile Java packages:
–
java.io
MIDP subset of system input and output through data streams;
–
java.lang
MIDP subset of the core Java programming language;
–
java.util
a small subset of utility classes;
–
javax.microedition.io
Networking support using the Generic Connection Framework;
MIDP 2.0 includes new socket, UDP, serial, and secure
connection types, and push functionality;
–
javax.microedition.lcdui
MIDP user interface classes;
–
javax.microedition.lcdui.game
gaming classes such as sprites, game canvas, and
layer manager (2.0 only);
–
javax.microedition.media
the interfaces for controlling (Control) and rendering (Player)
audio - sound classes compatible with the Mobile Media API
specification (2.0 only);
–
javax.microedition.media.control
–
javax.microedition.midlet
the application (MIDlet) interface, its life-cycle classes and its
interactions with the runtime environment, and the application
manager;
–
javax.microedition.pki
public key class for certificates used to authenticate information
for secure connections;
–
javax.microedition.rms
persistence classes for storage and retrieval of data.
sound-control classes (ToneControl and VolumeControl) compatible with the Mobile Media API specification (2.0 only);
Device
Description
CDC-based Core Profiles
Foundation Profile
Personal Basis Profile
Personal Profile
Extends
the
CDC,
adding to it more JSE
classes. This profile
provides
APIs
for
applications running on
small devices that have
some type of network
connection but no user
interface capabilities. It
provides extra security
classes. It acts as a
foundation for building
other profiles.
Extends the CDC and is
built on top of the
Foundation Profile. This
profile
provides
a
lightweight subset of the
AWT
user-interface
classes. It is a subset of
(or upward compatible
with)
the
Personal
Profile
Redefines
the
PersonalJava application
environment as a JME
profile. The Personal
Profile
extends
the
Foundation Profile and is
a
superset
of
the
Personal Basis Profile,
providing
a
more
complete set of the AWT,
including its heavyweight
APIs.
Devices with no user
interface requirements
but with secure network
connectivity needs such
as
"headless"
dedicated, connected,
embedded devices.
Devices that require a
simple user interface
(graphics,
images,
widgets) and secure
network
connectivity
such as automotive
devices,
consumer
devices,
or
simple
appliances.
Devices
that
require
advanced user interface
and
secure
network
connectivity, such as
high-end PDAs, set-top
boxes, and other highend appliances.
Optional packages
●
●
Optional packages are profile extensions: each adds specific
functionality to one or more profiles. When a new API is created to
extend a profile, it first is defined as an optional package. If over time
an optional package earns widespread adoption, it may become part
of one or more profiles.
Most important optional packages:
–
the Java APIs for Bluetooth;
–
the Wireless Messaging API;
–
the Mobile Media API;
–
the RMI Optional Package;
–
the JDBC Optional Package for CDC/Foundation Profile;
–
Web Services for JME;
–
Location API.
Problems
●
●
●
Fragmentation is a major issue
–
ideally, a Java ME application should run on any device;
–
in practice, there are various problems.
Different types of fragmentation:
–
device-level fragmentation (screen sizes, etc.);
–
standards fragmentation;
–
implementation fragmentation;
Efforts to reduce fragmentation.
Java Technology for the Wireless Industry
●
●
Java Technology for the Wireless Industry (JTWI) specification
defines a common architecture and programming interface for
wireless handsets.
JTWI then enforces the following:
–
Minimum Configuration: CLDC 1.0
–
Mandatory Specifications: MIDP 2.0, WMA 1.1
–
Conditionally Required Specification: MMAPI 1.1
Mobile Service Architecture
●
Umbrella specification that
combines number of
existing JSRs and provide
clarifications to JSRs
–
●
to replace JTWI,
reduce fragmentation
Devices started to ship in
2007
–
lots of devices from
major vendors like
SonyEricsson, Nokia,
etc.
Examples of applications (CLDC+MIDP)
●
J2MEMap is a small interface to GoogleMap that allows you to do the
following things:
–
–
–
–
–
Browse the entire GoogleMap database (satellite or map view)
Switch from GoogleMap/Satellite, MSN Virtual Earth Maps, etc.
Zoom in/zoom out
Save your favorite locations
Use an embeeded GPS if present, to be automatically located
Examples of applications (CLDC+MIDP)
●
●
QuickIM is an instant messenger
software compatible with MSN
Messenger for J2ME MIDP 2.0
phones.
Gmail mobile Email client
access the Gmail services.
to
Examples of applications (CLDC+MIDP)
●
●
Games
Remote
Desktop
for
Mobiles allows you to
access
remotely
your
desktop or laptop computer
from Java powered phone
Examples of applications (CDC)
●
Applications for TV set-top-boxes (digital terrestrial TV, Blu-Ray)
Number and competitors
●
●
Numbers:
–
2.5 Billion Java-Enabled Phones
–
3.5 Billion Java Card
–
20 Million Java Set-top Boxes
Competitors (in the mobile phone market):
–
iPhone
–
Android
–
Symbian OS
–
Windows Phone