Introduction Personalized and intelligent information appliances are necessities

  • Slides: 32
Download presentation
Introduction Personalized and intelligent information appliances are necessities in our life today. l Such

Introduction Personalized and intelligent information appliances are necessities in our life today. l Such appliances can be: l l l l cell phones two-way pagers smart cards personal organizers palmtops These appliances tend to be special-purpose, limited -resource, network-connected devices. J 2 ME 1

Environment requirements We need an environment which is adapted for constrained devices - devices

Environment requirements We need an environment which is adapted for constrained devices - devices that have limitations on what they can do when compared to standard desktop or server computers. l The constraints are: l l l extremely limited memory small screen sizes alternative input methods slow processors J 2 ME 2

Java Editions l Different devices have different requirements and different expectations of Java. l

Java Editions l Different devices have different requirements and different expectations of Java. l One platform (solution) cannot address all the market segments (web server, video games etc. ) l Users/developers want flexibility. They want to choose what they want to use and what they do not. J 2 ME 3

Java Editions l The Java 2 Platform is split into three editions. l Each

Java Editions l The Java 2 Platform is split into three editions. l Each edition provides a complete environment for running Java-based applications, including the Java virtual machine (VM) and runtime classes. l The three editions target different kinds of applications running on different kinds of devices. J 2 ME 4

Java Editions Java 2 Platform Java 2 Standard Edition (J 2 SE™) Java 2

Java Editions Java 2 Platform Java 2 Standard Edition (J 2 SE™) Java 2 Enterprise Edition (J 2 EE™) Java 2 Micro Edition (J 2 ME™) Standard desktop & workstation applications Heavy duty server systems Small & memory constrained devices J 2 ME 5

Java Editions Each edition defines different sets of class libraries. l There are thousands

Java Editions Each edition defines different sets of class libraries. l There are thousands of core J 2 SE runtime classes, taking up to 10 -20 megabytes of space. J 2 EE l J 2 ME-based devices have J 2 SE fewer classes. l J 2 ME 6

Configuration l l Minimum platform required for a group of devices J 2 ME

Configuration l l Minimum platform required for a group of devices J 2 ME Libraries Profile l l J 2 ME Profile Addresses specific needs of a certain device family Java Language Java Virtual Machine Configuration l Profiles J 2 ME Core Concepts Optional Packages Host Operating System J 2 ME 7

J 2 ME Core Concepts J 2 ME is based on 3 core concepts:

J 2 ME Core Concepts J 2 ME is based on 3 core concepts: l Configurations l Profiles l Optional packages J 2 ME 8

Configurations l. A configuration is a complete Java runtime environment, consisting of: Java virtual

Configurations l. A configuration is a complete Java runtime environment, consisting of: Java virtual machine (VM) to execute Java bytecode l Native code to interface to the underlying system l Set of core Java runtime classes l l To use a configuration, a device must meet certain minimum requirements. J 2 ME 9

Configurations l The set of core classes is normally quite small and must be

Configurations l The set of core classes is normally quite small and must be enhanced with additional classes supplied by J 2 ME profiles or by configuration implementor. l Configurations do not define any user interface classes. J 2 ME 10

Configurations Configuration CLDC Connected Limited Device Configuration Connected Device Configuration J 2 ME 11

Configurations Configuration CLDC Connected Limited Device Configuration Connected Device Configuration J 2 ME 11

CLDC vs. CDC l CLDC l For very constrained devices l 160 - 512

CLDC vs. CDC l CLDC l For very constrained devices l 160 - 512 KB of total memory l 16 -bit or 32 -bit processor l Low power consumption and often operating with battery power l Connectivity with limited bandwidth l J 2 ME CDC l 2 MB or more memory for Java platform l 32 -bit processor l High bandwidth network connection, most often using TCP/IP 12

CLDC vs. CDC - VM l Features missing in the CLDC VM: l l

CLDC vs. CDC - VM l Features missing in the CLDC VM: l l l l Floating point types Object finalization JNI or reflection Thread groups or daemon threads User Class loaders The CDC supports a complete, fullfeatured Java 2 virtual machine Change in classfile verification preverification J 2 ME 13

The KVM and CVM KVM - Java virtual machines for the CLDC l CVM

The KVM and CVM KVM - Java virtual machines for the CLDC l CVM - Java virtual machines for the CDC l Written specifically to work in the constrained environment of a handheld or embedded device and to be easily ported to different platforms. l CLDC and CDC specifications do not require the use of the KVM or the CVM. l J 2 ME 14

CLDC vs. CDC – J 2 SE Subset l The CLDC includes classes from:

CLDC vs. CDC – J 2 SE Subset l The CLDC includes classes from: l l java. lang java. io java. util The CDC includes 17 packages l Includes more classes even in the shared packages l Only selected classes from each package are included J 2 ME 15

CLDC vs. CDC – J 2 SE Subset J 2 SE CDC J 2

CLDC vs. CDC – J 2 SE Subset J 2 SE CDC J 2 ME CLDC 16

Handling I/O l J 2 SE includes many classes for performing input and output.

