java 2 micro edition (j2me) and the world of java the java 2 platform, micro edition (j2me) provides...

19
Java 2 Micro Edition (J2ME) and the world of java • The Java 2 Platform, Micro Edition (J2ME) provides a flexible environment for applications running on consumer devices, such as mobile phones, PDAs, and TV set-top boxes, as well as a broad range of embedded devices. • J2ME includes Java virtual machines and a set of standard Java APIs • It includes flexible user interfaces, a robust security model, a broad range of built-in network protocols, and extensive support for networked and offline applications 1

Upload: juliet-allen

Post on 12-Jan-2016

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Java 2 Micro Edition (J2ME) and the world of java The Java 2 Platform, Micro Edition (J2ME) provides a flexible environment for applications running on

Java 2 Micro Edition (J2ME) and the world of java

bull The Java 2 Platform Micro Edition (J2ME) provides a flexible environment for applications running on consumer devices such as mobile phones PDAs and TV set-top boxes as well as a broad range of embedded devices

bull J2ME includes Java virtual machines and a set of standard Java APIs

bull It includes flexible user interfaces a robust security model a broad range of built-in network protocols and extensive support for networked and offline applications

1

The J2ME Architecture

bull The J2ME architecture comprises a variety of configurations profiles and optional packages that implementers and developers can choose from

2

3

J2ME Configurations and Profiles

bull Even within J2ME one size does not fit allbull Configurations Minimum libraries and JVMbull Profiles libraries for specific devices or marketsbull J2ME configurations

ndash CLDCndash CDC

bull J2ME profilesbull MIDP

ndash Foundation Bluetooth Personal bull Configurations and profiles defined by the Java

Community ProcessSM

Configurationsbull Configurations comprise

ndash a virtual machinendash a minimal set of class libraries

bull They provide the base functionality for a particular range of devices that share similar characteristics such as network connectivity and memory footprint

bull Currently there are two J2ME configurations ndash the Connected Limited Device Configuration (CLDC)

bull Established and widely usedndash the Connected Device Configuration (CDC)

bull Next generation configuration

4

Profiles bull To provide a complete runtime environment for a

specific device category a configuration must be combined with a profile

bull This is a set of higher-level APIs that further define the application life-cycle model the user interface and access to device-specific properties

bull A profile supports a narrower category of devices within the framework of a chosen configuration

bull A widely adopted example is to combine CLDC with the Mobile Information Device Profile (MIDP) to provide a complete Java application environment for cell phones and other devices with similar capabilities

5

Optional Packages bull The J2ME platform can be extended by adding

various optional packages to a technology stack that includes either CLDC or CDC and an associated profile

bull Optional packages offer standard APIs for using both existing and emerging technologies such as database connectivity wireless messaging multimedia Bluetooth and web services

bull Because optional packages are modular developers can avoid carrying the overhead of unnecessary functionality by including only the packages an application actually needs

6

7

Mobile Information Device Profile

bull The first J2ME profilebull Targets devices implementing CLDCbull Profile addresses

ndash Display toolkit user input methodsndash Persistent data storagendash Messaging( SMS email etc) security and

networking over wireless network connection

8

Related TechnologiesJava Cardtrade Technology

bull Specifies minimized subset of Java technology for GSM SIM cards smart cards Java rings and other extremely constrained devices

bull Key benefits versus non-Java smart cardsndash Multiple applications per cardndash Post-issuance updates to apps

on card

9

Related TechnologiesEmbeddedJavatrade Technology

bull EmbeddedJava technology is a program from Sun supporting development of dedicated-function embedded devices for a wide range of end uses

bull EmbeddedJava technology gives device manufacturers the ability tondash Configure the Java platform to leave out unneeded

classes and VM featuresndash Minimize resource requirements and cost for a

deeply-embedded devicendash Optimize for devices with no GUI and intermittent

(at best) networkingndash Keep APIs for their devices private

10

J2MEtrade Connected Device Configuration

bull Connected Device Configuration (CDC)ndash Targeted for devices that have 2 MB or more total

available memoryndash Memory dedicated to J2ME environmentndash More than 2MB ROMFlashndash More than 512 KB RAMndash Network connectivityndash Full Java 2 Virtual Machine specification

11

Example J2MEtrade CDC Uses

bull Wireless communicatorsbull High-end PDAsbull TV set-top boxesbull Gatewaysbull Automotive entertainment and navigation

systemsbull TelecommNetworking Equipmentbull Industrial Controllers

12

What Is CVM

bull Basis for J2ME CDC and profilesndash Large VMs for desktopsservers dont scale well to

devicesndash Static and dynamic memory footprint too bigndash Not embeddable ROMable not portablendash Implicit assumption of virtual memoryndash Native stack use address range reservationndash Implicit assumption of process model

bull Global variables system threads

13

CVM featuresbull Good JVM featuresbull Device friendlinessbull Easily re-targetablebull Narrow porting interfacebull Almost entirely in C (except

dynamic compiler)bull ~256KB with JNI reflection

verification

bull CVM supports all Java 2 Platform version 13

bull VM features and libraries for security weak references JNI RMI and JVMDI

bull CVM allows devices to map Java threads directly to native threads

bull Can run Java classes out of ROMbull Contains a precise memory system

with advanced Garbage Collection features

bull Small average GC pause timesbull Pluggable Garbage Collectorsbull Full separation of VM from memory

system

14

J2ME Profiles

bull Mobile Information Device Profile (MIDP)ndash Profile for wireless devices implementing CLDC

bull J2ME Foundation Profilendash Profile for non-GUI networked devices

implementing CDC

bull J2ME Personal Basis Personal RMI Profilesndash Basic graphics next generation PersonalJava

environment and RMI support for CDC amp Foundation Profile based devices

15

CDC APIs

bull 1048576 Defines minimum set of APIs for Java VM supportndash javalang VM system classes (Object Thread etc)ndash javautilUnderlying utilitiesndash javanetUDP Datagram and File URLndash javaioFilendash javatextI18n support for Java VM error messagesndash javasecurityFine grain security and encryption

for object serialization16

CVM Sizes Today

bull CVM onlyndash Static ROM + RAM req= 258 KB

bull Natives onlyndash Static ROM + RAM req= 124 KB

bull Porting layer onlyndash Static ROM + RAM req= 28 KB

bull CVM+natives+porting_layerndash Static ROM + RAM req= 410 KB

17

Foundation Profile APIsbull Defines core set of Java platform functionality

ndash No GUIndash Subset of JDK 13

bull Completes full functionality from CDCndash javalangRounds out full javalang(Compiler

UnknownError)ndash javautilAdds full zip support Timer etcndash javanetAdds TCP Socket and HTTPndash javaioRounds out full javaio (Readers and Writers)ndash javatextFull I18n (Annotation Collator Iterators etc)ndash javasecurityAdds Code Signing and Certificates

18

CVM Sizes with Foundation Profile APIs

bull CDC Java libraries (ROMized)ndash Static ROM + RAM req= 1011 KB

bull Foundation Java libraries (ROMized)ndash Static ROM + RAM req= 1564 KB

bull CDC TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1421 KB

bull Java libraries + natives for Foundation Profilendash Static ROM + RAM req = 553 KB

bull Foundation TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1974 KB

19

  • Java 2 Micro Edition (J2ME) and the world of java
  • The J2ME Architecture
  • Slide 3
  • Configurations
  • Profiles
  • Optional Packages
  • Slide 7
  • Mobile Information Device Profile
  • Related Technologies Java Cardtrade Technology
  • Related Technologies EmbeddedJavatrade Technology
  • J2MEtrade Connected Device Configuration
  • Example J2MEtrade CDC Uses
  • What Is CVM
  • CVM features
  • J2ME Profiles
  • CDC APIs
  • CVM Sizes Today
  • Foundation Profile APIs
  • CVM Sizes with Foundation Profile APIs
Page 2: Java 2 Micro Edition (J2ME) and the world of java The Java 2 Platform, Micro Edition (J2ME) provides a flexible environment for applications running on

The J2ME Architecture

bull The J2ME architecture comprises a variety of configurations profiles and optional packages that implementers and developers can choose from

2

3

J2ME Configurations and Profiles

bull Even within J2ME one size does not fit allbull Configurations Minimum libraries and JVMbull Profiles libraries for specific devices or marketsbull J2ME configurations

ndash CLDCndash CDC

bull J2ME profilesbull MIDP

ndash Foundation Bluetooth Personal bull Configurations and profiles defined by the Java

Community ProcessSM

Configurationsbull Configurations comprise

ndash a virtual machinendash a minimal set of class libraries

bull They provide the base functionality for a particular range of devices that share similar characteristics such as network connectivity and memory footprint

bull Currently there are two J2ME configurations ndash the Connected Limited Device Configuration (CLDC)

bull Established and widely usedndash the Connected Device Configuration (CDC)

bull Next generation configuration

4

Profiles bull To provide a complete runtime environment for a

specific device category a configuration must be combined with a profile

bull This is a set of higher-level APIs that further define the application life-cycle model the user interface and access to device-specific properties

bull A profile supports a narrower category of devices within the framework of a chosen configuration

bull A widely adopted example is to combine CLDC with the Mobile Information Device Profile (MIDP) to provide a complete Java application environment for cell phones and other devices with similar capabilities

5

Optional Packages bull The J2ME platform can be extended by adding

various optional packages to a technology stack that includes either CLDC or CDC and an associated profile

bull Optional packages offer standard APIs for using both existing and emerging technologies such as database connectivity wireless messaging multimedia Bluetooth and web services

bull Because optional packages are modular developers can avoid carrying the overhead of unnecessary functionality by including only the packages an application actually needs

6

7

Mobile Information Device Profile

bull The first J2ME profilebull Targets devices implementing CLDCbull Profile addresses

ndash Display toolkit user input methodsndash Persistent data storagendash Messaging( SMS email etc) security and

networking over wireless network connection

8

Related TechnologiesJava Cardtrade Technology

bull Specifies minimized subset of Java technology for GSM SIM cards smart cards Java rings and other extremely constrained devices

bull Key benefits versus non-Java smart cardsndash Multiple applications per cardndash Post-issuance updates to apps

on card

9

Related TechnologiesEmbeddedJavatrade Technology

bull EmbeddedJava technology is a program from Sun supporting development of dedicated-function embedded devices for a wide range of end uses

bull EmbeddedJava technology gives device manufacturers the ability tondash Configure the Java platform to leave out unneeded

