The Title Will Go Here
Download
Report
Transcript The Title Will Go Here
ProvideX
On Handhelds
Presented by:
Jarett Smith
Presentation Overview
Landscape of Mobile Computing
Wireless Connections to Internet
Challenges of Mobile Computing
Why We Chose Java 2 Micro Edition
Java 2 Micro Edition (J2ME)
J2ME Profiles and Configurations
J2ME Runtime Environments
WebSphere Everyplace Micro Environment
(WEME)
JavX Products
ProvideX WinCELink Object
Landscape of Mobile Computing
• A new and exciting world that has incredible
potential
• We're entering an era where mobile
software will fundamentally transform
almost everything we do
• Cell Phone Facts:
•
•
•
•
More then 1 billion cell phones in the world
700 million cell phones were sold last year
171.2 million cell phone subscribers in the US
In 2005, Nokia expects to sell more than 25 million
smart phones, as well as 40 million mobile devices
with MP3 players
• More powerful than desktop PCs of the late ’90s
Landscape of Mobile Computing
• PDA Facts:
• Over 1 million PocketPC devices shipped in the
fourth quarter of 2004
• RIM Blackberry subscribers now over 3 million
• 1 million subscribers added in less than six months
• iPAQ has power equivalent to a three-year-old PC.
Landscape of Mobile Computing
• Convergence of Devices
• Phones now have the capabilities of PDAs, and PDAs
come with built-in phones
• People are waking up to the power of these
devices
"Soon, getting a cell phone just to talk to people will be
a thing of the past"
-Pat Palmer, Midwest Wireless
Connecting to the Internet
Wireless Everywhere
• Wide area cellular phone/pager networks
• Wi-Fi or 802.11
• Wireless network for high speed connectivity over
a range of a few hundred feet
• Not ubiquitous like cell phone coverage but many
Cities (Chicago, Philadelphia) are building citywide
wireless networks
• Sites like www.wifi411.com list thousands of Wi-Fi
hotspots; e.g, a search of Orlando Florida turns up
68 Wi-Fi hotspots
• Wi-Fi is connecting an increasing assortment of
devices, not just laptops and PDAs but also
cameras, traffic systems, meter readers, location
sensors, cell phones, etc.
Connecting to the Internet
Wireless Everywhere
• WiMAX or 802.16
• Wireless network providing high speed connectivity
with a range that may extend 20 miles
• Significant advancement recently when Intel
announced it will begin worldwide shipments of
WiMAX hardware
• May do for the internet what cell phones did for
making telephone calls
• WiMAX has the potential to become an alternative
provider of internet, telephone, and even
television service
• According to the Telecommunications Industry
Association (TIA), the WiMAX infrastructure market
in the US will be worth $290 million by 2008.
Challenges of Mobile Computing
• Creating mobile software applications has
traditionally been very difficult
• The term "mobile devices" is applied to a wide
variety of unrelated machines, including the
traditional PDA, smart phones, pagers, GPS
units, etc.
• The market is fragmented to the point that
even two devices from the same vendor are
often not compatible, let alone devices from
different vendors
Challenges of Mobile Computing
• There are many vendors and no dominant
player (like Microsoft is to the desktop
computing world).
• A wide variety of hardware and software vendors
means standards are not easily agreed upon
• Wireless Connectivity bandwidth and
reliability is extremely variable
• While some buildings have reliable high speed
wireless, many don’t
• Outdoor devices will encounter gaps in wireless
coverage and may have to rely on low bandwidth
cell phone or pager networks
Challenges of Mobile Computing
• Device Memory and Processing power is
constrained and varies tremendously
• Mobile Devices rely on batteries with limited
power; developers must consider power
consumption
Java 2 Micro Edition (J2ME)
Why We Chose J2ME
• Java Community Process
• Wide range of hardware and software vendors come
together to agree on specifications and standards
for new and existing Java APIs
• Currently Java-based handsets dominate
market for mobile applications
• Several major players in handheld market
(Nokia, Ericsson, Motorola, RIM, IBM, etc.)
have chosen Java as their preferred
development environment
Java 2 Micro Edition (J2ME)
Why We Chose J2ME
• Competitors like .Net and BREW relative
newcomers to field of mobile application
development.
• The .Net Compact Framework (CFW) is only available
on devices with Microsoft OS; e.g.,PocketPC or MS
Smartphone
• Fragmentation of mobile market means that
porting ProvideX C code to each device is not
possible
• Java is emerging as common platform
standard that developers can use to ensure
portability across different devices
Java 2 Micro Edition (J2ME)
• Platform for consumer and embedded devices
•
•
•
•
•
•
•
Mobile phones
PDAs
Set-top devices (interactive television)
Automotive
Fixed purpose consumer devices (E.G. Camcorders)
Network Printers
Routers
• Specifies
• Profiles
• Configurations
Java 2 Micro Edition (J2ME)
Profiles & Configurations
• J2ME supports vastly different hardware of
mobile devices through an abstraction known
as a configuration.
• System of profiles and configurations benefits
device manufacturers and application
programmers
• Device Manufacturers. Manufacturers choose a
J2ME configuration and profile for their devices, or
include a compliant JRE
• Application Programmers. When writing an
application developers can target a J2ME
configuration and profile and not a specific device
J2ME Configurations
• Configurations define minimum platform
requirements for a group of devices
• Considerations
• Processor power
• Memory available
• Screen size
• Current Configurations
• Connected Device Configuration (CDC)
• Connected Limited Device Configuration
(CLDC)
J2ME Configurations
CLDC
CDC
• Qualifiers
• Qualifiers
• Minimal Processor power
• Minimal Memory
• Network connection
• Example
• Mobile Phones
• RIM Blackberry
• Palm PDAs
• Hardware
• 16 or 32 bit CPU with
128 or 512 KB of memory
• Faster Processor
• More Memory
• Faster Network connection
• Example
• Pocket PC PDA
• TV Set-top devices
• In-vehicle system
• Hardware
• 16 or 32 bit CPU with 128
or 512 KB of memory
J2ME Profiles
• Profiles are higher level APIs that define
• User interfaces available
• Access to device hardware
• Profiles, together with configurations,
provide a complete JRE specification for a
targeted group of devices
• Examples
• CDC Personal Profile
• CLDC Mobile Information Device Profile (MIDP)
J2ME Profiles (CLDC)
Mobile Information Device Profile (MIDP)
• Extends CLDC and provides a complete JRE for
limited embedded devices with a network
connection and a very basic user interface
• Mobile Phones
• Entry level PDAs
• RIM includes a CDC MIDP JRE
• Devices require at least
• Screen size 96x54
• 32kb of memory for JRE
• Network Connection
• Defines core functionality required by devices
•
•
•
•
User Interface (UI)
Network connectivity
Local file access
Application lifecycle control
J2ME Profiles (CDC)
Foundation Profile
• Extends CDC and provides a complete JRE for
embedded devices with a network connection but
no user interface
• Devices require at least
• 1024k of ROM
• 512k of RAM
• Network Connection
• Example devices
• Network Printer
• Router
• Residential Gateways
J2ME Profiles (CDC)
Personal Basis Profile
• Extends Foundation Profile and provides a
complete JRE for embedded devices with a
network connection and a very basic User
Interface.
• Example devices
• Interactive Television
• Automotive
• Fixed Consumer devices like a Camcorder
J2ME Profiles (CDC)
Personal Profile
• Extends Foundation Profile and provides a
complete JRE for embedded devices with a
network connection and a full Graphical User
Interface
• Devices require at least
• 2.5 megs of ROM
• 1 meg of RAM
• Network Connection
• Example devices
• High-end PDAs like PocketPC
• Game Consoles
• Handheld bar code scanners
J2ME Runtime Environments
• We recommend IBM’s WebSphere Everyplace
Micro Environment (AKA J9)
• CDC Personal Profile
• CDC Foundation Profile
• CLDC MIDP
• Many devices are shipped with a J2ME
runtime environment installed or as a
“companion” CD
• Search for “J2ME Java Virtual Machines” on
the internet and you’ll find dozens of vendors
IBM WEME
WebSphere Everyplace Micro Environment
• Production-ready Java runtime environment,
tested/certified to meet J2ME specifications
• Pre-installed on several devices
• Available from Handango for $5.99
• Free evaluation version (no expiration) is available
from IBM
• www-306.ibm.com/software/wireless/weme
• Several different J2ME configurations and profiles are
supported depending on the platform; e.g.,
• CDC Foundation Profile, and Personal Profile for PocketPC and
the Sharp Zaurus
• CLDC Mobile Information Device Profile (MIDP) for palmOne
Tungsten and PocketPC devices
JavX Products
• JavX is a Java-based version of WindX that
requires nothing on the client side but a
Java2-compliant Java Virtual Machine (JVM)
or a standard Web browser
• There are three JavX products:
JavXSE
• Java 2 Standard Edition required
JavXPP
• Minimum J2ME CDC Personal Profile required
JavXFP
• Minimum J2ME CDC Foundation Profile required
JavXSE
• Standard desktop version of JavX
• Requires a Java 2 Standard Edition (J2SE)
JRE, available for the following platforms:
•
•
•
•
Apple OS X
MS Windows 9x,NT,2000,XP
Linux
UNIX
• Supports most ProvideX (Version 6) features
• Download from
• http://www.pvx.com/downloads/javx/home.html
JavXPP
• Standard Pocket PC (PDA) version of JavX
• Requires a Java 2 Micro Edition (J2ME), Connected
Device Configuration (CDC) Personal Profile JRE
• Complete character UI support (fonts, lines and
shapes, colors, pictures, etc.)
• Mnemonics, system functions and variables (e.g.,
MSE, OBJ, FIN) are supported
• Supports the following GUI components
•
•
•
•
•
•
Buttons: BUTTON, RADIO, CHECK_BOX
Text Components: LIST_BOX, MULTI_LINES, DROP_BOX
Vertical and Horizontal Scroll Bars
Message Box
Tool bar
ProvideX Menu bar menus (not popup menus)
JavXFP
• The most basic version of JavX
• Requires the most basic J2ME CDC runtime
environment
• No character or graphical UI
• Runs as an invisible process
• Provides support for
• File IO on client device
• ProvideX OCX interface to Java
Communicating with CE Devices
• The primary means for a desktop PC to
communicate with a Windows CE device is
via Remote API (RAPI)
• RAPI is the term most often used to
describe any of the functionality exposed
by Microsoft’s RAPI.dll
• The RAPI.dll resides on the desktop and
is installed when Microsoft’s ActiveSync is
installed
ProvideX WinCELink Object
• WinCELink enables ProvideX applications to
talk with CE devices while they're connected
to the desktop
• The WinCELink object is a wrapper for
PvxRAPI.dll
• PvxRAPI.dll translates calls from
ProvideX into Unicode and passes them to
Microsoft’s RAPI.dll
ProvideX WinCELink Object
• Using the WinCELink object ProvideX
programs can easily manipulate a CE device
• Determine if a CE device is connected to the
desktop and communicate with it
• Get information about a file or directory; e.g.,
size, path, contents of a directory, etc.
• Create, delete, read, and write to files and
directories
• Run a program on a CE device
• Read the CE device’s registry
ProvideX WinCELink Object
Example
• The following opens a connection to a
WinCE device (PocketPC, Smartphone, etc)
00010
00020
00030
00040
00050
00060
LET WinCELink=NEW("WinCElink")
!if device is attached to PC then open
connect:
IF WinCELink'isDeviceOnCradle() THEN {
! device is on the cradle try to open
IF WinCELink'openConnection() THEN
...
ProvideX WinCELink Object
Example
• The following lists the contents of the CE
device’s root directory
00010
00020
00030
00040
00050
00060
00070
LET WinceLink=NEW("WinCElink")
!if device is attached to PC then open
connect:
IF WinceLink'isDeviceOnCradle() THEN {
! device is on the cradle try to open
IF WinceLink'openConnection() THEN {
Dir$=WinceLink'getDirectoryListing$(“/”)
...
ProvideX WinCELink Object
File Functions
getDirListing$
ceCreateDirectory$
ceRemoveDirectory
ceGetSpecialFolderPath$
ceCreateFile
ceCopyFile
ceDeleteFile
ceReadFile
ceWriteFile
ceGetFileSize
ceGetFileCreationTime$ ceGetFileAttributes$
ProvideX WinCELink Object
Device Information Functions
isDeviceOnCradle
openConnection
waitForConnection
ceGetDeviceOSInfo$
ceGetMemoryInfo$
ceGetBatteryInfo$
ceGetProcessorInfo$
isKeyInRegistry
ceCreateProcess
JavX Configuration Wizard
• Simplifies the setup and running of JavX on
a CE device
• Collects arguments required by JavX and
creates a shortcut that will run JavX in IBM’s
WEME Personal Profile JRE
• Creates a JavX directory on a CE device and
copies the JavXPDA.jar file to it
• Copies the shortcut (created in step one) to
the specified directory on the CE device
• Checks the CE device’s registry to determine
if IBM’s WEME JRE is installed. If the JRE is not
installed the JRE installer’s CAB file is copied
to the device and the installer is run
• Runs JavX on the CE device with the
arguments specified
JavX Configuration Wizard
• Meant to serve as a template/example that
demonstrates the development possibilities of
the PvxRAPI.dll and is not currently a
supported product
• Not for Resale or Distribution
End of
Presentation
THANK YOU!