Handling I/O l J 2 SE includes many classes for performing input and output. l There a large number of I/O classes and they tend to encapsulate I/O models that are not necessarily found on all devices. l For example, some handheld devices do not have file systems. Socket support is not universal, either. J 2 ME 17

Handling I/O in CLDC The CLDC has define a new set of APIs for

Handling I/O in CLDC The CLDC has define a new set of APIs for I/O called the Generic Connection Framework. l The GCF, part of the new javax. microedition. io package, defines interfaces for the different kinds of I/O that are possible. l The CLDC does not actually define any I/O implementations these are left to the profiles and/or the device vendor to define. l J 2 ME 18

GCF - example import java. io. *; import javax. microedition. io. *; Stream. Connection

GCF - example import java. io. *; import javax. microedition. io. *; Stream. Connection conn = null; Input. Stream is = null; String url = "socket: //somewhere. com: 8909"; try { conn = (Stream. Connection) Connector. open( url ); is = conn. open. Input. Stream(); . . // etc. }… J 2 ME 19

Handling I/O in CDC l Since the CDC is a superset of the CLDC,

Handling I/O in CDC l Since the CDC is a superset of the CLDC, it includes the GCF. l CDC also requires GCF support for two specific connection types: files and datagrams. l The reason: CDC includes the relevant classes from java. io and java. net packages. J 2 ME 20

J 2 ME Core Concepts J 2 ME is based on 3 core concepts:

J 2 ME Core Concepts J 2 ME is based on 3 core concepts: l Configurations l Profiles l Optional packages J 2 ME 21

Profiles l Adds domain-specific classes to a configuration: l l To fill in missing

Profiles l Adds domain-specific classes to a configuration: l l To fill in missing functionality To support specific uses of a device Most profiles define user interface classes for building interactive applications. l To use a profile, the device must meet the minimum requirements of the underlying configuration and of the profile. l J 2 ME 22

Profiles Profile MIDP Mobile Information Device Profile PDAP Personal Digital Assistant Profile FP Foundation

Profiles Profile MIDP Mobile Information Device Profile PDAP Personal Digital Assistant Profile FP Foundation Profile J 2 ME PBP PP Personal Basis Profile Personal Profile 23

MIDP – MID Profile l MIDP is targeted at a class of devices known

MIDP – MID Profile l MIDP is targeted at a class of devices known as mobile information devices (MIDs). l Minimal characteristics of MIDs: Enough memory to run MIDP applications l Display of at least 96 X 56 pixels, either monochrome or color l A keypad, keyboard, or touch screen l Two-way wireless networking capability l J 2 ME 24

MIDP - Specification l There are two versions of the MIDP: l MIDP 1.

MIDP - Specification l There are two versions of the MIDP: l MIDP 1. 0 - released in September 2000. Many devices currently on the market support it. l MIDP 2. 0 - currently in proposed final draft form. No devices yet support it. J 2 ME 25

MIDP - Specification l The MIDP adds APIs to the basic APIs defined by

MIDP - Specification l The MIDP adds APIs to the basic APIs defined by the CLDC. The new features include: l l Support for application lifecycle management similar to the way applets are defined in J 2 SE. Persistent storage of data. HTTP-based network connectivity based on the CLDC's GCF. Simple user interface support, with enough flexibility to build games or business applications. J 2 ME 26

MIDP - Specification l The MIDP specification is silent about a number of things:

MIDP - Specification l The MIDP specification is silent about a number of things: No standard way to interface to the device's phonebook, in order to initiate voice calls. l How MIDP applications are loaded onto a device and how they are activated or deactivated. l J 2 ME 27

MIDP Applications restrictions l Memory is a particularly scarce resource. l The early Motorola

MIDP Applications restrictions l Memory is a particularly scarce resource. l The early Motorola J 2 ME-enabled phones limited the size of an application to 50 K. Some Nokia phones limit them to even less, about 30 K. MIDP 1. 0 applications cannot share classes. l Placing part of the application in a web or application server (as a servlet, typically) that the MIDP application calls is almost a requirement for anything serious. l J 2 ME 28

J 2 ME Core Concepts J 2 ME is based on 3 core concepts:

J 2 ME Core Concepts J 2 ME is based on 3 core concepts: l Configurations l Profiles l Optional packages J 2 ME 29

Optional Packages l Set of APIs in support of additional, common behaviors. l Have

Optional Packages l Set of APIs in support of additional, common behaviors. l Have specific dependencies on a particular configuration and/or one or more profiles. l Examples of optional packages : RMI Optional Package l Bluetooth Optional Package l JDBC Optional Package l J 2 ME 30

What it all means "J 2 ME application" is an ambiguous term. l Configuration,

What it all means "J 2 ME application" is an ambiguous term. l Configuration, profile and optional packages should be chosen. l CDC-based profiles make development simpler due to J 2 SE-like APIs, but don’t suit the low-end devices. l CLDC-based profiles makes the development task harder, especially when trying to shrink the size of the application to run on many of the small devices. l J 2 ME 31

The END! l You can download all the demos JARs from: www. cs. huji.

The END! l You can download all the demos JARs from: www. cs. huji. ac. il/~kerengaz/j 2 me/ l Have Fun!!! J 2 ME 32