US007437149B1

(12) Ulllted States Patent (10) Patent N0.: US 7,437,149 B1 Papineau et a]. (45) Date of Patent: Oct. 14, 2008

(54) METHOD AND SYSTEM FOR EXCHANGING 2002/0129129 A1 9/2002 Bloch et al. DATA BETWEEN PORTABLE APPLICATIONS 2003/0135851 A1 7/2003 Dickey et al. FOR MOBILE DEVICES 2003/0181193 A1* 9/2003 Wilhelmsson etal...... 455/403 2003/0182626 A1 9/2003 Davidov et al. (75) Inventors: Scott Papineau, Shawnee Mission, KS 2004/0034853 A1 2/2004 Glbbons et a1‘ _ _ 2004/0111315 A1 6/2004 Sharma et al. ms)’ Jon mm?“ Reno’ NV ms)’ 2004/0111699 A1 6/2004 Rockwell Dana Myers’ Falr?eld, CA (Us) 2004/0123105 A1 6/2004 Himmel et a1. _ _ 2004/0127190 A1* 7/2004 Hansson et al...... 455/403 (73) Asslgneei SPYIIIt Spectrum L-P-, Overland Park, 2004/0152457 A1 8/2004 GOlCIStelIl et al. KS (Us) 2004/0186918 A1 * 9/2004 Lonnofors et al...... 709/250 2004/0243519 A1 12/2004 Perttila et a1. ( * ) Notice: Subject to any disclaimer, the term of this 2004/0248561 A1 12/2004 Nykanen et a1. patent is extended or adjusted under 35 2005/0009469 A1 l/2005 Kotola U.S.C. 154(b) by 434 days. OTHER PUBLICATIONS (21) APP1~ NOJ 10/808-1120 Article entitled “Sprint PCS J2ME Application Environment”, dated Feb. 6, 2002, by Papineau.* (22) Fi1ed3 Mar- 239 2004 US. Appl. No. 11/455,370, Inventor: Scott Papineai, Filing Date: (Under 37 CFR 1.47) Jun. 19, 2006. US. Appl. No. 11/455,380, Inventor: Scott Papineau, Filing Date: Related US. Application Data Jl1I1~ 19, 2006 US. Appl. No. 10/761,748, Inventor: Scott Papineau, Filing Date: (60) Provisional application No. 60/457,001, ?led on Mar. Jan, 21, 2004, 24, 2003, provisional 81313110811011 NO- 60/457,010, US. Appl. No. 10/808,271, Inventor: Scott Papineau, Filing Date: ?led on Mar. 24, 2003. Mar. 23, 2004. Of?ce action mailed on Mar. 25,2008 for US. Appl. No. 10/808,271. (51) [111; CL EX parte Simpson and Roberts, 218 USPQ 1020 (Board of Patent H04M 3/00 (200601) Appeals and Interference), opinion dated Mar. 31, 1982. (52) US. Cl...... 455/418; 709/217; 709/224 * Cited by examiner (58) Field of Classi?cation Search ...... 709/250, _ _ _ 709/217, 224; 707/200; 455/418 Prlrnary ExammeriTlm V0 _ _ See application ?le for complete search history. Asslsmm ExammeriMahesh H DWlVedl (56) References Cited (57) ABSTRACT

U'S' PATENT DOCUMENTS A mobile information device may execute a MIDlet or a 6,601,169 B2 7/2003 Wallace, Jr. et al. non-MIDlet application. The mobile information device may 6,628,767 B1 9/2003 Wellner et al. further include an application management system that 6,754,621 B1 6/2004 Cunningham et a1~ alloWs one or more object-oriented object classes to alloW 6,959,309 B2* 10/2005 Su 61:11...... 707/200 input and Output data to be Communicated between Java 7,079,839 B1 7/2006 paplneau MIDlets in different MIDlet Suites and betWeen non-MIDlet 7,092,703 B1 * 8/2006 Paprneau ...... 455/418 a lications 2001/0034771 A1 10/2001 Hutsch et al. pp ' 2002/0069263 A1 6/2002 Sears et al. 2002/0116633 A1 8/2002 Kobayashi et al. 30 Claims, 16 Drawing Sheets

22

PROFILES 3A

JAVA LIBRARIES i2 CONFIGURATIONS

JAVA VIRTUAL 28 MACHINE 1Q NATIVE OPERATING SYSTEM MOBILE INFORMATION DEVICE HARDWARE JZME ARCHITECTURE US. Patent 0a. 14, 2008 Sheet 1 0f 16 US 7,437,149 B1

FIG. 1

ELECTRONIC CONTENT

16

REQUEST WIRELESS e.g., GATEWAY WWW 20 RESPONSE 14 US. Patent 0a. 14, 2008 Sheet 2 0f 16 US 7,437,149 B1

FIG. 2 22

PROFILES .35

JAVA LIBRARIES Q CONFIGURATIONS

______"x JAVA VIRTUAL 28 MACHINE Q NATIVE ------__

OPERATING _\ SYSTEM 26 MOBILE INFORMATION DEVICE \ HARDWARE 24 J2ME ARCHITECTURE US. Patent Oct. 14, 2008 Sheet 3 0f 16 US 7,437,149 B1

36

RMl PERSONAL 5.2. 55 J2ME PROFILES M MIDP PDA FOUNDATION E M 5.9

CLDC CDC Q Q J2ME CONFIGURATIONS Q KVM CVM E E

NATIVE OPERATING SYSTEM E MOBILE INFORMATION DEVICE HARDWARE 3

J2ME ARCHITECTURE US. Patent 0a. 14, 2008 Sheet 4 0f 16 US 7,437,149 B1

FIG. 4 56

MICRO-BROWSER Q2 J2ME MIDLETS Q J2ME JAM Q J2ME PROFILES J2ME MIDP i4 4_2

J2ME CLDC Q2 J2ME CONFIGURATIONS Q

NATIVE OPERATING SYSTEM Q MOBILE INFORMATION DEVICE HARDWARE 2 12/ US. Patent 0a. 14, 2008 Sheet 5 0f 16 US 7,437,149 B1

FIG. 5 64 / K66 K74 [-78 CHOOSE A GAME BUY A GAME DOWNLOADING 1. PAC MAN g. ASTEROIDS ASTEROIDS1. BUY (2) INSTALLING . FOR $599 ASTEROIDS

WEB PAGE DISPLAY WEB PAGE DISPLAY J2ME JAM 58 DISPLAY

______MICRO-BROWSER E - g ; JAR ; J2ME MIDLETS 5 FILE 5 Q i 19 ? NETWORK J2ME JAM 5 _/1 5 TRANSFER g a E 68 : JAD = \ J2ME MIDP FILE : 76 4_2

...... ______J2ME CLDC MlDlet APPS 78 Q WEB SERVER J2M §8KVM

NATIVE OPERATING SYSTEM 2_s MOBILE INFoRMATIoN DEVICE HARDWARE 24

12 US. Patent Oct. 14, 2008 Sheet 6 0f 16 US 7,437,149 B1

FIG. 6 80

STARTAPP() PAUSED > ACTIVE NEW( )--> Q Q T PAUSEAPP()

DESTROYED -——————-—> @ <— DESTROYAPH ) DESTROYAPP( ) US. Patent Oct. 14, 2008 Sheet 7 0f 16 US 7,437,149 B1

FIG. 7 88

package com.sprintpcs.util { [90 public class System ( ) { llpass output data to other MlDlets llor other non-MlDlet applications

public class Muglet( ) 92/ { llaccept input from other MlDlets llor other non-MlDlet applications US. Patent 0a. 14, 2008 Sheet 8 0f 16 US 7,437,149 B1

FIG. 8 94

EXECUTE A J2ME MIDLET ON A MOBILE INFORMATION DEVICE, WHERE THE MIDLET HAS AN OBJECT-ORIENTED METHOD IN AN OBJECT-ORIENTED OBJECT CLASS ’\ AVAILABLE FOR SETTING OUTPUT DATA FROM A MIDLET IN 96 A MIDLET SUITE I SET OUTPUT DATA FROM THE MIDLET BEFORE THE MIDLET IS TERMINATED ON THE MOBILE INFORMATION DEVICE USING THE OBJECT-ORIENTED METHOD IN THE OBJECT ORIENTED CLASS, WHERE THE OUTPUT DATA IS AVAILABLE TO AN APPLICATION MANAGEMENT SYSTEM /\ ON THE MOBILE INFORMATION DEVICE AND CAN BE USED 98 BY OTHER MIDLETS IN THE SAME OR OTHER MIDLET SUITE OR NON-MIDLET APPLICATIONS ON THE MOBILE INFORMATION DEVICE. US. Patent 0a. 14, 2008 Sheet 9 0f 16 US 7,437,149 B1

FIG. 9 10°

INVOKE A J2ME MIDLET FROM AN APPLICATION MANAGEMENT SYSTEM ON THE MOBILE INFORMATION DEVICE, WHERE THE MIDLET HAS PLURAL OBJECT ORIENTED METHODS IN AN OBJECT-ORIENTED OBJECT \ CLASS AVAILABLE FOR USING INPUT DATA CREATED BY 102 OTHER MIDLETS l ACCEPT INPUT DATA CREATED BY ANOTHER MIDLET FROM THE APPLICATION MANAGEMENT SYSTEM ON THE MIDLET USING ONE OR MORE OF THE PLURALITY OF OBJECT- \ ORIENTED METHODS FROM THE OBJECT ORIENTED CLASS 104 US. Patent 0a. 14, 2008 Sheet 10 0f 16 US 7,437,149 B1

FIG. 10 106

INVOKE A J2ME MIDLET FROM AN APPLICATION MANAGEMENT SYSTEM ON THE MOBILE INFORMATION DEVICE AS A MIDLET HANDLER, WHERE THE MIDLET HANDLER HAS PLURAL OBJECT-ORIENTED METHODS IN '\ AN OBJECT-ORIENTED OBJECT CLASS AVAILABLE FOR 108 USING INPUT DATA CREATED BY OTHER MIDLETS; I CALL AN OBJECT-ORIENTED METHOD IN THE OBJECT ORIENTED OBJECT CLASS TO DETERMINE WHAT TYPE OF INPUT DATA FROM ANOTHER MIDLET WILL BE PROCESSED BY THE MIDLET HANDLER, WHEREIN THE FlRST-OBJECT- \ ORIENTED METHOD RETURNS A RETURN VALUE 110 I PROCESS THE INPUT DATA BASED ON THE RETURN VALUE BY CALLING ONE OR MORE OTHER OBJECT-ORIENTED “ METHODS IN THE OBJECT-ORIENTED OBJECT CLASS 112

INVOKE ANOTHER MIDLET FROM THE MIDLET HANDLER USING THE PROCESSED INPUT DATA \ 114

US. Patent 0a. 14, 2008 Sheet 12 0f 16 US 7,437,149 B1

200 ACCEPT INPUT DATA FROM AN APPLICATION ON A MOBILE INFORMATION DEVICE I 202 PASS THE INPUT DATA TO A FIRST JAVA MIDLET IN A FIRST MIDLET SUITE ON THE MOBILE INFORMATION DEVICE

FIG. 12 US. Patent 0a. 14, 2008 Sheet 13 0f 16 US 7,437,149 B1

220 ACCEPT INPUT DATA FROM A FIRST JAVA MIDLET IN A FIRST MIDLET SUITE ON THE MOBILE INFORMATION DEVICE

l 222 PASS THE INPUT DATA TO AN APPLICATION ON THE MOBILE INFORMATION DEVICE

FIG. 13 US. Patent 0a. 14, 2008 Sheet 14 0f 16 US 7,437,149 B1

240 RECEIVE OUTPUT DATA FROM A FIRST MIDLET IN A FIRST MIDLET SUITE ON THE MOBILE INFORMATION DEVICE, WHEREIN THE OUTPUT DATA IS RECEIVED BEFORE THE FIRST MIDLET TERMINATES I 242 LAUNCH AN APPLICATION ON THE MOBILE INFORMATION DEVICE J I 244

PASS THE OUTPUT DATA TO THE APPLICATION J

FIG. 14 US. Patent 0a. 14, 2008 Sheet 15 0f 16 US 7,437,149 B1

260

RECEIVE OUTPUT DATA FROM AN APPLICATION ON A MOBILE INFORMATION DEVICE

I 262 LAUNCH A FIRST MIDLET IN A FIRST MIDLET SUITE ON THE MOBILE INFORMATION DEVICE

I 264

PASS THE OUTPUT DATA TO THE FIRST MIDLET

FIG. 15 US. Patent 0a. 14, 2008 Sheet 16 0f 16 US 7,437,149 B1

280 RECEIVE INPUT DATA FROM A FIRST MIDLET IN A FIRST MIDLET SUITE ON THE MOBILE INFORMATION DEVICE

I no N DETERMINE A TYPE OF THE INPUT DATA \N

I no A DETERMINE THAT A SECOND MIDLET IN A SECOND MIDLET SUITE IS REGISTERED TO HANDLE THE TYPE \N OF THE INPUT DATA

I on 01 LAUNCH THE SECOND MIDLET ON THE MOBILE \N INFORMATION DEVICE

I 00 00 PASS THE INPUT DATA TO THE SECOND MIDLET \N

FIG. 16 US 7,437,149 B1 1 2 METHOD AND SYSTEM FOR EXCHANGING compiled into byte-code and run in a special softWare envi DATA BETWEEN PORTABLE APPLICATIONS ronment knoWn as a “virtual machine.” This and other char FOR MOBILE DEVICES acteristics of Java make it a useful language for programming a large number of different types of applications for mobile RELATED APPLICATIONS devices. Java is typically used for programming small appli cations, called Java “applets.” This application claims the bene?t of US. Provisional When Java applets are doWnloaded onto a device they are Application No. 60/457,001, ?led Mar. 24, 2003, and titled executed by a in a secure “sandbox.” A “Method and System for Exchanging Data BetWeen Portable sandbox is Java virtual machine security area for doWnloaded Applications for Mobile Devices,” Which is incorporated by (i.e., remote or untrusted) applets. The sandbox is an area in reference herein. This application claims the bene?t of US. Which such applets are con?ned and prevented from access Provisional Application No. 60/457,010, ?led Mar. 24, 2003, ing certain data and resources (e.g., system resources and and titled “Method and System for Exchanging Data BetWeen data). Con?nement to the sandbox prevents doWnloaded Portable Applications for Mobile Devices,” Which is incor applets from carrying out potentially dangerous or malicious porated by reference herein. operations on the device. Applets have to “play” inside the sandbox, and any attempt to “escape” is thwarted by a Java FIELD OF THE INVENTION security manager. HoWever, the full version of the Java programming lan This invention relates to communications on mobile guage Was too large to be used on mobile devices With con devices. More speci?cally, it relates to a method and system 20 strained resources. When developed the for exchanging data betWeen portable applications for mobile second version of Java, it Was split into three editions. The devices. three editions include micro version, Java 2 Micro Edition (“J2ME”) for small mobile devices, a standard version, Java BACKGROUND OF THE INVENTION 2 Standard Edition (“J2SE”) for desktop or other larger 25 devices, and an enterprise version, Java 2 Enterprise Edition Mobile devices such as mobile phones, personal digital/ (“J 2EE”) for multi-tier netWorking applications. data assistants, (“PDA”), tWo-Way pagers, etc. are relatively J 2ME is cross-platform programming language that can be inexpensive, have become commonplace, and are available to embedded into small application environments such as most consumers. These mobile netWork devices can be Wire mobile phones, PDAs, tWo-Way pagers, etc. The J2ME envi less or Wired mobile devices. 30 ronment can be implemented speci?cally for an individual Such mobile devices are typically limited to small physical device through a Connected Limited Device Con?guration siZe, light Weights and corresponding small display screen (“CLDC”). This con?guration is typically used for mobile siZes. These mobile devices have a number of constraints devices that are battery operated, memory constrained, pro including limited processing poWer, limited memory, limited cessor limited, loW bandWidth, and provide high latency, net battery life, a limited number of buttons on a user interface, 35 Work connectivity. The CLDC de?nes the basic libraries that etc. must be present in a J2ME implementation so that a Java The larger a processor in a mobile device, the larger the siZe virtual machine can run the application across different hard and Weight the device Will be. The more memory in a device Ware platforms and environments. the more expensive it Will be. Faster processors, more The J 2ME Mobile Information Device Pro?le (“MIDP”) is memory and color displays consume more battery poWer. 40 a set of Java Application Programming Interfaces (“API”) that Content and service providers Who provide content and provides the runtime environment for J2ME applications services via mobile devices have to balance the physical using the CLDC. The MIDP manages applications, user inter constraints of such mobile devices along With the ability to faces, netWorking and input/output for the mobile device. provide applications and content that consumers actually J2ME applications that conform to the MIDP are called Want, and are Willing to pay for. The content and services have 45 “MIDlets” (instead of an applet). A group of related MIDlets to be provided to mobile devices in a format that is usable on can be grouped together to create a MIDlet Suite that can be the mobile device and have to be provided quickly since most used to provide a more complex application to a mobile users of mobile devices pay for content and services by the device. minute. J 2ME MIDlets are being used on mobile devices to provide There are relatively feW applications that have been created 50 platform independent applications on mobile devices such as to be used on mobile devices that provide content in a format games, audio and video players, site-speci?c applications useable on the mobile devices. The applications that do exist (e.g., dynamic stock quote banner, dynamic neWs banner, include text-based micro-broWsers for delivering real-time etc.) device speci?c applications (e.g., neW ring tones, neW stock quotes, access to neWs, sports scores, Weather forecasts, fonts, neW graphical look-and-feel, etc.) and many other text-based electronic commerce applications and other types 55 types of applications. of text-based applications. There are a number of problems associated With using There are a number of problems associated With develop MIDlets and MIDlet Suites on a mobile device. One problem ing applications for mobile devices. One problem is that is that for security reasons, one MIDlet Suite cannot launch virtually every mobile device has a unique hardWare plat another MIDlet Suite (i.e., act as its handler). Since the CLDC form. An application Written for one mobile device hardWare 60 and MIDP does not de?ne oruse a manager (i.e., platform Won’t Work on another hardWare platform for a security manager is typically too big and complex for small another mobile device. devices), the interactions of MIDlets is limited to MIDlets To help overcome this problem for devices in general, Sun packaged together in the same MIDlet Suite. HoWever, the Microsystems of Mountain VieW, Calif., developed the Java MIDP speci?cation does not explicitly prohibit one MIDlet programming language. Java is a high-level programming 65 Suite from launching another MIDlet Suite. language that Was designed to be platform-neutral (i.e., it can Another problem is that a MIDlet in a one MIDlet Suite be run on virtually any hardWare platform). Java programs are cannot accept input data from, or cannot provide output data US 7,437,149 B1 3 4 to, another MIDlet in another MIDlet Suite because a MIDlet FIG. 13 is a ?owchart of an exemplary process for an Suite is executed in its own sandbox. This limits the type of application management system to receive input data from a MIDlet applications that can be created for a mobile device ?rst Java MIDlet in a ?rst MIDlet suite and to pass the input and prevents the ability to allow interaction between MIDlets data to an application; or MIDlet Suites that have already been created. Another FIG. 14 is a ?owchart of an exemplary process for an problem is that a MIDlet Suite cannot accept input data from, application management system to pass output data between or provide output data to other applications on the mobile applications on a mobile information device; device (i.e., non-MIDlet applications). FIG. 15 is a ?owchart of an exemplary process for an Thus, it is desirable to allow a J2ME MIDlet in a MIDlet application management system to exchange data between Suite to accept data from, and provide data to, other MIDlets applications on a mobile information device; and in other MIDlet Suites on a mobile device. It is also desirable FIG. 16 is a ?owchart of an exemplary process for an to allow a MIDlet to accept data from, and provide data to, application management system to pass data between other non-MIDlet applications on a mobile device. MIDlets in different MIDlet suites on a mobile information device. SUMMARY OF THE INVENTION DETAILED DESCRIPTION OF PREFERRED In accordance with preferred embodiments of the present EMBODIMENTS invention, some of the problems associated with using J2ME MIDlets on mobile device are overcome. A method and sys Exemplary Wireless Network System 20 tem for exchanging data between portable applications for FIG. 1 is a block diagram illustrating an exemplary wire mobile devices is presented. less network system 10. Wireless network system 10 includes One aspect of the invention includes an application man plural mobile information devices 12, plural wireless gate agement system, which may use one or more obj ect-oriented ways 14, plural databases 16 including electronic content, object classes to allow input and output data to be communi plural database servers 18 and an information network 20. 25 cated between J2ME MIDlets in different MIDlet Suites and However, the present invention is not limited to these com between MIDlets and non-MIDlet applications. ponents and more, fewer or other components can also be The foregoing and other features and advantages of used in wireless network system 10. For simplicity, only one embodiments of the present invention will be more readily wireless gateway 14, database 16 and database server 18 is apparent from the following detailed description. The 30 illustrated in FIG. 1. detailed description proceeds with references to the accom The mobile information devices 12 include mobile phones panying drawings. 12', personal digital/data assistants (“PDA”) 12", one and two-way pagers 12"‘ and other types of wireless mobile and BRIEF DESCRIPTION OF THE DRAWINGS non-mobile information devices (not illustrated). 35 The wireless gateways 14 provides a code division multiple Preferred embodiments of the present inventions are access (“CDMA”), Wideband CDMA (“WCDMA”), Time described with reference to the following drawings, wherein: Division-Synchronous CDMA (“TD-SCDMA”), Advanced FIG. 1 is a block diagram illustrating an exemplary wire Mobile Phone Service (“AMPS”), Digital AMPS (“D less network system; AMPS”), Universal Mobile Telecommunications System FIG. 2 is a block diagram illustrating an exemplary J2ME 40 (“UMTS”), Radio Frequency (“RF”), paging and wireless architecture; messaging, Packet Cellular Network (“PCN”), Global Sys FIG. 3 is a block diagram illustrating further details of the tem for Mobile Communications, (“GSM”), Generic Packet exemplary J 2ME architecture of FIG. 2; Radio Services (“GPRS”), Personal Communications Ser vices (“PCS”), Cellular Digital Packet Data (“CDPD”), Wire FIG. 4 is a block diagram illustrating an exemplary J2ME 45 lessApplication Protocol (“WAP”), Digital Audio Broadcast architecture for a mobile information device 12. ing (“DAB”), Bluetooth, 802.11a, 802.11b, or other type of FIG. 5 is a block diagram illustrating an exemplary loading wireless interfaces for the mobile information devices 12. of a J2ME MIDlet onto a mobile information device; Further information on these wireless interfaces may be FIG. 6 is a block diagram illustrating states in a MIDlet life found in their respective standards documents. CDMA, for cycle; 50 example, is described in further detail in Telecommunications FIG. 7 illustrates an exemplary utility application pro gram Industry Association (“TIA”) standards IS-95A and IS-95B, ming interface; which are both incorporated herein by reference in their FIG. 8 is a ?ow diagram illustrating method for exchanging entirety. CDMA is also described in the International Tele output data between portable applications on a mobile infor communications Union (“ITU”) IMT-2000 series of stan mation device; 55 dards, which are all incorporated herein by reference in their entirety. CDMA is further described in the TIA IS-2000 series FIG. 9 is a ?ow diagram illustrating a method for using of standards, which are all incorporated herein by reference in input data on portable applications on a mobile information their entirety. The IS-2000 series of standards are commonly device; referred to as CDMA2000. FIG. 10 is a ?ow diagram illustrating a method for invoking 60 The WAP includes several protocols and standards a MIDlet as a MIDlet handler; designed to provide wireless devices with access to electronic FIG. 11 is a block diagram illustrating an exemplary opera content, and it was developed as an alternative to other tion of an application management system; markup languages and protocols developed for the World FIG. 12 is a ?owchart of an exemplary process for an Wide-Web. One component of the WAP is a Wireless Markup application management system to receive input data from an 65 Language (“WML”), which includes markup tags, and pro application and to pass the input data to a ?rst Java MIDlet in vides control over formatting and layout of electronic con a ?rst Java MIDlet suite; tent. The WML is often more appropriate to use for wireless US 7,437,149 B1 5 6 devices such as Wireless phones than other markup languages Memory (“RAM”)) or non-volatile (e.g., Read-Only such as Hyper Text Markup Language (“HTML”), etc. Memory (“ROM”)) mass storage system readable by the CPU The databases 16 include electronic content such as text, or processor. The computer readable medium includes coop hypertext, graphical data or references to graphical data erating or interconnected computer readable medium, Which images, audio, video and other content. The electronic con exist exclusively on the processing system or be distributed tent may be stored as a Web page or WAP page on a database among multiple interconnected processing systems that may server 18. The database server doWnloads or “serves” elec be local or remote to the processing system. tronic content from the database 16 to the mobile information device. JAVA A hypertext document includes markup codes called As is shoWn in the art, Java is an object-oriented program “tags.” The structure of hypertext documents is de?ned by ming language developed by Sun Microsystems of Mountain document markup languages such as Hand Held Device VieW, Calif. Java is based on object-oriented programming Markup Language (“HDML”), HTML, compact HTML techniques. As is knoWn in the art, object-oriented program (“cHTML”), eXtensible Markup Language (“XML”), WML ming is used to design computer softWare including object and voice eXtensible Markup Language (“VoxML”), and oriented objects that are easy to create, cost effective to others. Markup languages also alloW references to additional modify, and reusable. Object-oriented objects include “object electronic content besides text including graphics, animation, data” and “object services.” Object services are provided audio, video, applets, MIDlets and other electronic data. through “object methods” (also called “object operations” or Electronic content is typically displayed on a mobile infor “object functions”). Object methods typically operate on pri mation device 12 With a softWare application called a 20 vate data such as “instance data” or “object state data” that an “broWser.” A broWser on a mobile information device 12 may object oWns.A collection of obj ects is called an “object class” be a sub-set of a larger broWser, or a micro-broWser. A micro Which is sometimes called an “object type.” An object class broWser may not be capable of displaying complete content of acts as a template that describes the behavior of sets of a requested electronic content as stored on database server 18. objects. An object’s implementation is typically encapsu A micro-broWser typically reads electronic content and ren 25 lated, and is hidden from public vieW. Object private instance ders the electronic content into a presentation of text, graph data can only be accessed by object methods of an object ics, animation, audio, video, etc., for display on the mobile class. Object public instance data is accessed through a public information device 12. “object interface.” The information netWork 20 includes the Internet, the Java Was designed to be platform-neutral (i.e., it can be run World-Wide-Web, an intranet, or other information netWork. 30 on virtually any hardWare platform). Java programs are com As is knoWn in the art, the Internet is a World-Wide netWork of piled into byte-code, Which is not re?ned to the point of interconnected computers. The World-Wide-Web is an infor relying on platform-speci?c instructions. Java runs on a hard mation system on the Internet designed for electronic content Ware device in a special softWare environment knoWn as a interchange. “virtual machine.” The devices illustrated in FIG. 1 interact With Wireless 35 This characteristic of Java makes it a useful language for netWork system 10 based on standards proposed by the Insti programming a large number of different types of mobile tute of Electrical and Electronic Engineers (“IEEE”), Inter information device 12 applications. Java is typically used in national Telecommunications Union-Telecommunication programming small applications, callcd Java “applets.” Standardization Sector (“ITU”), Internet Engineering Task Java 2 Platform Micro Edition Force (“IETF”), Wireless Application Protocol Forum 40 (“WAP”) Forum, Java Community, the American National The Java 2 Platform Micro Edition (“J2ME”) is used to Standard Institute (“ANSI”), or other standards. create applications for ?xed and mobile Wireless devices. An operating environment for devices and interfaces used J2ME is a subset of the Java 2 Platform Standard Edition for the present invention include a processing system With (“J 2SE”). one or more high speed Central Processing Unit(s) (“CPU”), 45 J 2ME includes tWo major elements: (1) con?gurations; or other types of processors, and a memory system. In accor and (2) pro?les. J2ME con?gurations provide a set of librar dance With the practices of persons skilled in the art of com ies and a virtual machine for a category of Wireless devices. A puter programming, the present invention is described beloW con?guration is a speci?cation that de?nes the minimum Java With reference to acts and symbolic representations of opera libraries and Java virtual machine capabilities for a mobile tions or instructions that are performed by the processing 50 information device 12. A con?guration is de?ned for classes system, unless indicated otherWise. Such acts and operations of devices With similar memory requirements and processing or instructions are referred to as being “computer-executed,” poWer. J 2ME con?gurations are de?ned for both ?xed Wire “CPU executed” or “processor executed.” less devices and mobile Wireless devices. It Will be appreciated that acts and symbolically repre J 2ME pro?les are built on top of con?gurations to provide sented operations or instructions include the manipulation of 55 a run-time environment for a speci?c device. J2ME pro?les electrical signals by the CPU or processor. An electrical sys manage applications, user interfaces, netWorking, input/out tem represents data bits Which cause a resulting transforma put and other functionality of a device. tion or reduction of the electrical signals, and the maintenance FIG. 2 is a block diagram illustrating an exemplary J2ME of data bits at memory locations in a memory system to architecture 22. The J2ME architecture 22 includes a mobile thereby recon?gure or otherWise alter the CPU’s or processor 60 information device 12 hardWare layer 24, a native operating operation, as Well as other processing of signals. The memory system layer 26, a con?guration layer 28 including a Java locations Where data bits are maintained are physical loca Virtual Machine 30 and Java libraries 32 and a pro?le layer tions that have particular electrical, magnetic, optical, or 34. organic properties corresponding to the data bits. The mobile information device hardWare layer 24 includes The data bits may also be maintained on a computer read 65 the native hardWare for the mobile information device 12. The able medium including magnetic disks, optical disks, organic native operating system layer 26 includes the native operating memory, and any other volatile (e.g., Random Access system being used on the mobile information device 12.