classes and VM featuresndash Minimize resource requirements and cost for a

deeply-embedded devicendash Optimize for devices with no GUI and intermittent

(at best) networkingndash Keep APIs for their devices private

10

J2MEtrade Connected Device Configuration

bull Connected Device Configuration (CDC)ndash Targeted for devices that have 2 MB or more total

available memoryndash Memory dedicated to J2ME environmentndash More than 2MB ROMFlashndash More than 512 KB RAMndash Network connectivityndash Full Java 2 Virtual Machine specification

11

Example J2MEtrade CDC Uses

bull Wireless communicatorsbull High-end PDAsbull TV set-top boxesbull Gatewaysbull Automotive entertainment and navigation

systemsbull TelecommNetworking Equipmentbull Industrial Controllers

12

What Is CVM

bull Basis for J2ME CDC and profilesndash Large VMs for desktopsservers dont scale well to

devicesndash Static and dynamic memory footprint too bigndash Not embeddable ROMable not portablendash Implicit assumption of virtual memoryndash Native stack use address range reservationndash Implicit assumption of process model

bull Global variables system threads

13

CVM featuresbull Good JVM featuresbull Device friendlinessbull Easily re-targetablebull Narrow porting interfacebull Almost entirely in C (except

dynamic compiler)bull ~256KB with JNI reflection

verification

bull CVM supports all Java 2 Platform version 13

bull VM features and libraries for security weak references JNI RMI and JVMDI

bull CVM allows devices to map Java threads directly to native threads

bull Can run Java classes out of ROMbull Contains a precise memory system

with advanced Garbage Collection features

bull Small average GC pause timesbull Pluggable Garbage Collectorsbull Full separation of VM from memory

system

14

J2ME Profiles

bull Mobile Information Device Profile (MIDP)ndash Profile for wireless devices implementing CLDC

bull J2ME Foundation Profilendash Profile for non-GUI networked devices

implementing CDC

bull J2ME Personal Basis Personal RMI Profilesndash Basic graphics next generation PersonalJava

environment and RMI support for CDC amp Foundation Profile based devices

15

CDC APIs

bull 1048576 Defines minimum set of APIs for Java VM supportndash javalang VM system classes (Object Thread etc)ndash javautilUnderlying utilitiesndash javanetUDP Datagram and File URLndash javaioFilendash javatextI18n support for Java VM error messagesndash javasecurityFine grain security and encryption

for object serialization16

CVM Sizes Today

bull CVM onlyndash Static ROM + RAM req= 258 KB

bull Natives onlyndash Static ROM + RAM req= 124 KB

bull Porting layer onlyndash Static ROM + RAM req= 28 KB

bull CVM+natives+porting_layerndash Static ROM + RAM req= 410 KB

17

Foundation Profile APIsbull Defines core set of Java platform functionality

ndash No GUIndash Subset of JDK 13

bull Completes full functionality from CDCndash javalangRounds out full javalang(Compiler

UnknownError)ndash javautilAdds full zip support Timer etcndash javanetAdds TCP Socket and HTTPndash javaioRounds out full javaio (Readers and Writers)ndash javatextFull I18n (Annotation Collator Iterators etc)ndash javasecurityAdds Code Signing and Certificates

18

CVM Sizes with Foundation Profile APIs

bull CDC Java libraries (ROMized)ndash Static ROM + RAM req= 1011 KB

bull Foundation Java libraries (ROMized)ndash Static ROM + RAM req= 1564 KB

bull CDC TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1421 KB

bull Java libraries + natives for Foundation Profilendash Static ROM + RAM req = 553 KB

bull Foundation TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1974 KB

19

  • Java 2 Micro Edition (J2ME) and the world of java
  • The J2ME Architecture
  • Slide 3
  • Configurations
  • Profiles
  • Optional Packages
  • Slide 7
  • Mobile Information Device Profile
  • Related Technologies Java Cardtrade Technology
  • Related Technologies EmbeddedJavatrade Technology
  • J2MEtrade Connected Device Configuration
  • Example J2MEtrade CDC Uses
  • What Is CVM
  • CVM features
  • J2ME Profiles
  • CDC APIs
  • CVM Sizes Today
  • Foundation Profile APIs
  • CVM Sizes with Foundation Profile APIs
Page 3: Java 2 Micro Edition (J2ME) and the world of java The Java 2 Platform, Micro Edition (J2ME) provides a flexible environment for applications running on

3

J2ME Configurations and Profiles

bull Even within J2ME one size does not fit allbull Configurations Minimum libraries and JVMbull Profiles libraries for specific devices or marketsbull J2ME configurations

ndash CLDCndash CDC

bull J2ME profilesbull MIDP

ndash Foundation Bluetooth Personal bull Configurations and profiles defined by the Java

Community ProcessSM

Configurationsbull Configurations comprise

ndash a virtual machinendash a minimal set of class libraries

bull They provide the base functionality for a particular range of devices that share similar characteristics such as network connectivity and memory footprint

bull Currently there are two J2ME configurations ndash the Connected Limited Device Configuration (CLDC)

bull Established and widely usedndash the Connected Device Configuration (CDC)

bull Next generation configuration

4

Profiles bull To provide a complete runtime environment for a

specific device category a configuration must be combined with a profile

bull This is a set of higher-level APIs that further define the application life-cycle model the user interface and access to device-specific properties

bull A profile supports a narrower category of devices within the framework of a chosen configuration

bull A widely adopted example is to combine CLDC with the Mobile Information Device Profile (MIDP) to provide a complete Java application environment for cell phones and other devices with similar capabilities

5

Optional Packages bull The J2ME platform can be extended by adding

various optional packages to a technology stack that includes either CLDC or CDC and an associated profile

bull Optional packages offer standard APIs for using both existing and emerging technologies such as database connectivity wireless messaging multimedia Bluetooth and web services

bull Because optional packages are modular developers can avoid carrying the overhead of unnecessary functionality by including only the packages an application actually needs

6

7

Mobile Information Device Profile

bull The first J2ME profilebull Targets devices implementing CLDCbull Profile addresses

ndash Display toolkit user input methodsndash Persistent data storagendash Messaging( SMS email etc) security and

networking over wireless network connection

8

Related TechnologiesJava Cardtrade Technology

bull Specifies minimized subset of Java technology for GSM SIM cards smart cards Java rings and other extremely constrained devices

bull Key benefits versus non-Java smart cardsndash Multiple applications per cardndash Post-issuance updates to apps

on card

9

Related TechnologiesEmbeddedJavatrade Technology

bull EmbeddedJava technology is a program from Sun supporting development of dedicated-function embedded devices for a wide range of end uses

bull EmbeddedJava technology gives device manufacturers the ability tondash Configure the Java platform to leave out unneeded

classes and VM featuresndash Minimize resource requirements and cost for a

deeply-embedded devicendash Optimize for devices with no GUI and intermittent

(at best) networkingndash Keep APIs for their devices private

10

J2MEtrade Connected Device Configuration

bull Connected Device Configuration (CDC)ndash Targeted for devices that have 2 MB or more total

available memoryndash Memory dedicated to J2ME environmentndash More than 2MB ROMFlashndash More than 512 KB RAMndash Network connectivityndash Full Java 2 Virtual Machine specification

11

Example J2MEtrade CDC Uses

bull Wireless communicatorsbull High-end PDAsbull TV set-top boxesbull Gatewaysbull Automotive entertainment and navigation

systemsbull TelecommNetworking Equipmentbull Industrial Controllers

12

What Is CVM

bull Basis for J2ME CDC and profilesndash Large VMs for desktopsservers dont scale well to

devicesndash Static and dynamic memory footprint too bigndash Not embeddable ROMable not portablendash Implicit assumption of virtual memoryndash Native stack use address range reservationndash Implicit assumption of process model

bull Global variables system threads

13

CVM featuresbull Good JVM featuresbull Device friendlinessbull Easily re-targetablebull Narrow porting interfacebull Almost entirely in C (except

dynamic compiler)bull ~256KB with JNI reflection

verification

bull CVM supports all Java 2 Platform version 13

bull VM features and libraries for security weak references JNI RMI and JVMDI

bull CVM allows devices to map Java threads directly to native threads

bull Can run Java classes out of ROMbull Contains a precise memory system

with advanced Garbage Collection features

bull Small average GC pause timesbull Pluggable Garbage Collectorsbull Full separation of VM from memory

system

14

J2ME Profiles

bull Mobile Information Device Profile (MIDP)ndash Profile for wireless devices implementing CLDC

bull J2ME Foundation Profilendash Profile for non-GUI networked devices

implementing CDC

bull J2ME Personal Basis Personal RMI Profilesndash Basic graphics next generation PersonalJava

environment and RMI support for CDC amp Foundation Profile based devices

15

CDC APIs

bull 1048576 Defines minimum set of APIs for Java VM supportndash javalang VM system classes (Object Thread etc)ndash javautilUnderlying utilitiesndash javanetUDP Datagram and File URLndash javaioFilendash javatextI18n support for Java VM error messagesndash javasecurityFine grain security and encryption

for object serialization16

CVM Sizes Today

bull CVM onlyndash Static ROM + RAM req= 258 KB

bull Natives onlyndash Static ROM + RAM req= 124 KB

bull Porting layer onlyndash Static ROM + RAM req= 28 KB

bull CVM+natives+porting_layerndash Static ROM + RAM req= 410 KB

17

Foundation Profile APIsbull Defines core set of Java platform functionality

ndash No GUIndash Subset of JDK 13

bull Completes full functionality from CDCndash javalangRounds out full javalang(Compiler

UnknownError)ndash javautilAdds full zip support Timer etcndash javanetAdds TCP Socket and HTTPndash javaioRounds out full javaio (Readers and Writers)ndash javatextFull I18n (Annotation Collator Iterators etc)ndash javasecurityAdds Code Signing and Certificates

18

CVM Sizes with Foundation Profile APIs

bull CDC Java libraries (ROMized)ndash Static ROM + RAM req= 1011 KB

bull Foundation Java libraries (ROMized)ndash Static ROM + RAM req= 1564 KB

bull CDC TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1421 KB

bull Java libraries + natives for Foundation Profilendash Static ROM + RAM req = 553 KB

bull Foundation TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1974 KB

