`Chen et al.
`
`I lllll llllllll Ill lllll lllll lllll lllll lllll 111111111111111111111111111111111
`US006496979Bl
`US 6,496,979 Bl
`*Dec. 17, 2002
`
`(10) Patent No.:
`(45) Date of Patent:
`
`(54) SYSTEM AND METHOD FOR MANAGING
`APPLICATION INSTALLATION FOR A
`MOBILE DEVICE
`
`(75)
`
`Inventors: James Chen, Redmond, WA (US);
`Kevin Shields, Redmond, WA (US)
`
`(73) Assignee: Microsoft Corporation, Redmond, WA
`(US)
`
`( *) Notice:
`
`This patent issued on a continued pros(cid:173)
`ecution application filed under 37 CFR
`1.53( d), and is subject to the twenty year
`patent term provisions of 35 U.S.C.
`154(a)(2).
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(21) Appl. No.: 09/058,031
`
`(22) Filed:
`
`Apr. 10, 1998
`
`Related U.S. Application Data
`(60) Provisional application No. 60/063,164, filed on Oct. 24,
`1997, and provisional application No. 60/064,986, filed on
`Nov. 7, 1997.
`
`Int. Cl.7 ................................................ G06F 9/445
`(51)
`(52) U.S. Cl. ....................................................... 717/178
`(58) Field of Search .................. 395/712; 709/200-203,
`709/221; 717/11, 168-178; 455/418-419;
`370/486
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`5,247,683 A *
`5,337,044 A
`5,392,390 A
`5,414,844 A
`5,497,464 A
`
`............. 709/221
`9/1993 Holmes et al.
`8/1994 Folger et al.
`................ 340/7.l
`2/1995 Crozier ....................... 345/335
`5/1995 Wang ......................... 713/200
`3/1996 Yeh ............................ 710/101
`
`5,522,089 A
`5,542,046 A
`5,555,416 A *
`5,564,070 A
`5,598,536 A
`5,625,829 A
`5,664,228 A
`5,666,530 A
`
`5/1996
`7/1996
`9/1996
`10/1996
`1/1997
`4/1997
`9/1997
`9/1997
`
`Kikinis et al. ................ 710/73
`Carlson et al.
`............. 713/200
`Owens et al. . . . . . . . . . . . . . . . 717 /178
`Want et al.
`................. 455/507
`Slaughter, III et al.
`..... 709/219
`Gephardt et al.
`........... 710/104
`Mital .......................... 710/62
`Clark et al. . . . . . . . . . . . . . . . . . 707 /201
`
`(List continued on next page.)
`
`FOREIGN PATENT DOCUMENTS
`
`WO
`WO
`WO
`WO
`WO
`
`WO 94 15294 A
`W094/15294
`WO 96 20445 A
`WO 97 23853 A
`WO 97 25665 A
`
`7/1994
`* 7 /1994
`7/1996
`7/1997
`7/1997
`
`........... G06F/13/00
`
`........... G08C/25/02
`............. G06F/3/00
`
`OTHER PUBLICATIONS
`
`Pepper, D .J. et al., "The CallManager system: A platform for
`intelligent telecommunications services", Speech Commu(cid:173)
`nication, Oct. 1997, Elsevier, Netherlands, vol. 23, No. 102,
`pp. 129-139.
`Anonymous, "Method for Personal Digital Assistance Cal(cid:173)
`endar Export Nomenclature", IBM Technical Disclosure
`Bulletin, vol. 37, No. 3, Mar. 1994, p. 481.
`
`Primary Examiner---Kakali Chaki
`Assistant Examiner-Hoang-Vu Antony Nguyen-Ba
`(74) Attorney, Agent, or Firm-Westman, Champlin &
`Kelly, P.A.; S. Koehler
`
`(57)
`
`ABSTRACT
`
`A method and system of installing applications for a plu(cid:173)
`rality of mobile devices from a storage source, wherein each
`mobile device is of a different type, includes storing on the
`storage source a plurality of applications. Each application
`is designed for a unique type of mobile device. The mobile
`device is connected to the storage source and the type of
`mobile device is detected. A selected application is then
`transferred to the mobile device.
`
`23 Claims, 10 Drawing Sheets
`
`~-----~160
`
`CONNECT
`MOBILE DEVICE TO
`DESKTOP COMPIJTER
`
`DETERMINE TYPE
`OF MOBILE DEV:CE
`CONNECTED
`
`r---y AVAl:..ABLE
`AP~~T611~0N PROGRAMS
`
`I
`
`ASA LIST OR AS
`PRESELECTED COLLECTIONS
`
`164
`
`162
`
`166
`
`TRANSFER SELECTED
`SETUP PACKAGE
`FILES
`
`IPR2017-00184
`UNIFIED EX1015
`
`
`
`US 6,496,979 Bl
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`5,666,553 A
`5,684,990 A
`5,717,737 A
`5,721,824 A *
`5,721,835 A
`5,727,159 A
`5,727,202 A
`5,742,829 A *
`5,790,800 A
`5,812,819 A
`
`9/1997
`11/1997
`2/1998
`2/1998
`2/1998
`3/1998
`3/1998
`4/1998
`8/1998
`9/1998
`
`Crozier ....................... 707/540
`Boothby ..................... 707/203
`Doviak et al. .............. 455/403
`Taylor ........................ 709/203
`Niwa et al. ................. 710/101
`Kikinis ....................... 709/246
`Ku cal a . . . . . . . . . . . . . . . . . . . . . . . . 707 /10
`Davis et al.
`................ 717 /178
`Gauvin et al. .............. 709/227
`Rodwin et al.
`............... 703/23
`
`5,845,090 A * 12/1998 Collins, III et al.
`........ 709/221
`5,860,012 A * 1/1999 Luu
`........................... 717/175
`5,864,708 A
`1/1999 Croft et al. .................... 710/1
`5,887,063 A
`3/1999 Vardharajan et al.
`....... 713/172
`5,896,369 A
`4/1999 Warsta et al. ............... 370/338
`5,918,016 A
`6/1999 Brewer et al. .............. 709/220
`5,958,006 A
`9/1999 Eggleston et al.
`.......... 709/219
`5,974,238 A
`10/1999 Chase, Jr .................... 709/248
`5,974,257 A * 10/1999 Austin ........................ 717/125
`.............. 704/233
`5,983,176 A
`11/1999 Hoffert et al.
`* cited by examiner
`
`
`
`MOBILE STORAG~
`DEVICE CARD 3A
`
`SA-t-+-1
`
`I
`
`I
`
`LOAD
`MODULE
`
`5B-n1
`
`SC
`
`I
`
`I
`
`I T.
`
`3
`
`I MOBILE f-' 48
`
`DEVICE
`
`-
`
`2
`
`.,-----
`
`4
`
`(
`
`DESKTOP
`COMPUTER
`
`12
`
`-
`
`APP~
`
`MGR
`MODULE
`
`7A
`-
`
`7B
`
`J 7C
`
`~I I
`
`\
`
`I
`
`I
`
`I l/7D
`
`I
`
`10
`
`STORE
`6
`
`I
`
`'
`
`I I
`
`I
`
`'
`
`'
`
`'
`
`10A-tD . o-t-r1oc
`
`'
`
`'
`
`' 10D
`
`LOCALOR ~A
`WIDE AREA
`NETWORK
`
`FIG. 1
`
`d .
`\JJ. .
`~
`~ ......
`~
`=
`......
`
`~
`~
`ri
`'"""'
`~-..J
`N c
`c
`N
`
`~
`
`'J1 =-~
`.....
`'"""' 0 .....,
`'"""' c
`
`e
`
`rJ'J.
`O'I
`~
`\0
`O'I
`\o
`""-l
`\0
`~
`lo-"
`
`
`
`COMPUTER 4
`
`"I
`
`CPU
`21
`
`VIDEO
`ADAPTER
`48
`
`OPTICAL
`DRIVE 31
`
`LJ
`I
`I
`
`lri
`
`~EMOVABLE
`STORAGE
`29
`
`l
`
`MOBILE
`DEVICE
`3
`
`FIG
`
`\.
`
`OPTICAL DISK
`DRIVE 30
`
`MAGNETIC DISK
`DRIVE 28
`
`HARD DISK
`DRIVE 27
`
`INTF 34 ~
`INTF 33 r-
`INTF 32 l
`I -·
`MEMORY22
`
`23
`
`ROM24
`
`BIOS 26 RAM25 I
`
`I
`
`l
`I
`
`OPERATING
`SYSTEM 35
`
`APPLICATION
`PROGRAMS 7
`
`PROGRAM
`MODULE 37
`
`PROGRAM DATA 38
`
`MICROPHONE
`43
`
`KEYBOARD 40
`
`MOUSE
`42
`
`\.
`
`NETWORK
`ADAPTER
`53
`
`SERIAL PORT
`INTERFACE 46
`
`~
`
`I
`
`I
`MODEM 54
`
`MONITOR
`47
`
`...
`
`_.
`
`LAN
`51
`
`REMOTE
`COMPUTER
`49
`
`I
`
`MEMORY
`50
`
`WAN
`52
`
`d .
`\JJ. .
`~
`~ ......
`~ = ......
`
`~
`~
`ri
`'"""'
`~-..J
`N c c
`
`N
`
`'J1 =(cid:173)~
`~ .....
`N
`0 .....,
`'"""' c
`
`e
`
`rJ'J.
`O'I
`~
`\0
`O'I
`\o
`""-l
`\0
`~
`lo-"
`
`
`
`U.S. Patent
`
`Dec. 17, 2002
`
`Sheet 3of10
`
`US 6,496,979 Bl
`
`84
`
`c:::; c:::; c:::; CJ c:::; c::; c:::; c:::; c:::;
`c:::; CJ CJ CJ CJ CJ c:::; c:::;
`CJ CJ c:::; c::; CJ c:::; c:::; c:::; c:::;
`
`FIG. 3
`
`
`
`U.S. Patent
`
`Dec. 17, 2002
`
`Sheet 4of10
`
`US 6,496,979 Bl
`
`3
`
`I
`I
`
`(
`
`MEMORY
`
`OS
`
`APP(S)
`
`REGISTRY
`
`LOAD
`MODULE
`
`90
`
`98
`
`
`
`5A -5C
`
`97
`
`9
`9
`
`96
`
`(
`PROCESSOR pl
`J~
`
`1/0
`
`88
`
`92 "-
`
`94
`
`~ SERIAL
`
`l
`
`FIG.4
`
`
`
`L
`
`-104'
`
`APPLICATION
`PROGRAM
`BINARY FILES
`
`APPLICATION
`PROGRAM
`BINARY FILES
`
`(
`
`104"
`
`APPLICATION
`PROGRAM
`BINARY FILES
`
`I i
`
`.. + ...
`
`.. j
`L-)2
`
`110
`
`SETUP
`INFORMATION
`SCRIPT
`
`FIG. 5
`l (10A"
`
`(105
`
`OPTIONAL
`ISV CREATED 1 - - (cid:173)
`SETUP.DLL
`
`-·-
`
`OPTIONAL
`ISVCREATED
`SETUP.DLL
`
`105'
`l-:/
`
`(106
`
`DESIRED
`CPUs
`
`I
`
`~
`GENERATOR
`MODULE
`
`I
`
`10~
`
`'
`
`I
`
`OPTIONAL
`ISVCREATED
`SETUP.DLL
`
`I\
`I \105"
`
`1
`10A'
`~
`SETUP
`PACKAGE
`FILE
`
`•
`r
`
`SETUP
`PACKAGE
`FILE
`
`SETUP
`PACKAGE
`FILE
`
`d .
`\JJ. .
`~
`~ ......
`~ = ......
`
`~
`~
`ri
`'"""'
`~-..J
`N c c
`
`N
`
`rF.J. =(cid:173)~
`~ .....
`Ul
`0 .....,
`'"""' c
`
`e
`
`rJ'J.
`O'I
`~
`\0
`O'I
`\o
`""-l
`\0
`~
`!>-"
`
`
`
`U.S. Patent
`
`Dec. 17, 2002
`
`Sheet 6of10
`
`US 6,496,979 Bl
`
`APPLICATION INFORMATION
`AND
`"COMPILED' 1 SETUP
`INFORMATION FILE
`
`ISV-CREATED "SETUP. DLL"
`
`~
`
`APPLICATION FILE 1
`
`'
`
`APPLICATION FILE 2
`
`120A
`__.)
`
`12 OB
`
`J
`J
`
`1 20C
`
`APPLICATION FILE N
`
`10A_/
`
`FIG. 6
`
`
`
`U.S. Patent
`
`Dec. 17, 2002
`
`Sheet 7of10
`
`US 6,496,979 Bl
`
`130
`
`RECEIVE SETUP J
`
`PACKAGE FILE
`
`CHECK TO SEE IF THE
`SETUP PACKAGE FILE
`IS VALID FOR THE
`MOBILE DEVICE
`
`131
`
`I)
`
`132
`
`DOES SETUP PACKAGE _,/
`FILE CORRESPOND TO AN YES
`1 - - - - - - .
`ALREADY- INSTALLED
`APPLICATION PROGRAM
`?
`
`NO
`
`NO
`
`1341
`.-----.......... - - - - - - ,
`I)
`REINSTALL
`APPLICATION
`?
`
`, ,
`
`STOP
`
`YES
`
`_,, __ ___...__~~
`
`,,
`(A)PARSE "COMPILED" SETUP
`INFORMATION FILE
`(B)MAKE REGISTRY SETTINGS
`(C)COPY APPLICATION FILES
`
`138
`
`, ,
`....------......._ __ '-,~- 140
`RESTORE USER SETTINGS
`REPOPULATE USER
`DATABASE
`
`)
`
`FIG. 7
`
`
`
`U.S. Patent
`
`Dec. 17, 2002
`
`Sheet 8 of 10
`
`US 6,496,979 Bl
`
`160
`
`162
`
`CONNECT
`MOBILE DEVICE TO
`DESKTOP COMPUTER
`
`DETERMINE TYPE
`OF MOBILE DEV:CE
`CONNECTED
`
`164
`
`DISPLAY AVAILABLE
`APPLICATION PROGRAMS
`AS A LIST OR AS
`PRESELECTED COLLECTIONS
`
`166
`
`TRANSFER SELECTED
`SETUP PACKAGE
`FILES
`
`FIG. 8
`
`
`
`U.S. Patent
`
`Dec. 17, 2002
`
`Sheet 9of10
`
`US 6,496,979 Bl
`
`163
`
`j
`
`I Jordan Application Manager
`
`To add or remove an application, click on box.
`
`A disabled box means that you can only remove the application
`from the mobile device.
`
`165
`
`I Microsoft Pocket Pow~o_i_nt.;:_ __ 1:....;:5:....;:6...:..... 9;...:.K..:...-l
`
`Microsoft Voice Recorder
`
`234.0K
`
`Details
`
`Space required
`
`Space available on drive
`
`156.9K
`
`264.SK +---------
`
`Description----~-~------------
`
`Microsoft Pocket Powerpolnt
`
`173
`
`Remove
`
`Install using the default application directory
`
`OK
`
`I I Cancel 11 Help
`
`167
`
`175
`
`
`
`183
`
`189
`
`~181
`
`I Add/Remove program p;operties·-
`x
`
`Theme ~cc~s---
`
`J2]
`
`Comr _e~n~t~s-·~---------~--~
`0.1MB
`Accessibility Options
`8.1MB
`Accessories
`1.0MB
`Communications
`
`1~'
`
`Description - - - - - - - - .
`
`Includes single or two games
`Two player games can be played with
`another HPC using infra-red or with
`a desktop computer using the
`I I
`serial cable.
`! O of 1 O components selected
`L_ ______ ---1..I _ Details
`
`I
`
`.
`
`Space required
`
`600bytes
`
`193
`I
`
`Space available on H PC
`
`1200bytes
`
`To add or remove a component, click the box.
`A shaded box means that only part of the component
`wm be installed. To see what's included in a
`component, click Details.
`L - -
`
`[
`
`I I
`
`Canc~I
`
`I
`
`\ OK
`""'=-= 191
`
`d .
`\JJ. .
`~
`~ ......
`~ =
`......
`
`~
`~
`ri
`"'""
`~-..J
`N c c
`
`N
`
`rF.J. =-~
`~ .....
`"'"" c
`0 .....,
`"'"" c
`
`e
`
`rJ"J.
`O'I
`~
`\0
`O'I
`\o
`-....l
`\0
`~
`!>-"
`
`
`
`US 6,496,979 Bl
`
`1
`SYSTEM AND METHOD FOR MANAGING
`APPLICATION INSTALLATION FOR A
`MOBILE DEVICE
`
`REFERENCE TO CO-PENDING PATENT
`APPLICATIONS
`
`2
`fers each file of the application onto the computing device,
`storing it as required in preselected directories so as to be
`accessed by the application. Registry values are then
`changed in accordance with the requirements of the appli(cid:173)
`cation. In some systems, the desktop computer executes a
`script file which contains a listing of each file needed for the
`application and transfers the file sequentially down to the
`mobile device.
`One significant problem associated with the latter method
`occurs if the connection between the desktop computer and
`the mobile device is disrupted during the downloading
`procedure. For example, from inadvertent or accidental
`error, the connection may be broken only after some of the
`files required by the application have been transferred. In
`15 this event, the mobile computing device contains only some
`of the necessary files for the application and the download(cid:173)
`ing procedure must be repeated. If more than one application
`is being transferred down to the mobile device, this may
`require the entire procedure to be repeated.
`Another significant problem involves the script file itself
`and, in particular, error handling. When installing an appli(cid:173)
`cation from the desktop computer to the mobile device using
`a simple script file, the installation program must perform
`"run-time" error handling such as with missing files, and
`25 errors in the script file. These problems would be encoun(cid:173)
`tered by the end-user. Ideally, these problems should be
`resolved at "compile-time", before the application setup
`program is in its final product state. End-users should not
`need to encounter problems like these when installing an
`30 application to their mobile device.
`Another significant drawback of the current method of
`installing applications onto a mobile device is the require(cid:173)
`ment of the mobile device to be connected to the desktop
`computer in order to transfer the desired application. This
`requires the user to first install an application for the mobile
`device onto the desktop computer, and then, after a connec(cid:173)
`tion has been made, transfer the application from the desktop
`computer to the mobile device.
`There is a continuing need to overcome the shortcomings
`of the present methods for installing applications onto a
`mobile computing device. In particular, there is a need to
`reduce the number of operations necessary to be performed
`by the user in order to install an application. In addition, the
`actual application installation procedure should not need to
`handle errors that can be resolved before the final product is
`shipped. The user should also have the ability to install an
`application from sources other than the dedicated desktop
`computer.
`In addition, many times the application must be uniquely
`written to run on a specific mobile device. Thus, there may
`be many variations of the same application, each being
`designed for a different type of CPU. There is a need to
`easily create the variations of the application as well as
`easily ascertain and access the correct variation if all are
`stored on the same desktop computer for use by multiple
`mobile device users having different CPU platforms.
`
`The present application claims priority from and fully
`incorporates herein, U.S. Provisional patent application Ser.
`No. 60/063,164, filed on Oct. 24, 1997, and U.S. Provisional
`patent application Ser. No. 60/064,986, filed on Nov. 7, 10
`1997.
`
`BACKGROUND OF THE INVENTION
`
`20
`
`The present invention relates to personal mobile comput(cid:173)
`ing devices commonly known as handheld portable com(cid:173)
`puters. More particularly, the present invention relates to a
`system and method for creating an application setup package
`for installing application programs onto such devices, and
`managing installed application device programs from the
`desktop computer.
`Mobile devices are small electronic computing devices
`often referred to as personal digital assistants. Two such
`mobile devices are sold under the trade name Handheld PC
`(or "H/PC") and also Palm PC (or "P/PC") by Microsoft
`Corporation of Redmond, Wash. Although small, a wide
`variety of computing tasks and applications can be per(cid:173)
`formed by such mobile devices, such as word processing,
`spread sheet programs, personal money managers and
`games, to name a few. In many respects, these programs are
`very similar to programs that reside on an individual's
`desktop computer. In some applications, the mobile device
`may not have as many functions as that available on the
`desktop computer, but nevertheless, are quite valuable as a
`means for updating and changing data in the field where 35
`even a laptop computer may not be available or used
`conveniently.
`As stated above, a mobile device can be used in conjunc(cid:173)
`tion with a desktop computer. For example, the user of a
`mobile device may also have access to, and use, a desktop 40
`computer at work or at home. A user may typically run the
`same types of applications on both the desktop computer and
`the mobile device. Thus, it is quite advantageous for the
`mobile device to be designed to be coupled to the desktop
`computer to exchange information with, and share informa- 45
`tion with, the mobile device. However, in view that the
`mobile device has limited storage capabilities, a user may
`not be able to install all applications he may have for the
`mobile device at the same time. In such instances, the user
`must remove those applications which are not necessary in 50
`order to make room for other desired applications.
`A number of significant problems exist when applications
`are deleted from or transferred to a mobile device from a
`desktop computer. Commonly, an application may include a
`number of files which must be correctly installed onto the 55
`mobile device in preselected directories, and settings must
`be made to the mobile device in order to properly configure
`the device for such applications. In some platforms, such as
`those sold by Microsoft Corporation of Redmond, Wash., a
`"Registry" is maintained. The Registry is a well-known 60
`database that is a source of information about applications
`present on the computing device. This information is used
`by applications that require persistent data storage (such as
`user settings). One method for installing a new application
`on the mobile computing device includes connecting the 65
`mobile computing device to a desktop computer having a
`stored copy of the desired application. The user then trans-
`
`SUMMARY OF THE INVENTION
`A system and method of installing applications for a
`plurality of mobile devices from a storage source, wherein
`each mobile device is of a different type, includes storing on
`the storage source a plurality of applications. Each applica(cid:173)
`tion is designed for a unique type of mobile device. The
`mobile device is connected to the storage source and the type
`of mobile device is detected. A selected application is then
`transferred to the mobile device.
`
`
`
`US 6,496,979 Bl
`
`3
`A system and method of installing program applications
`from a storage source onto a mobile device includes in one
`aspect, storing the necessary application files and registry
`information in a single setup package. The setup package
`comprises a single file having a first portion comprising
`application setup instructions and a second portion compris(cid:173)
`ing application files. The application setup instructions
`include setup information such as settings to be made on the
`mobile device and where the application files are to be stored
`on the mobile device. Upon selection by a user, the setup
`package file is transferred and stored on the mobile device.
`The setup package file is then unpacked, installing the
`executable application program on the mobile device and,
`preferably, the setup package file is subsequently automati(cid:173)
`cally deleted.
`In another broad aspect of the present invention, a system 15
`and method of installing a program application from a
`storage source onto a mobile device includes storing on the
`storage source a plurality of setup package files, with each
`setup package file corresponding to one or more types of
`mobile devices. Upon connection of a mobile device to the 20
`storage source, the system detects the type of mobile device
`from a plurality of known mobile devices. The system then
`selects the setup package file applicable to the detected
`mobile device.
`In another broad aspect of the present invention, a method 25
`of installing a program application on a mobile device
`includes storing information on the mobile device indicative
`of the application to be installed, and deleting the informa(cid:173)
`tion on the mobile device as the application is being installed
`on the mobile device.
`In yet another broad aspect of the present invention, a
`computer-readable medium having stored thereon data
`structure for installing a program application from a storage
`source onto a mobile device is disclosed. The data structure
`includes a first portion comprising application specific infor(cid:173)
`mation and a second portion comprising application files.
`The application specification information includes setup
`information such as settings to be made on the mobile device
`and where the application files are to be stored on the mobile
`device.
`
`4
`mobile device 3 and a desktop computer 4. The mobile
`device 3 includes one or more application programs indi(cid:173)
`cated at SA, SB and SC, and a store 6. The desktop computer
`4 also includes one or more application programs indicated
`at 7A, 7B, 7C and 7D, and a store 8. The mobile device 3
`and the desktop computer 4 are connectable by one of a
`plurality of known connection mechanisms 9, such as a
`serial connection, an infrared link or a modem connection
`via the Internet or a direct dial. The form of the connection
`10 mechanism 9 is irrelevant, but additional forms of connec(cid:173)
`tions are described in copending application entitled "INTE(cid:173)
`GRATED COMMUNICATIONS ARCHITECTURE ON A
`MOBILE DEVICE" filed on even herewith, which is incor(cid:173)
`porated herein by reference.
`In one embodiment of the present invention, application
`programs 7A-7D are applications for a word processing
`program, a personal money manager, a spread sheet
`program, or a game program, to name just a few. The store
`8 is a memory which is configured to store a plurality of
`individual files for running the program or for maintaining
`data such as records or objects entered by the user. The
`desktop computer 4 executes the application programs
`7A-7D and uses the files and objects stored in store 8 as
`necessary.
`The application programs SA-SC are designed to access
`data stored in the store 6 in a manner similar to the
`applications programs 7A-7D residing on the desktop com(cid:173)
`puter 4. In some embodiments, the application programs
`SA-SC have been optimized or reduced in some manner to
`30 run on the mobile device 3 in view of typically limited
`memory available on the store 6. For instance, the applica(cid:173)
`tion program 7Aon the desktop computer 4 may be a word
`processor such as Word brand word processor sold by
`Microsoft Corporation, while the application program SA on
`35 the mobile device 3 may be Pocket Word brand word
`processor sold by Microsoft Corporation. However, since
`the mobile device 3 has limited memory making up the store
`6, the user may not be able to install all programs corre(cid:173)
`sponding to application programs 7A-7D, or other desired
`40 programs onto the mobile device 3 at any one time. In the
`embodiment illustrated, this is illustrated wherein three
`application programs SA-SC reside on the mobile device 3,
`while four application programs 7A-7D reside on the desk(cid:173)
`top computer 4. Thus, it may be necessary for the user to
`45 occasionally remove one or all of the application programs
`SA-SC installed on the mobile device 3 in order to install
`and run the desired applications. In the embodiment
`illustrated, all necessary information for installing the appli(cid:173)
`cation programs SA-SC onto the mobile device 3 are stored
`50 in the store 8 in one of a plurality of unique setup package
`files indicated at 10. Specifically, setup package file lOA
`contains or includes all of the program files and the user
`settings for installing the application program SA onto the
`mobile device 3. Similarly, setup package file lOB includes
`55 all of the program files and usersettings for installing the
`application program SB onto the mobile device 3, while
`setup package file lOC includes all of the files and user
`settings for installing the application program SC onto the
`mobile device 3. As stated above, application programs
`60 SA-SC are similar but not necessarily identical to applica(cid:173)
`tion programs 7 A-7C on the desktop computer 4. A setup
`package file lOC for mobile device 3 indicated in the store
`8 contains all of the files and user settings for installing and
`running the program SC on the mobile device 3.
`In view that the setup package files lOA-lOD are each a
`single file containing all files and settings necessary for
`installing the corresponding application programs onto the
`
`65
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 is a block diagram illustrating one environment in
`which the present invention operates.
`FIG. 2 is a block diagram of one embodiment of a
`conventional desktop computer used in conjunction with a
`mobile device.
`FIG. 3 is a simplified pictorial illustrating one embodi(cid:173)
`ment of a mobile device in accordance with the present
`invention.
`FIG. 4 is one embodiment of a simplified block diagram
`of the mobile device shown in FIG. 3.
`FIG.Sis a pictorial illustrating creation of an application
`for use on the mobile device.
`FIG. 6 is a pictorial representation of a file created in
`accordance with the pictorial of FIG. S.
`FIG. 7 is a flow diagram illustrating operation of an
`installer module on the mobile device.
`FIG. 8 is a flow diagram illustrating operation of an
`application manager module.
`FIGS. 9 and 10 illustrate user interfaces displayed by the
`application manager module.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENTS
`FIG. 1 is a block diagram of one environment 2 in which
`the present invention operates. Environment 2 includes a
`
`
`
`US 6,496,979 Bl
`
`5
`mobile device 3, the setup package files are not limited to
`use solely on a desktop computer 4. For instance, referring
`to FIG. 1, the mobile device 3 can be connected through the
`communication link 9 to a Local or a wide area network 4A,
`for example, the Internet. Although the actual creation of the
`setup package file would be done by an independent soft(cid:173)
`ware vendor (ISV), requiring a suitable desktop computer,
`once the setup package file has been stored on a server (not
`shown), the mobile device 3 can access the stored setup
`package file on the local or wide area network 4A using a
`suitable browser.
`In yet another operating environment, the mobile device
`3 can be connected to a second mobile device 4B through the
`suitable communication link 9. In this manner, application
`programs can be transferred between the mobile devices 3
`and 4B.
`In addition, the setup package files lOA-lOD can be
`transferred to the mobile device 3 using a removable storage
`or memory card 3A, which are commonly present in mobile
`devices.
`Generally, one broad aspect of the present invention
`includes the creation of the setup package files lOA-lOD for
`installing the corresponding programs onto the mobile
`device 3. Another broad aspect includes the unique structure
`of the setup package files lOA-lOD. Yet, another broad
`aspect of the present invention includes an application
`manager module 12 provided on the desktop computer 4 to
`manage the uninstalling and installing of the setup package
`files lOA-lOD onto the mobile device 3 as requested by the
`user.
`Before describing aspects of the present invention, a brief
`description of the desktop computer 4 and the mobile device
`3 will be helpful.
`FIGS. 2, 3 and 4 and the related discussion are intended
`to provide a brief, general description of a suitable comput(cid:173)
`ing environment in which the invention may be imple(cid:173)
`mented. Although not required, the invention will be
`described, at least in part, in the general context of
`computer-executable instructions, such as program modules,
`being executed by the desktop computer 4 or the mobile
`device 3. Generally, program modules include routine
`programs, objects, components, data structures, etc. that
`perform particular tasks or implement particular abstract
`data types. Moreover, those skilled in the art will appreciate
`that the invention may be practiced with other computer
`system configurations, including other handheld devices,
`such as palmtop computers, multiprocessor systems,
`microprocessor-based or programmable consumer
`electronics, network PCs, minicomputers, mainframe
`computers, and the like. The invention may also be practiced
`in distributed computing environments where tasks are
`performed by remote processing devices that are linked
`through a communications network. In a distributed com(cid:173)
`puting environment, program modules may be located in
`both local and remote memory storage devices.
`With reference to FIG. 2, an exemplary system for imple(cid:173)
`menting the invention includes a general purpose computing
`device in the form of a conventional personal or desktop
`computer 4, including a processing unit (CPU) 21, a system
`memory 22, and a system bus 23 that couples various system
`components including the system memory 22 to the pro(cid:173)
`cessing unit 21. The system bus 23 may be any of several
`types of bus structures including a memory bus or memory
`controller, a peripheral bus, and a local bus using any of a
`variety of bus architectures. The system memory 22 includes
`read only memory (ROM) 24 and random access memory
`
`10
`
`6
`(RAM) 25. A basic input/output (BIOS) 26, containing the
`basic routine that helps to transfer information between
`elements within the desktop computer 4, such as during
`start-up, is stored in ROM 24. The desktop computer 4
`further includes a hard disk drive 27 for reading from and
`writing to a hard disk (not shown), a magnetic disk drive 28
`for reading from or writing to removable magnetic disk 29,
`and an optical disk drive 30 for reading from or writing to
`a removable optical disk 31 such as a CD ROM or other
`optical media. The hard disk drive 27, magnetic disk drive
`28, and optical disk drive 30 are connected to the system bus
`23 by a hard disk drive interface 32, magnetic disk drive
`interface 33, and an optical drive interface 34, respectively.
`The drives and the associated computer-readable media
`15 provide nonvolatile storage of computer readable
`instructions, data structures, program modules and other
`data for the desktop computer 4.
`Although the exemplary environment described herein
`employs the hard disk, the removable magnetic disk 29 and
`20 the removable optical disk 31, it should be appreciated by
`those skilled in the art that other types of computer readable
`media which can store data that is accessible by a computer,
`such as magnetic cassettes, flash memory cards, digital
`video disks, Bernoulli cartridges, random access memories
`25 (RAMs), read only memory (ROM), and the like, may also
`be used in the exemplary operating environment.
`A number of program modules may be stored on the hard
`disk, magnetic disk 29, optical disk 31, ROM 24 or RAM 25,
`including an operating system 35, one or more of the
`30 application programs 7A-7D, other program modules 37,
`and program data 38. A user may enter commands and
`information into the desktop computer 4 through input
`devices such as a keyboard 40, a pointing device 42 and a
`microphone 43. Other input devices (not shown) may
`35 include a joystick, game pad, satellite dish, scanner, or the
`like. These and other input devices are often connected to the
`processing unit 21 through a serial port interface 46 that is
`coupled to the system bus 23, but may be connected by other
`interfaces, such as a sound card, a parallel port, a game port
`40 or a universal serial bus (USE). A monitor 47 or other type
`of display device is also connected to the system bus 23 via
`an interface, such as a video adapter 48. In addition to the
`monitor 47, personal computers may typically include other
`peripheral output devices, such as a speaker and printers (not
`45 shown).
`The desktop computer 4 may operate in a networked
`environment using logic connections to one or more remote
`computers, such as a remote computer 49. The remote
`computer 49 may be another personal computer, a server, a
`50 router, a network PC, a peer device or other network node,
`and typically includes many or all of the elements described
`above relative to the desktop computer 4, although only a
`memory storage device 50 has been illustrated in FIG. 1. The
`logic connections depicted in FIG. 1 include a local area
`55 network (LAN) 51 and a wide area network (WAN) 52. Such
`networking environments are commonplace in offices,
`enterprise-wide computer network Intranets and the Internet.
`When used in a LAN networking environment, the desk(cid:173)
`top computer 4 is connected to the local area network 51
`60 through a network interface or adapter 53. When used in a
`WAN networking environment, the desktop computer 4
`typically includes a modem 54 or other means for establish(cid:173)
`ing communications over the wide area network 52, such as
`the Internet. The modem 54, which may be internal or
`65 external, is connected to the system bus 23 via the serial port
`interface 46. In a network environment, program modules
`depicted relative to the desktop computer 4, or portions
`
`
`
`US 6,496,979 Bl
`
`7
`thereof, may be stored in the remote memory storage
`devices, not shown. It will be appreciated that the network
`connections shown are exemplary and other means of estab(cid:173)
`lishing a communications link between th