Extreme Java 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 APIs 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 MIDlets 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, 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 Java Card 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 Java virtual machine 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