19

  • Java 2 Micro Edition (J2ME) and the world of java
  • The J2ME Architecture
  • Slide 3
  • Configurations
  • Profiles
  • Optional Packages
  • Slide 7
  • Mobile Information Device Profile
  • Related Technologies Java Cardtrade Technology
  • Related Technologies EmbeddedJavatrade Technology
  • J2MEtrade Connected Device Configuration
  • Example J2MEtrade CDC Uses
  • What Is CVM
  • CVM features
  • J2ME Profiles
  • CDC APIs
  • CVM Sizes Today
  • Foundation Profile APIs
  • CVM Sizes with Foundation Profile APIs
Page 4: Java 2 Micro Edition (J2ME) and the world of java The Java 2 Platform, Micro Edition (J2ME) provides a flexible environment for applications running on

Configurationsbull Configurations comprise

ndash a virtual machinendash a minimal set of class libraries

bull They provide the base functionality for a particular range of devices that share similar characteristics such as network connectivity and memory footprint

bull Currently there are two J2ME configurations ndash the Connected Limited Device Configuration (CLDC)

bull Established and widely usedndash the Connected Device Configuration (CDC)

bull Next generation configuration

4

Profiles bull To provide a complete runtime environment for a

specific device category a configuration must be combined with a profile

bull This is a set of higher-level APIs that further define the application life-cycle model the user interface and access to device-specific properties

bull A profile supports a narrower category of devices within the framework of a chosen configuration

bull A widely adopted example is to combine CLDC with the Mobile Information Device Profile (MIDP) to provide a complete Java application environment for cell phones and other devices with similar capabilities

5

Optional Packages bull The J2ME platform can be extended by adding

various optional packages to a technology stack that includes either CLDC or CDC and an associated profile

bull Optional packages offer standard APIs for using both existing and emerging technologies such as database connectivity wireless messaging multimedia Bluetooth and web services

bull Because optional packages are modular developers can avoid carrying the overhead of unnecessary functionality by including only the packages an application actually needs

6

7

Mobile Information Device Profile

bull The first J2ME profilebull Targets devices implementing CLDCbull Profile addresses

ndash Display toolkit user input methodsndash Persistent data storagendash Messaging( SMS email etc) security and

networking over wireless network connection

8

Related TechnologiesJava Cardtrade Technology

bull Specifies minimized subset of Java technology for GSM SIM cards smart cards Java rings and other extremely constrained devices

bull Key benefits versus non-Java smart cardsndash Multiple applications per cardndash Post-issuance updates to apps

on card

9

Related TechnologiesEmbeddedJavatrade Technology

bull EmbeddedJava technology is a program from Sun supporting development of dedicated-function embedded devices for a wide range of end uses

bull EmbeddedJava technology gives device manufacturers the ability tondash Configure the Java platform to leave out unneeded

classes and VM featuresndash Minimize resource requirements and cost for a

deeply-embedded devicendash Optimize for devices with no GUI and intermittent

(at best) networkingndash Keep APIs for their devices private

10

J2MEtrade Connected Device Configuration

bull Connected Device Configuration (CDC)ndash Targeted for devices that have 2 MB or more total

available memoryndash Memory dedicated to J2ME environmentndash More than 2MB ROMFlashndash More than 512 KB RAMndash Network connectivityndash Full Java 2 Virtual Machine specification

11

Example J2MEtrade CDC Uses

bull Wireless communicatorsbull High-end PDAsbull TV set-top boxesbull Gatewaysbull Automotive entertainment and navigation

systemsbull TelecommNetworking Equipmentbull Industrial Controllers

12

What Is CVM

bull Basis for J2ME CDC and profilesndash Large VMs for desktopsservers dont scale well to

devicesndash Static and dynamic memory footprint too bigndash Not embeddable ROMable not portablendash Implicit assumption of virtual memoryndash Native stack use address range reservationndash Implicit assumption of process model

bull Global variables system threads

13

CVM featuresbull Good JVM featuresbull Device friendlinessbull Easily re-targetablebull Narrow porting interfacebull Almost entirely in C (except

dynamic compiler)bull ~256KB with JNI reflection

verification

bull CVM supports all Java 2 Platform version 13

bull VM features and libraries for security weak references JNI RMI and JVMDI

bull CVM allows devices to map Java threads directly to native threads

bull Can run Java classes out of ROMbull Contains a precise memory system

with advanced Garbage Collection features

bull Small average GC pause timesbull Pluggable Garbage Collectorsbull Full separation of VM from memory

system

14

J2ME Profiles

bull Mobile Information Device Profile (MIDP)ndash Profile for wireless devices implementing CLDC

bull J2ME Foundation Profilendash Profile for non-GUI networked devices

implementing CDC

bull J2ME Personal Basis Personal RMI Profilesndash Basic graphics next generation PersonalJava

environment and RMI support for CDC amp Foundation Profile based devices

15

CDC APIs

bull 1048576 Defines minimum set of APIs for Java VM supportndash javalang VM system classes (Object Thread etc)ndash javautilUnderlying utilitiesndash javanetUDP Datagram and File URLndash javaioFilendash javatextI18n support for Java VM error messagesndash javasecurityFine grain security and encryption

for object serialization16

CVM Sizes Today

bull CVM onlyndash Static ROM + RAM req= 258 KB

bull Natives onlyndash Static ROM + RAM req= 124 KB

bull Porting layer onlyndash Static ROM + RAM req= 28 KB

bull CVM+natives+porting_layerndash Static ROM + RAM req= 410 KB

17

Foundation Profile APIsbull Defines core set of Java platform functionality

ndash No GUIndash Subset of JDK 13

bull Completes full functionality from CDCndash javalangRounds out full javalang(Compiler

UnknownError)ndash javautilAdds full zip support Timer etcndash javanetAdds TCP Socket and HTTPndash javaioRounds out full javaio (Readers and Writers)ndash javatextFull I18n (Annotation Collator Iterators etc)ndash javasecurityAdds Code Signing and Certificates

18

CVM Sizes with Foundation Profile APIs

bull CDC Java libraries (ROMized)ndash Static ROM + RAM req= 1011 KB

bull Foundation Java libraries (ROMized)ndash Static ROM + RAM req= 1564 KB

bull CDC TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1421 KB

bull Java libraries + natives for Foundation Profilendash Static ROM + RAM req = 553 KB

bull Foundation TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1974 KB

19

  • Java 2 Micro Edition (J2ME) and the world of java
  • The J2ME Architecture
  • Slide 3
  • Configurations
  • Profiles
  • Optional Packages
  • Slide 7
  • Mobile Information Device Profile
  • Related Technologies Java Cardtrade Technology
  • Related Technologies EmbeddedJavatrade Technology
  • J2MEtrade Connected Device Configuration
  • Example J2MEtrade CDC Uses
  • What Is CVM
  • CVM features
  • J2ME Profiles
  • CDC APIs
  • CVM Sizes Today
  • Foundation Profile APIs
  • CVM Sizes with Foundation Profile APIs
Page 5: Java 2 Micro Edition (J2ME) and the world of java The Java 2 Platform, Micro Edition (J2ME) provides a flexible environment for applications running on

Profiles bull To provide a complete runtime environment for a

specific device category a configuration must be combined with a profile

bull This is a set of higher-level APIs that further define the application life-cycle model the user interface and access to device-specific properties

bull A profile supports a narrower category of devices within the framework of a chosen configuration

bull A widely adopted example is to combine CLDC with the Mobile Information Device Profile (MIDP) to provide a complete Java application environment for cell phones and other devices with similar capabilities

5

Optional Packages bull The J2ME platform can be extended by adding

various optional packages to a technology stack that includes either CLDC or CDC and an associated profile

bull Optional packages offer standard APIs for using both existing and emerging technologies such as database connectivity wireless messaging multimedia Bluetooth and web services

bull Because optional packages are modular developers can avoid carrying the overhead of unnecessary functionality by including only the packages an application actually needs

6

7

Mobile Information Device Profile

bull The first J2ME profilebull Targets devices implementing CLDCbull Profile addresses

ndash Display toolkit user input methodsndash Persistent data storagendash Messaging( SMS email etc) security and

networking over wireless network connection

8

Related TechnologiesJava Cardtrade Technology

bull Specifies minimized subset of Java technology for GSM SIM cards smart cards Java rings and other extremely constrained devices

bull Key benefits versus non-Java smart cardsndash Multiple applications per cardndash Post-issuance updates to apps

on card

9

Related TechnologiesEmbeddedJavatrade Technology

bull EmbeddedJava technology is a program from Sun supporting development of dedicated-function embedded devices for a wide range of end uses

bull EmbeddedJava technology gives device manufacturers the ability tondash Configure the Java platform to leave out unneeded

classes and VM featuresndash Minimize resource requirements and cost for a

deeply-embedded devicendash Optimize for devices with no GUI and intermittent

(at best) networkingndash Keep APIs for their devices private

10

J2MEtrade Connected Device Configuration

bull Connected Device Configuration (CDC)ndash Targeted for devices that have 2 MB or more total

available memoryndash Memory dedicated to J2ME environmentndash More than 2MB ROMFlashndash More than 512 KB RAMndash Network connectivityndash Full Java 2 Virtual Machine specification

11

Example J2MEtrade CDC Uses

bull Wireless communicatorsbull High-end PDAsbull TV set-top boxesbull Gatewaysbull Automotive entertainment and navigation

systemsbull TelecommNetworking Equipmentbull Industrial Controllers

12

What Is CVM

bull Basis for J2ME CDC and profilesndash Large VMs for desktopsservers dont scale well to

devicesndash Static and dynamic memory footprint too bigndash Not embeddable ROMable not portablendash Implicit assumption of virtual memoryndash Native stack use address range reservationndash Implicit assumption of process model

bull Global variables system threads

13

CVM featuresbull Good JVM featuresbull Device friendlinessbull Easily re-targetablebull Narrow porting interfacebull Almost entirely in C (except

dynamic compiler)bull ~256KB with JNI reflection

verification

bull CVM supports all Java 2 Platform version 13

bull VM features and libraries for security weak references JNI RMI and JVMDI

bull CVM allows devices to map Java threads directly to native threads

bull Can run Java classes out of ROMbull Contains a precise memory system

with advanced Garbage Collection features

bull Small average GC pause timesbull Pluggable Garbage Collectorsbull Full separation of VM from memory

system

14

J2ME Profiles

bull Mobile Information Device Profile (MIDP)ndash Profile for wireless devices implementing CLDC

bull J2ME Foundation Profilendash Profile for non-GUI networked devices

implementing CDC

