Extreme G22.3033-007

Session 9 - Sub-Topic 1 Connected Devices Development Environments

Dr. Jean-Claude Franchitti

New York University Computer Science Department Courant Institute of Mathematical Sciences

1

Part I

Background Information

2

1 Recommended Textbook

Q Learning Wireless Java by Qusay Mahmoud O’Reilly, December 2001 ISBN#: 0-59600-243-2 http://www.oreilly.com/catalog/wirelessjava/

3

Glossary & FAQs

Q Profile “A layer on top of a configuration that adds additional to make a complete toolkit for a specific type of consumer device”

Q Configuration “Either the KVM or CVM combined with a minimal set of APIs that define the expected features for a broad category of consumer devices”

Q FAQs

4

2 Java-enabled XML Technologies

Q XML provides a universal syntax for Java semantics (behavior)

Q Portable, reusable data descriptions in XML

Q Portable Java code that makes the data behave in various ways

Q XML standard extension

Q Basic plumbing that translates XML into Java

Q parser, namespace support in the parser, simple API for XML (SAX), and document object model (DOM)

Q XML data binding standard extension

5

XML and Java Standards

Q XML includes is a family of technologies

Q XSL, XML Schema, XML Query, XPath, XPointer, XLink, DOM, RDF, CSS, XSL, XHTML, XML Signature, MathML, SMIL, SVG, etc.

Q Review the current state of the XML standards at http://www.w3c.org/XML

Q Review the current state of Java Technology and XML (JAXP) standards at http://java.sun.com/XML

Q Review the Java binding to DOM 2.0 at http://www.w3.org/TR/2000/REC-DOM-Level-2- Core-20001113/java-binding.zip

6

3 Part II

Palm Handheld Environment

7

Palm Devices (www.palmos.com/dev/tech/hardware/compare.html)

Q Sample device 1: Palm VIIx

Q 8 Mb RAM

Q 256K dynamic heap

Q PalmOS version 3.5

Q Motorola MC68EZ328 (“Dragonball EZ” chip)

Q 20 MHz CPU speed

Q TCP / IR / Flashable ROM support

Q FSTN display (150MHz)

8

4 Palm Devices (continued) (www.palmos.com/dev/tech/hardware/compare.html)

Q Sample device 2: m505

Q 8 Mb RAM

Q 256K dynamic heap

Q PalmOS version 4.0

Q Motorola MC68VZ328 (“Dragonball VZ” chip)

Q 33 MHz CPU speed

Q TCP / IR / Flashable ROM support

Q Dynamic language switch support

Q TFT, reflective, 16 bit color 9

