Top Banner
Presented by: Jarett Smith ProvideX On Handhelds
37

Presented by: Jarett Smith

Feb 03, 2016

Download

Documents

Yan

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 - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Presented by: Jarett Smith

Presented by:Jarett Smith

ProvideX On Handhelds

Page 2: 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

Page 3: Presented by: Jarett Smith

• 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

Page 4: Presented by: Jarett Smith

• 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

Page 5: Presented by: Jarett Smith

• 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

Landscape of Mobile Computing

"Soon, getting a cell phone just to talk to people will be a thing of the past" -Pat Palmer, Midwest Wireless

"Soon, getting a cell phone just to talk to people will be a thing of the past" -Pat Palmer, Midwest Wireless

Page 6: Presented by: Jarett Smith

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

Page 7: Presented by: Jarett Smith

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.

Connecting to the Internet

Page 8: Presented by: Jarett Smith

• 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

Page 9: Presented by: Jarett Smith

• 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

Page 10: Presented by: Jarett Smith

• Device Memory and Processing power is constrained and varies tremendously

• Mobile Devices rely on batteries with limited power; developers must consider power consumption

Challenges of Mobile Computing

Page 11: Presented by: Jarett Smith

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)

Page 12: Presented by: Jarett Smith

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)

Page 13: Presented by: Jarett Smith

• 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)

Page 14: Presented by: Jarett Smith

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

Java 2 Micro Edition (J2ME)

Page 15: Presented by: Jarett Smith

• 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

Page 16: Presented by: Jarett Smith

CLDC• 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

CDC• Qualifiers

• 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 Configurations

Page 17: Presented by: Jarett Smith

• 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

Page 18: Presented by: Jarett Smith

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 (CLDC)

Page 19: Presented by: Jarett Smith

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)

Page 20: Presented by: Jarett Smith

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)

Page 21: Presented by: Jarett Smith

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 Profiles (CDC)

Page 22: Presented by: Jarett Smith

• 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

J2ME Runtime Environments

Page 23: Presented by: Jarett Smith

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

IBM WEME

Page 24: Presented by: Jarett Smith

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 requiredJavXPP• Minimum J2ME CDC Personal Profile requiredJavXFP• Minimum J2ME CDC Foundation Profile required

Page 25: Presented by: Jarett Smith

• 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

JavXSE

Page 26: Presented by: Jarett Smith

• 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)

JavXPP

Page 27: Presented by: Jarett Smith

• 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

JavXFP

Page 28: Presented by: Jarett Smith

• 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

Communicating with CE Devices

Page 29: Presented by: Jarett Smith

• 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

Page 30: Presented by: Jarett Smith

• 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

Page 31: Presented by: Jarett Smith

00010 LET WinCELink=NEW("WinCElink")00020 !if device is attached to PC then open00030 connect:00040 IF WinCELink'isDeviceOnCradle() THEN {00050 ! device is on the cradle try to open 00060 IF WinCELink'openConnection() THEN ...

ProvideX WinCELink ObjectExample

• The following opens a connection to a WinCE device (PocketPC, Smartphone, etc)

Page 32: Presented by: Jarett Smith

Example

• The following lists the contents of the CE device’s root directory

ProvideX WinCELink Object

00010 LET WinceLink=NEW("WinCElink")00020 !if device is attached to PC then open00030 connect:00040 IF WinceLink'isDeviceOnCradle() THEN {00050 ! device is on the cradle try to open 00060 IF WinceLink'openConnection() THEN {00070 Dir$=WinceLink'getDirectoryListing$

(“/”) ...

Page 33: Presented by: Jarett Smith

ProvideX WinCELink Object

getDirListing$ ceCreateDirectory$

ceRemoveDirectory ceGetSpecialFolderPath$

ceCreateFile ceCopyFile

ceDeleteFile ceReadFile

ceWriteFile ceGetFileSize

ceGetFileCreationTime$

ceGetFileAttributes$

File Functions

Page 34: Presented by: Jarett Smith

ProvideX WinCELink Object

isDeviceOnCradle openConnection

waitForConnection ceGetDeviceOSInfo$

ceGetMemoryInfo$ ceGetBatteryInfo$

ceGetProcessorInfo$ isKeyInRegistry

ceCreateProcess

Device Information Functions

Page 35: Presented by: Jarett Smith

• 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

Page 36: Presented by: Jarett Smith

• 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

JavX Configuration Wizard

Page 37: Presented by: Jarett Smith

THANK YOU!

End of Presentation