bull J2ME Personal Basis Personal RMI Profilesndash Basic graphics next generation PersonalJava

environment and RMI support for CDC amp Foundation Profile based devices

15

CDC APIs

bull 1048576 Defines minimum set of APIs for Java VM supportndash javalang VM system classes (Object Thread etc)ndash javautilUnderlying utilitiesndash javanetUDP Datagram and File URLndash javaioFilendash javatextI18n support for Java VM error messagesndash javasecurityFine grain security and encryption

for object serialization16

CVM Sizes Today

bull CVM onlyndash Static ROM + RAM req= 258 KB

bull Natives onlyndash Static ROM + RAM req= 124 KB

bull Porting layer onlyndash Static ROM + RAM req= 28 KB

bull CVM+natives+porting_layerndash Static ROM + RAM req= 410 KB

17

Foundation Profile APIsbull Defines core set of Java platform functionality

ndash No GUIndash Subset of JDK 13

bull Completes full functionality from CDCndash javalangRounds out full javalang(Compiler

UnknownError)ndash javautilAdds full zip support Timer etcndash javanetAdds TCP Socket and HTTPndash javaioRounds out full javaio (Readers and Writers)ndash javatextFull I18n (Annotation Collator Iterators etc)ndash javasecurityAdds Code Signing and Certificates

18

CVM Sizes with Foundation Profile APIs

bull CDC Java libraries (ROMized)ndash Static ROM + RAM req= 1011 KB

bull Foundation Java libraries (ROMized)ndash Static ROM + RAM req= 1564 KB

bull CDC TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1421 KB

bull Java libraries + natives for Foundation Profilendash Static ROM + RAM req = 553 KB

bull Foundation TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1974 KB

19

  • Java 2 Micro Edition (J2ME) and the world of java
  • The J2ME Architecture
  • Slide 3
  • Configurations
  • Profiles
  • Optional Packages
  • Slide 7
  • Mobile Information Device Profile
  • Related Technologies Java Cardtrade Technology
  • Related Technologies EmbeddedJavatrade Technology
  • J2MEtrade Connected Device Configuration
  • Example J2MEtrade CDC Uses
  • What Is CVM
  • CVM features
  • J2ME Profiles
  • CDC APIs
  • CVM Sizes Today
  • Foundation Profile APIs
  • CVM Sizes with Foundation Profile APIs
Page 6: Java 2 Micro Edition (J2ME) and the world of java The Java 2 Platform, Micro Edition (J2ME) provides a flexible environment for applications running on

Optional Packages bull The J2ME platform can be extended by adding

various optional packages to a technology stack that includes either CLDC or CDC and an associated profile

bull Optional packages offer standard APIs for using both existing and emerging technologies such as database connectivity wireless messaging multimedia Bluetooth and web services

bull Because optional packages are modular developers can avoid carrying the overhead of unnecessary functionality by including only the packages an application actually needs

6

7

Mobile Information Device Profile

bull The first J2ME profilebull Targets devices implementing CLDCbull Profile addresses

ndash Display toolkit user input methodsndash Persistent data storagendash Messaging( SMS email etc) security and

networking over wireless network connection

8

Related TechnologiesJava Cardtrade Technology

bull Specifies minimized subset of Java technology for GSM SIM cards smart cards Java rings and other extremely constrained devices

bull Key benefits versus non-Java smart cardsndash Multiple applications per cardndash Post-issuance updates to apps

on card

9

Related TechnologiesEmbeddedJavatrade Technology

bull EmbeddedJava technology is a program from Sun supporting development of dedicated-function embedded devices for a wide range of end uses

bull EmbeddedJava technology gives device manufacturers the ability tondash Configure the Java platform to leave out unneeded

classes and VM featuresndash Minimize resource requirements and cost for a

deeply-embedded devicendash Optimize for devices with no GUI and intermittent

(at best) networkingndash Keep APIs for their devices private

10

J2MEtrade Connected Device Configuration

bull Connected Device Configuration (CDC)ndash Targeted for devices that have 2 MB or more total

available memoryndash Memory dedicated to J2ME environmentndash More than 2MB ROMFlashndash More than 512 KB RAMndash Network connectivityndash Full Java 2 Virtual Machine specification

11

Example J2MEtrade CDC Uses

bull Wireless communicatorsbull High-end PDAsbull TV set-top boxesbull Gatewaysbull Automotive entertainment and navigation

systemsbull TelecommNetworking Equipmentbull Industrial Controllers

12

What Is CVM

bull Basis for J2ME CDC and profilesndash Large VMs for desktopsservers dont scale well to

devicesndash Static and dynamic memory footprint too bigndash Not embeddable ROMable not portablendash Implicit assumption of virtual memoryndash Native stack use address range reservationndash Implicit assumption of process model

bull Global variables system threads

13

CVM featuresbull Good JVM featuresbull Device friendlinessbull Easily re-targetablebull Narrow porting interfacebull Almost entirely in C (except

dynamic compiler)bull ~256KB with JNI reflection

verification

bull CVM supports all Java 2 Platform version 13

bull VM features and libraries for security weak references JNI RMI and JVMDI

bull CVM allows devices to map Java threads directly to native threads

bull Can run Java classes out of ROMbull Contains a precise memory system

with advanced Garbage Collection features

bull Small average GC pause timesbull Pluggable Garbage Collectorsbull Full separation of VM from memory

system

14

J2ME Profiles

bull Mobile Information Device Profile (MIDP)ndash Profile for wireless devices implementing CLDC

bull J2ME Foundation Profilendash Profile for non-GUI networked devices

implementing CDC

bull J2ME Personal Basis Personal RMI Profilesndash Basic graphics next generation PersonalJava

environment and RMI support for CDC amp Foundation Profile based devices

15

CDC APIs

bull 1048576 Defines minimum set of APIs for Java VM supportndash javalang VM system classes (Object Thread etc)ndash javautilUnderlying utilitiesndash javanetUDP Datagram and File URLndash javaioFilendash javatextI18n support for Java VM error messagesndash javasecurityFine grain security and encryption

for object serialization16

CVM Sizes Today

bull CVM onlyndash Static ROM + RAM req= 258 KB

bull Natives onlyndash Static ROM + RAM req= 124 KB

bull Porting layer onlyndash Static ROM + RAM req= 28 KB

bull CVM+natives+porting_layerndash Static ROM + RAM req= 410 KB

17

Foundation Profile APIsbull Defines core set of Java platform functionality

ndash No GUIndash Subset of JDK 13

bull Completes full functionality from CDCndash javalangRounds out full javalang(Compiler

UnknownError)ndash javautilAdds full zip support Timer etcndash javanetAdds TCP Socket and HTTPndash javaioRounds out full javaio (Readers and Writers)ndash javatextFull I18n (Annotation Collator Iterators etc)ndash javasecurityAdds Code Signing and Certificates

18

CVM Sizes with Foundation Profile APIs

bull CDC Java libraries (ROMized)ndash Static ROM + RAM req= 1011 KB

bull Foundation Java libraries (ROMized)ndash Static ROM + RAM req= 1564 KB

bull CDC TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1421 KB

bull Java libraries + natives for Foundation Profilendash Static ROM + RAM req = 553 KB

bull Foundation TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1974 KB

19

  • Java 2 Micro Edition (J2ME) and the world of java
  • The J2ME Architecture
  • Slide 3
  • Configurations
  • Profiles
  • Optional Packages
  • Slide 7
  • Mobile Information Device Profile
  • Related Technologies Java Cardtrade Technology
  • Related Technologies EmbeddedJavatrade Technology
  • J2MEtrade Connected Device Configuration
  • Example J2MEtrade CDC Uses
  • What Is CVM
  • CVM features
  • J2ME Profiles
  • CDC APIs
  • CVM Sizes Today
  • Foundation Profile APIs
  • CVM Sizes with Foundation Profile APIs
Page 7: Java 2 Micro Edition (J2ME) and the world of java The Java 2 Platform, Micro Edition (J2ME) provides a flexible environment for applications running on

7

Mobile Information Device Profile

bull The first J2ME profilebull Targets devices implementing CLDCbull Profile addresses

ndash Display toolkit user input methodsndash Persistent data storagendash Messaging( SMS email etc) security and

networking over wireless network connection

8

Related TechnologiesJava Cardtrade Technology

bull Specifies minimized subset of Java technology for GSM SIM cards smart cards Java rings and other extremely constrained devices

bull Key benefits versus non-Java smart cardsndash Multiple applications per cardndash Post-issuance updates to apps

on card

9

Related TechnologiesEmbeddedJavatrade Technology

bull EmbeddedJava technology is a program from Sun supporting development of dedicated-function embedded devices for a wide range of end uses

bull EmbeddedJava technology gives device manufacturers the ability tondash Configure the Java platform to leave out unneeded

classes and VM featuresndash Minimize resource requirements and cost for a

deeply-embedded devicendash Optimize for devices with no GUI and intermittent

(at best) networkingndash Keep APIs for their devices private

10

J2MEtrade Connected Device Configuration

bull Connected Device Configuration (CDC)ndash Targeted for devices that have 2 MB or more total

available memoryndash Memory dedicated to J2ME environmentndash More than 2MB ROMFlashndash More than 512 KB RAMndash Network connectivityndash Full Java 2 Virtual Machine specification

11

Example J2MEtrade CDC Uses

bull Wireless communicatorsbull High-end PDAsbull TV set-top boxesbull Gatewaysbull Automotive entertainment and navigation

systemsbull TelecommNetworking Equipmentbull Industrial Controllers

12

What Is CVM

bull Basis for J2ME CDC and profilesndash Large VMs for desktopsservers dont scale well to

devicesndash Static and dynamic memory footprint too bigndash Not embeddable ROMable not portablendash Implicit assumption of virtual memoryndash Native stack use address range reservationndash Implicit assumption of process model

bull Global variables system threads

13

CVM featuresbull Good JVM featuresbull Device friendlinessbull Easily re-targetablebull Narrow porting interfacebull Almost entirely in C (except

dynamic compiler)bull ~256KB with JNI reflection

verification

bull CVM supports all Java 2 Platform version 13

bull VM features and libraries for security weak references JNI RMI and JVMDI

bull CVM allows devices to map Java threads directly to native threads

bull Can run Java classes out of ROMbull Contains a precise memory system

with advanced Garbage Collection features

bull Small average GC pause timesbull Pluggable Garbage Collectorsbull Full separation of VM from memory

system

14

J2ME Profiles