MIDP for PalmOS 1.0 (http://java.sun.com/products/midp4palm/download.html)

Q A Java Runtime Environment for PalmOS handhelds

Q Same technology as that available for other MIDP- compliant devices (e.g., mobile phones, pagers, etc.)

Q Follows PalmOS user interface conventions

Q Compliant with CLDC 1.0 specification

Q Compliant with MIDP 1.0 specification

Q Targeted to PalmOS handhelds (Palm, Handspring, Sony, etc.) running PalmOS version 3.5 with at least

4 MB of RAM 10

5 MIDP for PalmOS 1.0 (continued) (http://java.sun.com/products/midp4palm/download.html)

Q PDA profile: http://www.jcp.org/jsr/detail/75.jsp

Q http://www.palmos.com/dev/support/docs/ui/UIGuidelinesTOC.html

Q http://www.palmos.com/dev/support/docs/conduits/win/

Q http://www.palmos.com/dev/support/docs/constructor/CGRTOC.html

Q http://www.palmos.com/dev/support/docs/fileformats/FileFormatsTOC.html

Q http://www.palmos.com/dev/support/docs/webclipping/PalmWebClippingTOC.html

Q http://www.palmos.com/dev/support/docs/recipes/

Q Includes:

Q Binary release of CLDC and MIDP for PalmOS

Q Desktop utility for converting to PRC files

Q Built in facility to allow users to view MIDP preferences

Q Sample MIDlets

Q User documentation 11

PalmOS 1.0 Development Environment

Q J2ME Wireless Toolkit

Q Development environment for PalmOS handelds

Q http://java.sun.com/products/j2mewtoolkit/

Q PalmOS Emulator

Q Software emulator for various PalmOS handelds

Q http://www.palmos.com/dev/tools/emulator/

Q Palm Desktop and Hotsync manager software

Q Provided with your Palm unit

Q Allows downloading of tested Java applications 12

6 J2ME Wireless Toolkit http://java.sun.com/products/j2mewtoolkit/

Q Targeted to CLDC/MIDP-compliant mobile phones and entry level PDAs

Q Includes emulation environment, documentation, and examples to develop CLDC/MIDP-compliant Java applications

Q Based on CLDC and MIDP 1.0.3 reference implementations

Q Can be tightly integrated with Forte for Java (for source level debugging), or JBuilder MobileSet

Q Provides command line, and various GUI interfaces

Q Can test applications on different emulated devices 13

PalmOS Emulator (POSE) http://www.palmos.com/dev/tools/emulator/ http://www.palmos.com/dev/tools/core.html

Q Based on the original “Copilot” implementation

Q Does not include ROM images

Q ROM Images can be obtained from:

Q Resource Pavilion (http://www.palmos.com/dev/programs/pdp/join.html)

Q Need to join the PalmOS Developers’ Program

Q Licensee’s developer program

Q Palm device (non-debug ROM image only)

Q Skins can be used to emulate the look of the emulated device

Q http://www.palmos.com/dev/support/docs/devguide/ToolsTOC.html

14

7 Types of Palm Applications

Q Web Clipping applications (WCA)

Q Set of HTML pages compressed in the Palm Query Application (PQA) format

Q Palm.net proxy server translates requests into HTTP requests

Q Requires a Web Clipping Application / PQA Builder tool

Q Applications run in the Web Clipping Application Viewer

Q GUI applications

Q Single-threaded event-driven programs

Q Translated to PRC files prior to loading on the Palm device

Q Development environments available for , C++, VB, and Java

Q C/C++ development requires PalmOS SDK or third party environment

Q Conduits

Q Hotsync plug-ins

Q Developed in C++, VB, and Java

Q Development requires PalmOS CDK or third party tool

15

Useful Palm Developer Resources

Q http://www.palmos.com/dev/start/intro.html

Q Knowledge base

Q Forums

Q Support

Q Books

Q Tools

Q Requires a Web Clipping Application Builder tool

Q Applications run in the Web Clipping Application Viewer

Q Existing technologies based on the PDA profile

Q KVM and MIDP

Q VisualAge Micro Edition and J9

Q JBuilder HandHeld Express

Q Jbed Micro Edition

Q Kada Systems and Kava VM

Q SuperWaba VM

Q Oracle 8iLite

16

8 Palm IDEs

Q VisualAge Micro Edition for Java

Q JBuilder HandHeld Express (JBuilder 5 and JBuilder MobileSet)

Q Simplicity for Palm OS Platform (IBM J9 VM)

Q Jbed Micro Edition CLDC – Java VM

Q Kada Systems – Java VM

Q Forte for Java 2.0/3.0

17

Sample Palm Application

Q Beaming contact information from a custom Palm database

18

9 Part III

CLDC/MIDP Development Environment

Also See http://www.wabaworkbench.com and http://java.sun.com/products/cldc/

19

CLDC/MIDP Development Environment

Q Connected Limited Device Configuration and K Virtual Machine

Q http://www.sun.com/software/communitysource/j2me/cldc/

Q Minimum footprint Java building blocks for small resource- constrained devices

Q Mobile Information Device profile

Q http://www.sun.com/software/communitysource/midp/

Q Addendum to the CLDC runtime environment targeted to cellular phones and two-way pagers

Q Wireless Toolkit (same as for PalmOS devices)

Q http://java.sun.com/products/j2mewtoolkit/download.html 20

10 Part IV

CDC Development Environment http://java.sun.com/products/cdc/

21

CDC/FP Development Environment

Q Connected Device Configuration and C Virtual Machine

Q http://www.sun.com/software/communitysource/j2me/cdc

Q Portable, full featured JVM for next generation consumer electronics and embedded devices

Q Foundation Profile (FP)

Q http://www.sun.com/software/communitysource/j2me/cdc/

Q Set of APIs provided as an addendum to the CDC runtime environment targeted to consumer electronics and embedded devices

Q Wireless Toolkit

Q CDC/FP technology still undergoing JCP approval

Q No toolkits being targeted to that platform per say 22

11 Part V

JavaCard Development Kit http://java.sun.com/products/javacard/

23

Smart Cards

Q Integrated Circuit (IC) Microprocessor Cards

Q 8 bit processor, 16KB ROM, 512KB RAM

Q E.g., value cards, and security applications

Q Integrated Circuit (IC) Memory Cards

Q 1-4KB of data

Q E.g., prepaid phone cards, alternative to stripe cards in high-security applications

Q Optical Memory Cards

Q Card + CD, up to 4 MB or WORM memory

Q E.g., medical/driving records, etc. 24

12 Travel Card Example

25

Internet Access Card Example

26

13 Student Card Example

27

Retail Shopping Card Example

28

14 Technology Components

TM Q Java Card 2.1.1 Platform Specifications

Q Java Card API and framework

Q Java Card Development Kit

Q Off-card verifier

Q Executable implementation of C-JCRE

Q Converter

Q C-JCRE Reference Implementation of the Java Card Runtime Environment Written in the C Programming Language

Q JCRE is the JCVM interpreter 29

OpenCard Framework (see OpenCard Framework)

Q Runs on the Card Terminal Side or Workstation

Q Provides Developers with an API that Communicates with the Card Reader

Q Abstracts Communication Details from Application Running on a Card Terminal or Workstation

30

15 JavaCard Software

Q Java Card Development Kit

Q Off-card verifier

Q Implements the Java Card Runtime Environment (C-JCRE)

Q Converter

Q Java Card API and framework

Q http://java.sun.com/products/javacard/dev_kit.html

Q Java Card Platform Specification

Q http://java.sun.com/products/javacard/javacard21.html

31

Part VI

Java Embedded Server Environment http://www.sun.com/software/embeddedserver/

32

16 Java Embedded Server Technology

33

Java Embedded Server Technology (continued)

34

17 Java Embedded Server Software

Q Service-driven network support

Q Dynamic delivery of network services on demand

Q Small-footprint application server

Q Can be embedded in any networked device (e.g., home gateway, car, vending machine, etc.)

Q Provides life-cycle management of network-based services

Q Java Embedded Server framework

Q Allows development, deployment, and installation of applications and services

Q Secure and dynamic management of software and services over the network

Q http://www.sun.com/software/embeddedserver/

Q http://www.sun.com/software/embeddedserver/jes-datasheet0701.pdf35

Part VII

Java TV for Microsoft Windows http://java.sun.com/products/javatv/

36

18 Java Technology in Digital TV

Q Java platform / Java TV API

Q Development and deployment platform for interactive services

Q E.g., electronic programming guides (EPGs), Video-on-demand (VOD), and enhanced broadcasting

Q Java API Technical Overview:

Q http://java.sun.com/products/javatv/jtv-1_0-spec_overview.pdf

Q Java TV API Specification:

Q http://java.sun.com/Download4

Q Java TC reference implementation for Windows

Q http://www.sun.com/software/communitysource/javatv/download. html

37

Part VIII

PersonalJava Emulation Environment http://java.sun.com/products/personaljava/

38

19 PersonalJava Development Environment

Q Personal Java Specification

Q http://java.sun.com/products/personaljava/

Q Source code implementation is also available

Q Requires a Sun Community Source license

Q PersonalJava Runtime Environment

Q Run applet and applications written to any target PersonalJava API

Q E.g., Windows CE platform, etc.

Q Developer tools

Q http://java.sun.com/products/personaljava/pj-emulation.html

Q Also: JavaCheck, and Java 2 SDK 39

PersonalJava Basic Information

Q PersonalJava Application Environment (PJAE) provides a and class library that enables applications for home, office, and mobile consumer devices

Q Version 3.1 source code available for PersonalJava 1.2 spec.

Q Runtime Environment for Window CE available

Q PersonalJava Compatibility Classes

Q Tools:

Q Multiple versions of the PersonalJava emulation environment

Q Conformance testing tool: JavaCheck

40

20 Touchable Look and Feel

Q Touchable Look-and-Feel Design Overview

Q Specific look and feel designed for touch screen based consumer products

Q Provides developers with a good starting point for a touch screen based consumer product look and feel

Q Provides a look and feel that is usable for consumers

Q Reference design/framework from which a variety of derivative look and feel designs are possible

Q Truffle Graphical Toolkit Customization Guide

Q Describes how to modify the touchable look and feel

Q Scalability, color schemes, alternate input mechanisms, low resolution and small displays

Q Simplified version of JFC’s pluggable L&F (easy customizations, 41 high portability, low memory footprint, I18N support)

Touchable Look and Feel (continued)

Q Original (Confusing) Design of the Choice Menu

Q Final Design of the Choice Menu

42

21 Touchable Look and Feel (continued)

Q Highly Rated Color Schemes

43

22