bull Mobile Information Device Profile (MIDP)ndash Profile for wireless devices implementing CLDC

bull J2ME Foundation Profilendash Profile for non-GUI networked devices

implementing CDC

bull J2ME Personal Basis Personal RMI Profilesndash Basic graphics next generation PersonalJava

environment and RMI support for CDC amp Foundation Profile based devices

15

CDC APIs

bull 1048576 Defines minimum set of APIs for Java VM supportndash javalang VM system classes (Object Thread etc)ndash javautilUnderlying utilitiesndash javanetUDP Datagram and File URLndash javaioFilendash javatextI18n support for Java VM error messagesndash javasecurityFine grain security and encryption

for object serialization16

CVM Sizes Today

bull CVM onlyndash Static ROM + RAM req= 258 KB

bull Natives onlyndash Static ROM + RAM req= 124 KB

bull Porting layer onlyndash Static ROM + RAM req= 28 KB

bull CVM+natives+porting_layerndash Static ROM + RAM req= 410 KB

17

Foundation Profile APIsbull Defines core set of Java platform functionality

ndash No GUIndash Subset of JDK 13

bull Completes full functionality from CDCndash javalangRounds out full javalang(Compiler

UnknownError)ndash javautilAdds full zip support Timer etcndash javanetAdds TCP Socket and HTTPndash javaioRounds out full javaio (Readers and Writers)ndash javatextFull I18n (Annotation Collator Iterators etc)ndash javasecurityAdds Code Signing and Certificates

18

CVM Sizes with Foundation Profile APIs

bull CDC Java libraries (ROMized)ndash Static ROM + RAM req= 1011 KB

bull Foundation Java libraries (ROMized)ndash Static ROM + RAM req= 1564 KB

bull CDC TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1421 KB

bull Java libraries + natives for Foundation Profilendash Static ROM + RAM req = 553 KB

bull Foundation TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1974 KB

19

  • Java 2 Micro Edition (J2ME) and the world of java
  • The J2ME Architecture
  • Slide 3
  • Configurations
  • Profiles
  • Optional Packages
  • Slide 7
  • Mobile Information Device Profile
  • Related Technologies Java Cardtrade Technology
  • Related Technologies EmbeddedJavatrade Technology
  • J2MEtrade Connected Device Configuration
  • Example J2MEtrade CDC Uses
  • What Is CVM
  • CVM features
  • J2ME Profiles
  • CDC APIs
  • CVM Sizes Today
  • Foundation Profile APIs
  • CVM Sizes with Foundation Profile APIs
Page 8: Java 2 Micro Edition (J2ME) and the world of java The Java 2 Platform, Micro Edition (J2ME) provides a flexible environment for applications running on

Mobile Information Device Profile

bull The first J2ME profilebull Targets devices implementing CLDCbull Profile addresses

ndash Display toolkit user input methodsndash Persistent data storagendash Messaging( SMS email etc) security and

networking over wireless network connection

8

Related TechnologiesJava Cardtrade Technology

bull Specifies minimized subset of Java technology for GSM SIM cards smart cards Java rings and other extremely constrained devices

bull Key benefits versus non-Java smart cardsndash Multiple applications per cardndash Post-issuance updates to apps

on card

9

Related TechnologiesEmbeddedJavatrade Technology

bull EmbeddedJava technology is a program from Sun supporting development of dedicated-function embedded devices for a wide range of end uses

bull EmbeddedJava technology gives device manufacturers the ability tondash Configure the Java platform to leave out unneeded

classes and VM featuresndash Minimize resource requirements and cost for a

deeply-embedded devicendash Optimize for devices with no GUI and intermittent

(at best) networkingndash Keep APIs for their devices private

10

J2MEtrade Connected Device Configuration

bull Connected Device Configuration (CDC)ndash Targeted for devices that have 2 MB or more total

available memoryndash Memory dedicated to J2ME environmentndash More than 2MB ROMFlashndash More than 512 KB RAMndash Network connectivityndash Full Java 2 Virtual Machine specification

11

Example J2MEtrade CDC Uses

bull Wireless communicatorsbull High-end PDAsbull TV set-top boxesbull Gatewaysbull Automotive entertainment and navigation

systemsbull TelecommNetworking Equipmentbull Industrial Controllers

12

What Is CVM

bull Basis for J2ME CDC and profilesndash Large VMs for desktopsservers dont scale well to

devicesndash Static and dynamic memory footprint too bigndash Not embeddable ROMable not portablendash Implicit assumption of virtual memoryndash Native stack use address range reservationndash Implicit assumption of process model

bull Global variables system threads

13

CVM featuresbull Good JVM featuresbull Device friendlinessbull Easily re-targetablebull Narrow porting interfacebull Almost entirely in C (except

dynamic compiler)bull ~256KB with JNI reflection

verification

bull CVM supports all Java 2 Platform version 13

bull VM features and libraries for security weak references JNI RMI and JVMDI

bull CVM allows devices to map Java threads directly to native threads

bull Can run Java classes out of ROMbull Contains a precise memory system

with advanced Garbage Collection features

bull Small average GC pause timesbull Pluggable Garbage Collectorsbull Full separation of VM from memory

system

14

J2ME Profiles

bull Mobile Information Device Profile (MIDP)ndash Profile for wireless devices implementing CLDC

bull J2ME Foundation Profilendash Profile for non-GUI networked devices

implementing CDC

bull J2ME Personal Basis Personal RMI Profilesndash Basic graphics next generation PersonalJava

environment and RMI support for CDC amp Foundation Profile based devices

15

CDC APIs

bull 1048576 Defines minimum set of APIs for Java VM supportndash javalang VM system classes (Object Thread etc)ndash javautilUnderlying utilitiesndash javanetUDP Datagram and File URLndash javaioFilendash javatextI18n support for Java VM error messagesndash javasecurityFine grain security and encryption

for object serialization16

CVM Sizes Today

bull CVM onlyndash Static ROM + RAM req= 258 KB

bull Natives onlyndash Static ROM + RAM req= 124 KB

bull Porting layer onlyndash Static ROM + RAM req= 28 KB

bull CVM+natives+porting_layerndash Static ROM + RAM req= 410 KB

17

Foundation Profile APIsbull Defines core set of Java platform functionality

ndash No GUIndash Subset of JDK 13

bull Completes full functionality from CDCndash javalangRounds out full javalang(Compiler

UnknownError)ndash javautilAdds full zip support Timer etcndash javanetAdds TCP Socket and HTTPndash javaioRounds out full javaio (Readers and Writers)ndash javatextFull I18n (Annotation Collator Iterators etc)ndash javasecurityAdds Code Signing and Certificates

18

CVM Sizes with Foundation Profile APIs

bull CDC Java libraries (ROMized)ndash Static ROM + RAM req= 1011 KB

bull Foundation Java libraries (ROMized)ndash Static ROM + RAM req= 1564 KB

bull CDC TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1421 KB

bull Java libraries + natives for Foundation Profilendash Static ROM + RAM req = 553 KB

bull Foundation TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1974 KB

19

  • Java 2 Micro Edition (J2ME) and the world of java
  • The J2ME Architecture
  • Slide 3
  • Configurations
  • Profiles
  • Optional Packages
  • Slide 7
  • Mobile Information Device Profile
  • Related Technologies Java Cardtrade Technology
  • Related Technologies EmbeddedJavatrade Technology
  • J2MEtrade Connected Device Configuration
  • Example J2MEtrade CDC Uses
  • What Is CVM
  • CVM features
  • J2ME Profiles
  • CDC APIs
  • CVM Sizes Today
  • Foundation Profile APIs
  • CVM Sizes with Foundation Profile APIs
Page 9: Java 2 Micro Edition (J2ME) and the world of java The Java 2 Platform, Micro Edition (J2ME) provides a flexible environment for applications running on

Related TechnologiesJava Cardtrade Technology

bull Specifies minimized subset of Java technology for GSM SIM cards smart cards Java rings and other extremely constrained devices

bull Key benefits versus non-Java smart cardsndash Multiple applications per cardndash Post-issuance updates to apps

on card

9

Related TechnologiesEmbeddedJavatrade Technology

bull EmbeddedJava technology is a program from Sun supporting development of dedicated-function embedded devices for a wide range of end uses

bull EmbeddedJava technology gives device manufacturers the ability tondash Configure the Java platform to leave out unneeded

classes and VM featuresndash Minimize resource requirements and cost for a

deeply-embedded devicendash Optimize for devices with no GUI and intermittent

(at best) networkingndash Keep APIs for their devices private

10

J2MEtrade Connected Device Configuration

bull Connected Device Configuration (CDC)ndash Targeted for devices that have 2 MB or more total

available memoryndash Memory dedicated to J2ME environmentndash More than 2MB ROMFlashndash More than 512 KB RAMndash Network connectivityndash Full Java 2 Virtual Machine specification

11

Example J2MEtrade CDC Uses

bull Wireless communicatorsbull High-end PDAsbull TV set-top boxesbull Gatewaysbull Automotive entertainment and navigation

systemsbull TelecommNetworking Equipmentbull Industrial Controllers

12

What Is CVM

bull Basis for J2ME CDC and profilesndash Large VMs for desktopsservers dont scale well to

devicesndash Static and dynamic memory footprint too bigndash Not embeddable ROMable not portablendash Implicit assumption of virtual memoryndash Native stack use address range reservationndash Implicit assumption of process model

bull Global variables system threads

13

CVM featuresbull Good JVM featuresbull Device friendlinessbull Easily re-targetablebull Narrow porting interfacebull Almost entirely in C (except

dynamic compiler)bull ~256KB with JNI reflection

verification

bull CVM supports all Java 2 Platform version 13

bull VM features and libraries for security weak references JNI RMI and JVMDI

bull CVM allows devices to map Java threads directly to native threads

bull Can run Java classes out of ROMbull Contains a precise memory system

with advanced Garbage Collection features

bull Small average GC pause timesbull Pluggable Garbage Collectorsbull Full separation of VM from memory

system

14

J2ME Profiles

bull Mobile Information Device Profile (MIDP)ndash Profile for wireless devices implementing CLDC

bull J2ME Foundation Profilendash Profile for non-GUI networked devices

implementing CDC

bull J2ME Personal Basis Personal RMI Profilesndash Basic graphics next generation PersonalJava

environment and RMI support for CDC amp Foundation Profile based devices

15

CDC APIs

bull 1048576 Defines minimum set of APIs for Java VM supportndash javalang VM system classes (Object Thread etc)ndash javautilUnderlying utilitiesndash javanetUDP Datagram and File URLndash javaioFilendash javatextI18n support for Java VM error messagesndash javasecurityFine grain security and encryption

for object serialization16

CVM Sizes Today

bull CVM onlyndash Static ROM + RAM req= 258 KB

bull Natives onlyndash Static ROM + RAM req= 124 KB

bull Porting layer onlyndash Static ROM + RAM req= 28 KB

bull CVM+natives+porting_layerndash Static ROM + RAM req= 410 KB

17

Foundation Profile APIsbull Defines core set of Java platform functionality

ndash No GUIndash Subset of JDK 13

bull Completes full functionality from CDCndash javalangRounds out full javalang(Compiler

UnknownError)ndash javautilAdds full zip support Timer etcndash javanetAdds TCP Socket and HTTPndash javaioRounds out full javaio (Readers and Writers)ndash javatextFull I18n (Annotation Collator Iterators etc)ndash javasecurityAdds Code Signing and Certificates

18

CVM Sizes with Foundation Profile APIs

bull CDC Java libraries (ROMized)ndash Static ROM + RAM req= 1011 KB

bull Foundation Java libraries (ROMized)ndash Static ROM + RAM req= 1564 KB

bull CDC TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1421 KB

bull Java libraries + natives for Foundation Profilendash Static ROM + RAM req = 553 KB

bull Foundation TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1974 KB

19

  • Java 2 Micro Edition (J2ME) and the world of java
  • The J2ME Architecture
  • Slide 3
  • Configurations
  • Profiles
  • Optional Packages
  • Slide 7
  • Mobile Information Device Profile
  • Related Technologies Java Cardtrade Technology
  • Related Technologies EmbeddedJavatrade Technology
  • J2MEtrade Connected Device Configuration
  • Example J2MEtrade CDC Uses
  • What Is CVM
  • CVM features
  • J2ME Profiles
  • CDC APIs
  • CVM Sizes Today
  • Foundation Profile APIs
  • CVM Sizes with Foundation Profile APIs
Page 10: Java 2 Micro Edition (J2ME) and the world of java The Java 2 Platform, Micro Edition (J2ME) provides a flexible environment for applications running on

Related TechnologiesEmbeddedJavatrade Technology

bull EmbeddedJava technology is a program from Sun supporting development of dedicated-function embedded devices for a wide range of end uses

bull EmbeddedJava technology gives device manufacturers the ability tondash Configure the Java platform to leave out unneeded

classes and VM featuresndash Minimize resource requirements and cost for a

deeply-embedded devicendash Optimize for devices with no GUI and intermittent

(at best) networkingndash Keep APIs for their devices private

10

J2MEtrade Connected Device Configuration

bull Connected Device Configuration (CDC)ndash Targeted for devices that have 2 MB or more total

available memoryndash Memory dedicated to J2ME environmentndash More than 2MB ROMFlashndash More than 512 KB RAMndash Network connectivityndash Full Java 2 Virtual Machine specification

11

Example J2MEtrade CDC Uses

bull Wireless communicatorsbull High-end PDAsbull TV set-top boxesbull Gatewaysbull Automotive entertainment and navigation

systemsbull TelecommNetworking Equipmentbull Industrial Controllers

12

What Is CVM

bull Basis for J2ME CDC and profilesndash Large VMs for desktopsservers dont scale well to

devicesndash Static and dynamic memory footprint too bigndash Not embeddable ROMable not portablendash Implicit assumption of virtual memoryndash Native stack use address range reservationndash Implicit assumption of process model

bull Global variables system threads

13

CVM featuresbull Good JVM featuresbull Device friendlinessbull Easily re-targetablebull Narrow porting interfacebull Almost entirely in C (except

dynamic compiler)bull ~256KB with JNI reflection

verification

bull CVM supports all Java 2 Platform version 13

bull VM features and libraries for security weak references JNI RMI and JVMDI

bull CVM allows devices to map Java threads directly to native threads

bull Can run Java classes out of ROMbull Contains a precise memory system

with advanced Garbage Collection features

bull Small average GC pause timesbull Pluggable Garbage Collectorsbull Full separation of VM from memory

system

14

J2ME Profiles

bull Mobile Information Device Profile (MIDP)ndash Profile for wireless devices implementing CLDC

bull J2ME Foundation Profilendash Profile for non-GUI networked devices

implementing CDC

bull J2ME Personal Basis Personal RMI Profilesndash Basic graphics next generation PersonalJava

environment and RMI support for CDC amp Foundation Profile based devices

15

CDC APIs

bull 1048576 Defines minimum set of APIs for Java VM supportndash javalang VM system classes (Object Thread etc)ndash javautilUnderlying utilitiesndash javanetUDP Datagram and File URLndash javaioFilendash javatextI18n support for Java VM error messagesndash javasecurityFine grain security and encryption

for object serialization16

CVM Sizes Today

bull CVM onlyndash Static ROM + RAM req= 258 KB

bull Natives onlyndash Static ROM + RAM req= 124 KB

bull Porting layer onlyndash Static ROM + RAM req= 28 KB

bull CVM+natives+porting_layerndash Static ROM + RAM req= 410 KB

17

Foundation Profile APIsbull Defines core set of Java platform functionality

ndash No GUIndash Subset of JDK 13

bull Completes full functionality from CDCndash javalangRounds out full javalang(Compiler

UnknownError)ndash javautilAdds full zip support Timer etcndash javanetAdds TCP Socket and HTTPndash javaioRounds out full javaio (Readers and Writers)ndash javatextFull I18n (Annotation Collator Iterators etc)ndash javasecurityAdds Code Signing and Certificates

18

CVM Sizes with Foundation Profile APIs

bull CDC Java libraries (ROMized)ndash Static ROM + RAM req= 1011 KB

bull Foundation Java libraries (ROMized)ndash Static ROM + RAM req= 1564 KB

bull CDC TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1421 KB

bull Java libraries + natives for Foundation Profilendash Static ROM + RAM req = 553 KB

bull Foundation TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1974 KB

19

  • Java 2 Micro Edition (J2ME) and the world of java
  • The J2ME Architecture
  • Slide 3
  • Configurations
  • Profiles
  • Optional Packages
  • Slide 7
  • Mobile Information Device Profile
  • Related Technologies Java Cardtrade Technology
  • Related Technologies EmbeddedJavatrade Technology
  • J2MEtrade Connected Device Configuration
  • Example J2MEtrade CDC Uses
  • What Is CVM
  • CVM features
  • J2ME Profiles
  • CDC APIs
  • CVM Sizes Today
  • Foundation Profile APIs
  • CVM Sizes with Foundation Profile APIs
Page 11: Java 2 Micro Edition (J2ME) and the world of java The Java 2 Platform, Micro Edition (J2ME) provides a flexible environment for applications running on

J2MEtrade Connected Device Configuration

bull Connected Device Configuration (CDC)ndash Targeted for devices that have 2 MB or more total

available memoryndash Memory dedicated to J2ME environmentndash More than 2MB ROMFlashndash More than 512 KB RAMndash Network connectivityndash Full Java 2 Virtual Machine specification

11

Example J2MEtrade CDC Uses

bull Wireless communicatorsbull High-end PDAsbull TV set-top boxesbull Gatewaysbull Automotive entertainment and navigation

systemsbull TelecommNetworking Equipmentbull Industrial Controllers

12

What Is CVM

bull Basis for J2ME CDC and profilesndash Large VMs for desktopsservers dont scale well to

devicesndash Static and dynamic memory footprint too bigndash Not embeddable ROMable not portablendash Implicit assumption of virtual memoryndash Native stack use address range reservationndash Implicit assumption of process model

bull Global variables system threads

13

CVM featuresbull Good JVM featuresbull Device friendlinessbull Easily re-targetablebull Narrow porting interfacebull Almost entirely in C (except

dynamic compiler)bull ~256KB with JNI reflection

verification

bull CVM supports all Java 2 Platform version 13

bull VM features and libraries for security weak references JNI RMI and JVMDI

bull CVM allows devices to map Java threads directly to native threads

bull Can run Java classes out of ROMbull Contains a precise memory system

with advanced Garbage Collection features

bull Small average GC pause timesbull Pluggable Garbage Collectorsbull Full separation of VM from memory

system

14

J2ME Profiles

bull Mobile Information Device Profile (MIDP)ndash Profile for wireless devices implementing CLDC

bull J2ME Foundation Profilendash Profile for non-GUI networked devices

implementing CDC

bull J2ME Personal Basis Personal RMI Profilesndash Basic graphics next generation PersonalJava

environment and RMI support for CDC amp Foundation Profile based devices

15

CDC APIs

bull 1048576 Defines minimum set of APIs for Java VM supportndash javalang VM system classes (Object Thread etc)ndash javautilUnderlying utilitiesndash javanetUDP Datagram and File URLndash javaioFilendash javatextI18n support for Java VM error messagesndash javasecurityFine grain security and encryption

for object serialization16

CVM Sizes Today

bull CVM onlyndash Static ROM + RAM req= 258 KB

bull Natives onlyndash Static ROM + RAM req= 124 KB

bull Porting layer onlyndash Static ROM + RAM req= 28 KB

bull CVM+natives+porting_layerndash Static ROM + RAM req= 410 KB

17

Foundation Profile APIsbull Defines core set of Java platform functionality

ndash No GUIndash Subset of JDK 13

bull Completes full functionality from CDCndash javalangRounds out full javalang(Compiler

UnknownError)ndash javautilAdds full zip support Timer etcndash javanetAdds TCP Socket and HTTPndash javaioRounds out full javaio (Readers and Writers)ndash javatextFull I18n (Annotation Collator Iterators etc)ndash javasecurityAdds Code Signing and Certificates

18

CVM Sizes with Foundation Profile APIs

bull CDC Java libraries (ROMized)ndash Static ROM + RAM req= 1011 KB

bull Foundation Java libraries (ROMized)ndash Static ROM + RAM req= 1564 KB

bull CDC TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1421 KB

bull Java libraries + natives for Foundation Profilendash Static ROM + RAM req = 553 KB

bull Foundation TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1974 KB

19

  • Java 2 Micro Edition (J2ME) and the world of java
  • The J2ME Architecture
  • Slide 3
  • Configurations
  • Profiles
  • Optional Packages
  • Slide 7
  • Mobile Information Device Profile
  • Related Technologies Java Cardtrade Technology
  • Related Technologies EmbeddedJavatrade Technology
  • J2MEtrade Connected Device Configuration
  • Example J2MEtrade CDC Uses
  • What Is CVM
  • CVM features
  • J2ME Profiles
  • CDC APIs
  • CVM Sizes Today
  • Foundation Profile APIs
  • CVM Sizes with Foundation Profile APIs
Page 12: Java 2 Micro Edition (J2ME) and the world of java The Java 2 Platform, Micro Edition (J2ME) provides a flexible environment for applications running on

Example J2MEtrade CDC Uses

bull Wireless communicatorsbull High-end PDAsbull TV set-top boxesbull Gatewaysbull Automotive entertainment and navigation

systemsbull TelecommNetworking Equipmentbull Industrial Controllers

12

What Is CVM

bull Basis for J2ME CDC and profilesndash Large VMs for desktopsservers dont scale well to

devicesndash Static and dynamic memory footprint too bigndash Not embeddable ROMable not portablendash Implicit assumption of virtual memoryndash Native stack use address range reservationndash Implicit assumption of process model

bull Global variables system threads

13

CVM featuresbull Good JVM featuresbull Device friendlinessbull Easily re-targetablebull Narrow porting interfacebull Almost entirely in C (except

dynamic compiler)bull ~256KB with JNI reflection

verification

bull CVM supports all Java 2 Platform version 13

bull VM features and libraries for security weak references JNI RMI and JVMDI

bull CVM allows devices to map Java threads directly to native threads

bull Can run Java classes out of ROMbull Contains a precise memory system

with advanced Garbage Collection features

bull Small average GC pause timesbull Pluggable Garbage Collectorsbull Full separation of VM from memory

system

14

J2ME Profiles

bull Mobile Information Device Profile (MIDP)ndash Profile for wireless devices implementing CLDC

bull J2ME Foundation Profilendash Profile for non-GUI networked devices

implementing CDC

bull J2ME Personal Basis Personal RMI Profilesndash Basic graphics next generation PersonalJava

environment and RMI support for CDC amp Foundation Profile based devices

15

CDC APIs

bull 1048576 Defines minimum set of APIs for Java VM supportndash javalang VM system classes (Object Thread etc)ndash javautilUnderlying utilitiesndash javanetUDP Datagram and File URLndash javaioFilendash javatextI18n support for Java VM error messagesndash javasecurityFine grain security and encryption

for object serialization16

CVM Sizes Today

bull CVM onlyndash Static ROM + RAM req= 258 KB

bull Natives onlyndash Static ROM + RAM req= 124 KB

bull Porting layer onlyndash Static ROM + RAM req= 28 KB

bull CVM+natives+porting_layerndash Static ROM + RAM req= 410 KB

17

Foundation Profile APIsbull Defines core set of Java platform functionality

ndash No GUIndash Subset of JDK 13

bull Completes full functionality from CDCndash javalangRounds out full javalang(Compiler

UnknownError)ndash javautilAdds full zip support Timer etcndash javanetAdds TCP Socket and HTTPndash javaioRounds out full javaio (Readers and Writers)ndash javatextFull I18n (Annotation Collator Iterators etc)ndash javasecurityAdds Code Signing and Certificates

18

CVM Sizes with Foundation Profile APIs

bull CDC Java libraries (ROMized)ndash Static ROM + RAM req= 1011 KB

bull Foundation Java libraries (ROMized)ndash Static ROM + RAM req= 1564 KB

bull CDC TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1421 KB

bull Java libraries + natives for Foundation Profilendash Static ROM + RAM req = 553 KB

bull Foundation TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1974 KB

19

  • Java 2 Micro Edition (J2ME) and the world of java
  • The J2ME Architecture
  • Slide 3
  • Configurations
  • Profiles
  • Optional Packages
  • Slide 7
  • Mobile Information Device Profile
  • Related Technologies Java Cardtrade Technology
  • Related Technologies EmbeddedJavatrade Technology
  • J2MEtrade Connected Device Configuration
  • Example J2MEtrade CDC Uses
  • What Is CVM
  • CVM features
  • J2ME Profiles
  • CDC APIs
  • CVM Sizes Today
  • Foundation Profile APIs
  • CVM Sizes with Foundation Profile APIs
Page 13: Java 2 Micro Edition (J2ME) and the world of java The Java 2 Platform, Micro Edition (J2ME) provides a flexible environment for applications running on

What Is CVM

bull Basis for J2ME CDC and profilesndash Large VMs for desktopsservers dont scale well to

devicesndash Static and dynamic memory footprint too bigndash Not embeddable ROMable not portablendash Implicit assumption of virtual memoryndash Native stack use address range reservationndash Implicit assumption of process model

bull Global variables system threads

13

CVM featuresbull Good JVM featuresbull Device friendlinessbull Easily re-targetablebull Narrow porting interfacebull Almost entirely in C (except

dynamic compiler)bull ~256KB with JNI reflection

verification

bull CVM supports all Java 2 Platform version 13

bull VM features and libraries for security weak references JNI RMI and JVMDI

bull CVM allows devices to map Java threads directly to native threads

bull Can run Java classes out of ROMbull Contains a precise memory system

with advanced Garbage Collection features

bull Small average GC pause timesbull Pluggable Garbage Collectorsbull Full separation of VM from memory

system

14

J2ME Profiles

bull Mobile Information Device Profile (MIDP)ndash Profile for wireless devices implementing CLDC

bull J2ME Foundation Profilendash Profile for non-GUI networked devices

implementing CDC

bull J2ME Personal Basis Personal RMI Profilesndash Basic graphics next generation PersonalJava

environment and RMI support for CDC amp Foundation Profile based devices

15

CDC APIs

bull 1048576 Defines minimum set of APIs for Java VM supportndash javalang VM system classes (Object Thread etc)ndash javautilUnderlying utilitiesndash javanetUDP Datagram and File URLndash javaioFilendash javatextI18n support for Java VM error messagesndash javasecurityFine grain security and encryption

for object serialization16

CVM Sizes Today

bull CVM onlyndash Static ROM + RAM req= 258 KB

bull Natives onlyndash Static ROM + RAM req= 124 KB

bull Porting layer onlyndash Static ROM + RAM req= 28 KB

bull CVM+natives+porting_layerndash Static ROM + RAM req= 410 KB

17

Foundation Profile APIsbull Defines core set of Java platform functionality

ndash No GUIndash Subset of JDK 13

bull Completes full functionality from CDCndash javalangRounds out full javalang(Compiler

UnknownError)ndash javautilAdds full zip support Timer etcndash javanetAdds TCP Socket and HTTPndash javaioRounds out full javaio (Readers and Writers)ndash javatextFull I18n (Annotation Collator Iterators etc)ndash javasecurityAdds Code Signing and Certificates

18

CVM Sizes with Foundation Profile APIs

bull CDC Java libraries (ROMized)ndash Static ROM + RAM req= 1011 KB

bull Foundation Java libraries (ROMized)ndash Static ROM + RAM req= 1564 KB

bull CDC TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1421 KB

bull Java libraries + natives for Foundation Profilendash Static ROM + RAM req = 553 KB

bull Foundation TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1974 KB

19

  • Java 2 Micro Edition (J2ME) and the world of java
  • The J2ME Architecture
  • Slide 3
  • Configurations
  • Profiles
  • Optional Packages
  • Slide 7
  • Mobile Information Device Profile
  • Related Technologies Java Cardtrade Technology
  • Related Technologies EmbeddedJavatrade Technology
  • J2MEtrade Connected Device Configuration
  • Example J2MEtrade CDC Uses
  • What Is CVM
  • CVM features
  • J2ME Profiles
  • CDC APIs
  • CVM Sizes Today
  • Foundation Profile APIs
  • CVM Sizes with Foundation Profile APIs
Page 14: Java 2 Micro Edition (J2ME) and the world of java The Java 2 Platform, Micro Edition (J2ME) provides a flexible environment for applications running on

CVM featuresbull Good JVM featuresbull Device friendlinessbull Easily re-targetablebull Narrow porting interfacebull Almost entirely in C (except

dynamic compiler)bull ~256KB with JNI reflection

verification

bull CVM supports all Java 2 Platform version 13

bull VM features and libraries for security weak references JNI RMI and JVMDI

bull CVM allows devices to map Java threads directly to native threads

bull Can run Java classes out of ROMbull Contains a precise memory system

with advanced Garbage Collection features

bull Small average GC pause timesbull Pluggable Garbage Collectorsbull Full separation of VM from memory

system

14

J2ME Profiles

bull Mobile Information Device Profile (MIDP)ndash Profile for wireless devices implementing CLDC

bull J2ME Foundation Profilendash Profile for non-GUI networked devices

implementing CDC

bull J2ME Personal Basis Personal RMI Profilesndash Basic graphics next generation PersonalJava

environment and RMI support for CDC amp Foundation Profile based devices

15

CDC APIs

bull 1048576 Defines minimum set of APIs for Java VM supportndash javalang VM system classes (Object Thread etc)ndash javautilUnderlying utilitiesndash javanetUDP Datagram and File URLndash javaioFilendash javatextI18n support for Java VM error messagesndash javasecurityFine grain security and encryption

for object serialization16

CVM Sizes Today

bull CVM onlyndash Static ROM + RAM req= 258 KB

bull Natives onlyndash Static ROM + RAM req= 124 KB

bull Porting layer onlyndash Static ROM + RAM req= 28 KB

bull CVM+natives+porting_layerndash Static ROM + RAM req= 410 KB

17

Foundation Profile APIsbull Defines core set of Java platform functionality

ndash No GUIndash Subset of JDK 13

bull Completes full functionality from CDCndash javalangRounds out full javalang(Compiler

UnknownError)ndash javautilAdds full zip support Timer etcndash javanetAdds TCP Socket and HTTPndash javaioRounds out full javaio (Readers and Writers)ndash javatextFull I18n (Annotation Collator Iterators etc)ndash javasecurityAdds Code Signing and Certificates

18

CVM Sizes with Foundation Profile APIs

bull CDC Java libraries (ROMized)ndash Static ROM + RAM req= 1011 KB

bull Foundation Java libraries (ROMized)ndash Static ROM + RAM req= 1564 KB

bull CDC TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1421 KB

bull Java libraries + natives for Foundation Profilendash Static ROM + RAM req = 553 KB

bull Foundation TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1974 KB

19

  • Java 2 Micro Edition (J2ME) and the world of java
  • The J2ME Architecture
  • Slide 3
  • Configurations
  • Profiles
  • Optional Packages
  • Slide 7
  • Mobile Information Device Profile
  • Related Technologies Java Cardtrade Technology
  • Related Technologies EmbeddedJavatrade Technology
  • J2MEtrade Connected Device Configuration
  • Example J2MEtrade CDC Uses
  • What Is CVM
  • CVM features
  • J2ME Profiles
  • CDC APIs
  • CVM Sizes Today
  • Foundation Profile APIs
  • CVM Sizes with Foundation Profile APIs
Page 15: Java 2 Micro Edition (J2ME) and the world of java The Java 2 Platform, Micro Edition (J2ME) provides a flexible environment for applications running on

J2ME Profiles

bull Mobile Information Device Profile (MIDP)ndash Profile for wireless devices implementing CLDC

bull J2ME Foundation Profilendash Profile for non-GUI networked devices

implementing CDC

bull J2ME Personal Basis Personal RMI Profilesndash Basic graphics next generation PersonalJava

environment and RMI support for CDC amp Foundation Profile based devices

15

CDC APIs

bull 1048576 Defines minimum set of APIs for Java VM supportndash javalang VM system classes (Object Thread etc)ndash javautilUnderlying utilitiesndash javanetUDP Datagram and File URLndash javaioFilendash javatextI18n support for Java VM error messagesndash javasecurityFine grain security and encryption

for object serialization16

CVM Sizes Today

bull CVM onlyndash Static ROM + RAM req= 258 KB

bull Natives onlyndash Static ROM + RAM req= 124 KB

bull Porting layer onlyndash Static ROM + RAM req= 28 KB

bull CVM+natives+porting_layerndash Static ROM + RAM req= 410 KB

17

Foundation Profile APIsbull Defines core set of Java platform functionality

ndash No GUIndash Subset of JDK 13

bull Completes full functionality from CDCndash javalangRounds out full javalang(Compiler

UnknownError)ndash javautilAdds full zip support Timer etcndash javanetAdds TCP Socket and HTTPndash javaioRounds out full javaio (Readers and Writers)ndash javatextFull I18n (Annotation Collator Iterators etc)ndash javasecurityAdds Code Signing and Certificates

18

CVM Sizes with Foundation Profile APIs

bull CDC Java libraries (ROMized)ndash Static ROM + RAM req= 1011 KB

bull Foundation Java libraries (ROMized)ndash Static ROM + RAM req= 1564 KB

bull CDC TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1421 KB

bull Java libraries + natives for Foundation Profilendash Static ROM + RAM req = 553 KB

bull Foundation TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1974 KB

19

  • Java 2 Micro Edition (J2ME) and the world of java
  • The J2ME Architecture
  • Slide 3
  • Configurations
  • Profiles
  • Optional Packages
  • Slide 7
  • Mobile Information Device Profile
  • Related Technologies Java Cardtrade Technology
  • Related Technologies EmbeddedJavatrade Technology
  • J2MEtrade Connected Device Configuration
  • Example J2MEtrade CDC Uses
  • What Is CVM
  • CVM features
  • J2ME Profiles
  • CDC APIs
  • CVM Sizes Today
  • Foundation Profile APIs
  • CVM Sizes with Foundation Profile APIs
Page 16: Java 2 Micro Edition (J2ME) and the world of java The Java 2 Platform, Micro Edition (J2ME) provides a flexible environment for applications running on

CDC APIs

bull 1048576 Defines minimum set of APIs for Java VM supportndash javalang VM system classes (Object Thread etc)ndash javautilUnderlying utilitiesndash javanetUDP Datagram and File URLndash javaioFilendash javatextI18n support for Java VM error messagesndash javasecurityFine grain security and encryption

for object serialization16

CVM Sizes Today

bull CVM onlyndash Static ROM + RAM req= 258 KB

bull Natives onlyndash Static ROM + RAM req= 124 KB

bull Porting layer onlyndash Static ROM + RAM req= 28 KB

bull CVM+natives+porting_layerndash Static ROM + RAM req= 410 KB

17

Foundation Profile APIsbull Defines core set of Java platform functionality

ndash No GUIndash Subset of JDK 13

bull Completes full functionality from CDCndash javalangRounds out full javalang(Compiler

UnknownError)ndash javautilAdds full zip support Timer etcndash javanetAdds TCP Socket and HTTPndash javaioRounds out full javaio (Readers and Writers)ndash javatextFull I18n (Annotation Collator Iterators etc)ndash javasecurityAdds Code Signing and Certificates

18

CVM Sizes with Foundation Profile APIs

bull CDC Java libraries (ROMized)ndash Static ROM + RAM req= 1011 KB

bull Foundation Java libraries (ROMized)ndash Static ROM + RAM req= 1564 KB

bull CDC TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1421 KB

bull Java libraries + natives for Foundation Profilendash Static ROM + RAM req = 553 KB

bull Foundation TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1974 KB

19

  • Java 2 Micro Edition (J2ME) and the world of java
  • The J2ME Architecture
  • Slide 3
  • Configurations
  • Profiles
  • Optional Packages
  • Slide 7
  • Mobile Information Device Profile
  • Related Technologies Java Cardtrade Technology
  • Related Technologies EmbeddedJavatrade Technology
  • J2MEtrade Connected Device Configuration
  • Example J2MEtrade CDC Uses
  • What Is CVM
  • CVM features
  • J2ME Profiles
  • CDC APIs
  • CVM Sizes Today
  • Foundation Profile APIs
  • CVM Sizes with Foundation Profile APIs
Page 17: Java 2 Micro Edition (J2ME) and the world of java The Java 2 Platform, Micro Edition (J2ME) provides a flexible environment for applications running on

CVM Sizes Today

bull CVM onlyndash Static ROM + RAM req= 258 KB

bull Natives onlyndash Static ROM + RAM req= 124 KB

bull Porting layer onlyndash Static ROM + RAM req= 28 KB

bull CVM+natives+porting_layerndash Static ROM + RAM req= 410 KB

17

Foundation Profile APIsbull Defines core set of Java platform functionality

ndash No GUIndash Subset of JDK 13

bull Completes full functionality from CDCndash javalangRounds out full javalang(Compiler

UnknownError)ndash javautilAdds full zip support Timer etcndash javanetAdds TCP Socket and HTTPndash javaioRounds out full javaio (Readers and Writers)ndash javatextFull I18n (Annotation Collator Iterators etc)ndash javasecurityAdds Code Signing and Certificates

18

CVM Sizes with Foundation Profile APIs

bull CDC Java libraries (ROMized)ndash Static ROM + RAM req= 1011 KB

bull Foundation Java libraries (ROMized)ndash Static ROM + RAM req= 1564 KB

bull CDC TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1421 KB

bull Java libraries + natives for Foundation Profilendash Static ROM + RAM req = 553 KB

bull Foundation TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1974 KB

19

  • Java 2 Micro Edition (J2ME) and the world of java
  • The J2ME Architecture
  • Slide 3
  • Configurations
  • Profiles
  • Optional Packages
  • Slide 7
  • Mobile Information Device Profile
  • Related Technologies Java Cardtrade Technology
  • Related Technologies EmbeddedJavatrade Technology
  • J2MEtrade Connected Device Configuration
  • Example J2MEtrade CDC Uses
  • What Is CVM
  • CVM features
  • J2ME Profiles
  • CDC APIs
  • CVM Sizes Today
  • Foundation Profile APIs
  • CVM Sizes with Foundation Profile APIs
Page 18: Java 2 Micro Edition (J2ME) and the world of java The Java 2 Platform, Micro Edition (J2ME) provides a flexible environment for applications running on

Foundation Profile APIsbull Defines core set of Java platform functionality

ndash No GUIndash Subset of JDK 13

bull Completes full functionality from CDCndash javalangRounds out full javalang(Compiler

UnknownError)ndash javautilAdds full zip support Timer etcndash javanetAdds TCP Socket and HTTPndash javaioRounds out full javaio (Readers and Writers)ndash javatextFull I18n (Annotation Collator Iterators etc)ndash javasecurityAdds Code Signing and Certificates

18

CVM Sizes with Foundation Profile APIs

bull CDC Java libraries (ROMized)ndash Static ROM + RAM req= 1011 KB

bull Foundation Java libraries (ROMized)ndash Static ROM + RAM req= 1564 KB

bull CDC TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1421 KB

bull Java libraries + natives for Foundation Profilendash Static ROM + RAM req = 553 KB

bull Foundation TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1974 KB

19

  • Java 2 Micro Edition (J2ME) and the world of java
  • The J2ME Architecture
  • Slide 3
  • Configurations
  • Profiles
  • Optional Packages
  • Slide 7
  • Mobile Information Device Profile
  • Related Technologies Java Cardtrade Technology
  • Related Technologies EmbeddedJavatrade Technology
  • J2MEtrade Connected Device Configuration
  • Example J2MEtrade CDC Uses
  • What Is CVM
  • CVM features
  • J2ME Profiles
  • CDC APIs
  • CVM Sizes Today
  • Foundation Profile APIs
  • CVM Sizes with Foundation Profile APIs
Page 19: Java 2 Micro Edition (J2ME) and the world of java The Java 2 Platform, Micro Edition (J2ME) provides a flexible environment for applications running on

CVM Sizes with Foundation Profile APIs

bull CDC Java libraries (ROMized)ndash Static ROM + RAM req= 1011 KB

bull Foundation Java libraries (ROMized)ndash Static ROM + RAM req= 1564 KB

bull CDC TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1421 KB

bull Java libraries + natives for Foundation Profilendash Static ROM + RAM req = 553 KB

bull Foundation TOTAL (CVM+natives+porting+libraries)ndash Static ROM + RAM req= 1974 KB

19

  • Java 2 Micro Edition (J2ME) and the world of java
  • The J2ME Architecture
  • Slide 3
  • Configurations
  • Profiles
  • Optional Packages
  • Slide 7
  • Mobile Information Device Profile
  • Related Technologies Java Cardtrade Technology
  • Related Technologies EmbeddedJavatrade Technology
  • J2MEtrade Connected Device Configuration
  • Example J2MEtrade CDC Uses
  • What Is CVM
  • CVM features
  • J2ME Profiles
  • CDC APIs
  • CVM Sizes Today
  • Foundation Profile APIs
  • CVM Sizes with Foundation Profile APIs