`Wecker et al.
`
`111111
`
`1111111111111111111111111111111111111111111111111111111111111
`US006311058Bl
`US 6,311,058 B1
`Oct. 30, 2001
`
`(10) Patent No.:
`(45) Date of Patent:
`
`(54) SYSTEM FOR DELIVERING DATA
`CONTENT OVER A LOW BIT RATE
`TRANSMISSION CHANNEL
`
`(75)
`
`Inventors: Dave Wecker, Bothell; Vinay Deo,
`Bellevue; John Mark Miller, Kirkland;
`David Thniman; Michael J. O'Leary,
`both of Redmond, all of WA (US)
`
`(73) Assignee: Microsoft Corporation, Redmond, WA
`(US)
`
`( *) Notice:
`
`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/107,666
`
`(22) Filed:
`
`Jun. 30, 1998
`
`Int. Cl? ...................................................... H04M 3/00
`(51)
`(52) U.S. Cl. ........................... 455/418; 455/419; 455/412
`(58) Field of Search ..................................... 455/412, 437,
`455/422, 403, 418, 419, 186; 370/486,
`85.13; 379/93.25; 395!500, 200.34; 700/10;
`600/300
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`5,559,800 * 9/1996 Mousseau et a!. ................ 370/85.13
`5,799,151 * 8/1998 Hoffer ............................. 395/200.34
`5,905,856 * 5/1999 Ottensooser .................... 395/183.14
`5,923,738 * 8/1999 Cardillo, IV eta!. ............ 379/93.25
`5,935,060 * 8/1999 Iliff ....................................... 600/300
`
`5,943,496 * 8/1999 Li et a!.
`............................... 395/685
`5,946,326 * 8/1999 Rinne ................................... 370/486
`5,963,944 * 10/1999 Adams ................................... 707/10
`5,974,085 * 10/1999 Smith ................................... 375/222
`5,974,238 * 10/1999 Chase, Jr ......................... 395/200.78
`6,005,490 * 12/1999 Higashihara .................... 340/825.72
`6,041,183 * 3/2000 Hayafune eta!. ................... 395/712
`6,151,610 * 11/2000 Senn eta!. ........................... 707/516
`
`OTHER PUBLICATIONS
`
`"Dynamic Documents: Mobile Wireless Access to the
`WWW", by M. Frans Kaashoek et al., IEEE, Dec. 8, 1994,
`pp. 179-184.
`"Extending HTML in a principled way with displets", by
`Fabio Vitali, Chao-Min Chiu, Michael Bieber, Computer
`Networks and ISDN Systems, vol. 29, No. 8-13, Sep. 1,
`1997, pp. 1115-1128.
`"Minstrel™ Plus" brochure, for Novate) Wireless, Inc.,
`copyright 1998.
`* cited by examiner
`
`Primary Examiner-Daniel Hunter
`Assistant Examiner-C. Chow
`(74) Attorney, Agent, or Firm-Joseph R. Kelly; Westman,
`Champlin & Kelly, P.A.
`
`(57)
`
`ABSTRACT
`
`The present invention provides a system by which informa(cid:173)
`tion content data is delivered to a mobile device. The web
`content is divided into data and script information. The
`script information is used to operate on the data to render the
`data in a predetermined format.
`
`34 Claims, 6 Drawing Sheets
`
`10\
`
`CONTENT
`PROVIDER
`12
`-
`
`DESKTOP
`COMPUTER 16
`
`SYNC.
`
`COMPONENT ....-...
`
`26
`
`WIRELESS
`CARRIER 14
`
`I WPS20
`
`MODEM WIRELESS
`RECEIVER22
`24
`
`SYNC.
`COMPONENT MOBILE DEVICE 18
`28
`
`Samsung Exhibit 1021 Page 00001
`
`
`
`U.S. Patent
`
`Oct. 30, 2001
`
`Sheet 1 of 6
`
`US 6,311,058 B1
`
`10\
`
`CONTENT
`PROVIDER
`12
`-
`
`·~
`
`1
`
`..
`
`WIRELESS
`CARRIER 14
`-
`
`IWPS20
`
`•r
`
`MODEM WIRELESS
`RECEIVER 22
`24
`-
`
`DESKTOP
`COMPUTER 16
`
`SYNC.
`SYNC.
`COMPONENT ~ COMPONENT MOBILE DEVICE 18
`26
`28
`-
`-
`
`FIG._1
`
`Page 00002
`
`
`
`U.S. Patent
`
`Oct. 30, 2001
`
`Sheet 2 of 6
`
`US 6,311,058 B1
`
`30 \
`
`PROCESSOR
`
`A rss
`~
`
`34\
`
`1/0
`
`~
`
`....
`
`36\
`
`....
`..,
`
`COMMUNICATION /L-
`.....
`LINK
`
`MEMORY
`
`OS
`
`APP(S)
`
`OBJECT
`STORE
`
`/32
`
`r40
`
`v
`
`r42
`
`r44
`
`/
`
`/
`
`.... WIRELESS
`..
`RECEIVER
`
`v37
`
`( 39
`
`\I
`
`FIG._2
`
`18
`
`/
`
`18~
`
`c:::Jc:::Jc:::Jc::Jc::Jc:::Jc:::Jc::Jc:::J
`c:::Jc:::Jc::Jc::Jc:.:Jc:::Jc:::Jc:.:J
`c:::Jc:::Jc::Jc::Jc::Jc:.:Jc:::Jc:::Jc::J
`II
`
`FIG._3
`
`Page 00003
`
`
`
`U.S. Patent
`
`Oct. 30, 2001
`
`Sheet 3 of 6
`
`US 6,311,058 B1
`
`45
`
`;-18
`;.
`
`51
`
`D
`DO
`D
`
`49
`
`47
`
`FIG._4
`
`232
`
`(
`
`234
`
`(
`
`236
`
`(
`
`238
`
`(
`
`r230
`
`RADIO
`TRANSPORT
`HEADER
`
`GROUP AND
`TOPIC
`FILTERING
`BYTES
`
`ROUTING
`HEADER
`
`DATA
`
`~+-1~ ---- PACKET HEADER ----•*1•-- PACKET DATA -1
`FIG._7
`
`Page 00004
`
`
`
`U.S. Patent
`
`Oct. 30, 2001
`
`Sheet 4 of 6
`
`US 6,311,058 B1
`
`59
`
`Jrll
`liir
`Removable
`Storage
`
`I
`
`Optical Drive
`
`61
`
`v77
`
`0 Monitor
`
`I
`Video
`Adapter
`
`/78
`
`(16
`
`COMPUTER
`
`(60
`
`Disk Drive
`(58
`
`Optical H INTF
`
`Disk Drive
`_e57
`
`._ Magnetic H INTF
`Hard Drive H INTF 1
`
`(64
`
`:
`
`(63
`
`]
`
`(62
`
`52\
`
`r----76
`
`CPU v4s
`
`r-_50
`
`I
`MEMORY
`
`ROM
`54
`
`BIOS RAM
`56
`25
`
`Operating
`System 65
`
`Program Module
`67
`
`Application
`Programs 66
`
`Program Data
`68
`
`Serial Port
`Interface
`
`Network vs3
`Adapter
`
`L
`
`rs4
`(70 {72
`e Modem
`/E'OQ ~\
`
`LAN
`
`Keyboard
`
`Mouse
`
`82
`
`WAN
`
`81
`
`(79
`
`Remote
`Computer
`
`c-BO
`Memory
`
`FIG._5
`
`Page 00005
`
`
`
`U.S. Patent
`
`Oct. 30, 2001
`
`Sheet 5 of 6
`
`US 6,311,058 B1
`
`SYNC.
`COMPONENT
`26
`
`RADIO
`RECEIVER
`AND DRIVER
`22
`
`MODEM 24
`
`I SCRIPT
`
`TEMPLATES
`204
`
`I
`
`I
`
`DATA
`202
`
`/
`
`I"
`CACHE 206
`
`MESSAGE
`ROUTER 210
`
`r-----------------~--,
`I
`I
`I
`UNPACKER
`ROUTING
`CACHE
`4 MANAGER M-----+1---1 COMPONENT 1+- TRANSLATORS j+- AND JOINER
`214
`I
`208
`216
`212
`I
`I L ____________________ J
`
`LOAD ABLE
`TRANSPORT
`220
`
`I HTML I
`
`CHANNEL
`PAGE 1----.! BROWSER 1-----111>1~ DISPLAY 45
`224
`218
`-
`
`FIG._6
`
`Page 00006
`
`
`
`U.S. Patent
`
`Oct. 30, 2001
`
`Sheet 6 of 6
`
`US 6,311,058 B1
`
`18~
`
`~20
`
`CACHE 208
`
`E-MAIL272
`
`WEB
`CONTENT 250
`
`SCHEDULER
`252
`
`i
`
`f
`
`ROUTING
`COMPONENT
`216
`
`DECOMPRESSOR
`270
`f
`DECRYPTOR
`268
`t
`
`COMPRESSOR
`260
`
`"-.__ 254
`
`209 "'-
`
`ENCRYPTOR
`262
`
`ENCODER 264
`
`...
`MESSAGE
`ROUTER 210 M---+1
`
`PACKAGER 256
`
`j
`
`DECODER266
`
`UNPACKAGER
`212
`
`RADIO DRIVER
`RADIO
`TRANSMITTER 1 - - - - - - - - - - -+1 . . AND RECEIVER
`258
`__ 22
`
`FIG._B
`
`Page 00007
`
`
`
`US 6,311,058 Bl
`
`1
`SYSTEM FOR DELIVERING DATA
`CONTENT OVER A LOW BIT RATE
`TRANSMISSION CHANNEL
`
`CROSS-REFERENCE TO RELATED
`APPLICATION
`
`Reference is hereby made to co-pending U.S. patent
`applications Ser. No. 09/107,941, filed on date herewith,
`entitled CHANNEL DEFINITION ARCHITECTURE
`EXTENSION, Ser. No. 09/107,899, entitled SYSTEM FOR
`EFFICIENT ROUTING AND TRANSLATION OF DATA,
`filed on date herewith; and Ser. No. 09/059,540, entitled
`COMPRESSION INTO ARBITRARY CHARACTER
`SETS, filed on Apr. 13, 1998, all of which have been
`assigned to the same assignee as the present invention and
`are fully incorporated by reference herein.
`The present application is based on a provisional appli(cid:173)
`cation Ser. No. 60/070,720 filed on Jan. 7, 1998 and provi(cid:173)
`sional application Ser. No. 60/075,123 filed on Feb. 13, 20
`1998.
`
`15
`
`BACKGROUND OF THE INVENTION
`
`2
`tent provided on a global network such as the internet and
`world wide web) to such devices in a wireless manner and
`in an open and available architecture. The bit rate of con(cid:173)
`ventional wireless channels is very low. Thus, the delivery
`5 of very large content (such as HDML content) is highly
`impractical.
`One conventional type of approach to delivering such
`information is to rewrite the content into a device friendly
`format, such as HTML. The content is then obtained over a
`10 pull-style model. Another approach currently being used to
`deliver information via a wireless medium is a closed model.
`In a closed model, a content provider Can only provide
`content which is written in a format suitable for receipt by
`a specific device implementing a specific type of software.
`This means that the vast majority of web content is unavail(cid:173)
`able for viewing on such devices.
`
`SUMMARY OF THE INVENTION
`
`The present invention provides a system by which infor(cid:173)
`mation content is delivered to a mobile device. The web
`content is divided into data and script information. The
`script information is used to operate on the data to render the
`data in a predetermined format.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a simplified block diagram illustrating one
`embodiment of a mobile device in a system in accordance
`with the present invention.
`FIG. 2 is a more detailed block diagram of one embodi(cid:173)
`ment of a mobile device shown in FIG. 1.
`FIG. 3 is a simplified pictorial illustration of one emboid(cid:173)
`ment of the mobile device shown in FIG. 2.
`FIG. 4 is a simplified pictorial illustration of another
`embodiment of the mobile device shown in FIG. 2.
`FIG. 5 is a block diagram of one embodiment of a desktop
`computer in accordance with one aspect of the present
`invention.
`FIG. 6 is a flow diagram illustrating the operation of a
`mobile device in accordance with one aspect of the present
`invention.
`FIG. 7 illustrates a general data structure of a packet
`transmitted to the mobile device in accordance with one
`aspect of the present invention.
`FIG. 8 is a more detailed flow diagram illustrating a
`routing and translator layer and the preparation of packets
`for transmission in accordance with one aspect of the present
`invention.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENTS
`
`The present invention relates to personal mobile comput(cid:173)
`ing devices commonly known as mobile devices. More 25
`particularly, the present invention relates to a system and
`method for delivering and receiving information on a mobile
`device.
`Mobile devices are small electronic computing devices
`often referred to as personal digital assistants. Many such 30
`mobile devices are hand held devices, or palm-size devices,
`which comfortably fit within the hand. One commercially
`available mobile device is sold under the trade name Hand(cid:173)
`Held PC (or H/PC) having software provided by Microsoft
`Corporation of Redmond, Wash.
`Generally, the mobile device includes a processor, ran(cid:173)
`dom access memory (RAM), and an input device such as a
`keyboard and a display. The keyboard can be integrated with
`the display, such as where the keyboard is incorporated as a
`touch sensitive display. A communication interface is
`optionally provided and is commonly used to communicate
`with a desktop computer. A replaceable or rechargeable
`battery powers the mobile device. Optionally, the mobile
`device can receive power from an external power source that
`overrides or recharges the built-in battery.
`In some prior applications, the mobile device is used in
`conjunction with a desktop computer. For example, the user
`of the mobile device may also have access to, and use, a
`desktop computer at work or at home, or both. The user
`typically rung the same types of applications on both the
`desktop computer and on 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 information with, the desktop computer.
`Another technique for providing information to such
`mobile devices is through a wireless transmission link. Such
`information can include electronic mail or news, weather,
`sports, traffic and local event information. The information
`is typically obtained from a desktop computer connected to
`the Internet and delivered over a wired connection.
`However, it may be desirable to deliver such information
`over a wireless connection as well. A wireless receiver on
`the mobile device can act to receive information as it is
`being sent to the mobile device.
`There is presently no reasonable way to deliver push style
`content (such as hypertext mark-up language (HTML) con-
`
`35
`
`40
`
`45
`
`50
`
`FIG. 1 illustrates a system 10 in which the present
`55 invention is illustratively implemented. System 10 includes
`content provider 12, wireless carrier 14, desktop computer
`16 and mobile device 18. Content provider 12 provides any
`suitable type of data from a database or other data source.
`For example, content provider 12 is discussed hereinafter as
`60 a provider of internet world wide web content. In the
`preferred embodiment, the content is provided in a standard
`format, such as HTML, JPEG, GIF, WAV, etc. The web
`content is also preferably described in a channel definition
`format (CDF) file. A single portion of content (such as a web
`65 page or a web site) is referred to herein as a mobile channel.
`A mobile channel is a self describing web site that
`contains all the information necessary for efficient download
`
`Page 00008
`
`
`
`US 6,311,058 Bl
`
`3
`of web content to mobile device 18. Three components are
`provided in a preferable mobile channel. The components
`include a channel definition format (CDF) file, a set of script
`files to render the channel, and a set of data files to be
`rendered. The CDF files are described in greater detail in
`co-pending U.S. patent application Ser. No. 09/107,941,
`entitled CHANNEL DEFINITION ARCHITECTURE
`EXTENSION, and hereby fully incorporated by reference.
`Briefly, the CDF is an inventory of content contained on the
`mobile channel.
`The script files contain script which defines templates
`which specify the appearance of the data on the screen of
`mobile device 18. Scripts are preferably written in visual
`basic script (VBS).
`The data files correspond to one or more script files and
`include data which is indicative of the substantive content of
`the channel to be rendered. The data is packaged in small
`and simple text files. All of this information is used to define
`web content.
`Wireless carrier 14 is described in greater detail later in
`the application. Briefly, however, wireless carrier 14 is
`configured to receive web content from the web content
`provider 12 via dial-up or direct internet connection, or a
`network connection. Wireless carrier 14 also includes a
`wireless push server 20. Server 20 splits the content received
`from content provider 12 into pieces which are compatible
`with the particular type of transport being used by wireless
`carrier 14. For instance, server 20 may split the data such
`that it conforms to maximum packet size constraints, char- 30
`acter set requirements, etc. for the channel type or transport
`type being used. Prior to transmission, the data is preferably
`translated to a different form. As is described in greater detail
`later in the application, such translation may include
`compression, encryption, encoding and then packaging. 35
`Once the data has been split appropriately such that it
`conforms to the transport constraints, the data is then con(cid:173)
`figured for transmission over the air through a wireless
`network (such as through a paging channel) to be received
`directly on mobile device 18. The transmitted data is 40
`received by a wireless receiver and driver component 22 on
`mobile device 18 where the data is prepared for use by
`mobile device 18.
`Mobile device 18 also preferably includes a modem 24.
`Thus, rather than being transmitted through wireless carrier 45
`14, the web content can be transmitted directly from web
`content provider 12 through a direct dial-up modem con(cid:173)
`nection to mobile device 18.
`Desktop computer 16 will also be described in greater
`detail later in the specification. Briefly, however, desktop 50
`computer 16 is preferably provided with a standard web
`browser, such as Internet Explorer 4.0 commercially avail(cid:173)
`able from the Microsoft Corporation of Redmond, Wash.
`That being the case, the users of desktop 16 can preferably
`subscribe to channels in a standard fashion which provide 55
`the user with certain channel content which can be browsed
`off-line or on-line. Desktop computer 16 is preferably pro(cid:173)
`vided with a loadable transport (in accordance with one
`aspect of the present invention) that accesses the script files
`and acts on the corresponding data file (in accordance with 60
`the script) to render the content where desktop computer 16
`renders the data. Desktop computer 16, through the
`transport, can periodically retrieve or receive new and
`updated script, data and CDF files either for further trans(cid:173)
`mission to mobile device 18 or simply for rendering the data. 65
`The script, data and CDF files can be transmitted either
`together or independently of one another. Since scripting
`
`4
`files typically need updating much less frequently than the
`data files, this provides the user with the ability to view the
`web content on the desktop (off-line) while requiring only
`small amounts of bandwidth for incremental updating of the
`5 data files.
`Desktop computer 16 also preferably includes synchro(cid:173)
`nization component 26. Briefly, synchronization component
`26 is configured to interact with a similar synchronization
`component 28 on mobile device 18 such that files which are
`10 the subject of synchronization can be synchronized from
`desktop computer 16 to mobile device 18, or vice versa.
`Once synchronized, both files (those on computer 16 and
`mobile device 18) contain up to date information.
`More specifically, mobile device 18, in the preferred
`15 embodiment, can be synchronized with either desktop com(cid:173)
`puter 16, or another mobile device 18, or both. In that
`instance, properties of objects stored in an object store on
`mobile device 18 are similar to properties of other instances
`of the same object stored in an object store on desktop
`20 computer 16 or another mobile device 18. Thus, for
`example, when a user changes one instance of an object
`stored in an object store on desktop computer 16, the second
`instance of that object in the object store of mobile device 18
`is updated the next time mobile device 18 is connected to
`25 desktop computer 16 so that both instances of the same
`object contain up-to-date data. This is referred to as syn(cid:173)
`chronization.
`In order to accomplish synchronization, synchronization
`components 26 and 28 run on both mobile device 18 and
`desktop computer 16 (or another mobile device 18). The
`synchronization components communicate with one another
`through well defined interfaces to manage communication
`and synchronization.
`Mobile device 18 is also preferably provided with a script
`interpreter which, in one preferred embodiment, is the same
`as or similar to the loadable transport on desktop computer
`16. Such a transport may be, for example, a down-sized
`visual basic interpreter, which receives and interprets the
`formatting script. The script is associated with a certain data
`file (typically a text file) that holds the raw data for the web
`content. Thus, the script interpreter operates on the data
`associated with a given script to provide a rendering of the
`web content to the user of mobile device 18.
`By separating the script from the data in the web content,
`web content can be transmitted to mobile device 18 over
`very low bit rate channels. The script will only typically
`need to be transmitted very infrequently. Also, since an
`individual file is typically much smaller than the script files,
`the data can be updated quite frequently, giving the user of
`mobile device 18 updated web content information, without
`transmitting new script. Thus, the separation of the script
`and data allows the transmission of web content information
`in a very efficient manner over low bit rate channels.
`It is worth noting that, in the preferred embodiment, while
`mobile device 18 can be coupled to desktop computer 16, it
`can be also coupled to another mobile device 18. This
`connection can be made using any suitable, and commer(cid:173)
`cially available, communication link and using a suitable
`communications protocol. For instance, in one preferred
`embodiment, mobile device 18 communicates with either
`desktop computer 16 or another mobile device 18 with a
`physical cable which communicates using a serial commu(cid:173)
`nications protocol. Other communication mechanisms are
`also contemplated by the present invention, such as infra-red
`(IR) communication or other suitable communication
`mechanisms.
`
`Page 00009
`
`
`
`US 6,311,058 Bl
`
`10
`
`5
`FIG. 2 is a more detailed block diagram of mobile device
`18. Mobile device 18 preferably includes microprocessor 30,
`memory 32, input/output (110) components 34, desktop
`communication interface 36 wireless receiver 37 and
`antenna 39. In a preferred embodiment, these components of 5
`mobile 10 are coupled for communication with one another
`over a suitable bus 38.
`Memory 32 is preferably implemented as non-volatile
`electronic memory such as random access memory (RAM)
`with a battery back-up module (not shown) such that infor(cid:173)
`mation stored in memory 32 is not lost when the general
`power to mobile device 18 is shut down. A portion of
`memory 32 is preferably allocated as addressable memory
`for program execution, while another portion of memory 32
`is preferably used for storage, such as to simulate storage on 15
`a disc drive.
`Memory 32 includes operating system 40, an application
`program 42 (such as a personal information manager or
`PIM) as well as an object store 44. During operation,
`operating system 40 is preferably executed by processor 30 20
`from memory 32. Operating system 40, in one preferred
`embodiment, is a Windows CE brand operating system
`commercially available from Microsoft Corporation. The
`operating system 40 is preferably designed for mobile
`devices, and implements database features which can be 25
`utilized by PIM 42 through a set of exposed application
`programming interfaces and methods. The objects in object
`store 44 are preferably maintained by PIM 42 and operating
`system 40, at least partially in response to calls to the
`exposed application programming interfaces and methods. 30
`1!0 components 34, in one preferred embodiment, are
`provided to facilitate input and output operations from a user
`of mobile device 18. 1!0 components 34 are described in
`greater detail with respect to FIGS. 3 and 4.
`Desktop communication interface 36 is optionally pro(cid:173)
`vided as any suitable communication interface. Interface 36
`is preferably used to communicate with desktop computer
`16, content provider 12, wireless carrier 14 and optionally
`another mobile device 18, as described with respect to FIG. 40
`1. Thus, communication interface 36 preferably includes
`synchronization components 28 for communicating with
`desktop computer 16 and modem 24 for communicating
`with content provider 12. Wireless receiver and driver 22 are
`used for communicating with wireless carrier 14.
`FIG. 3 is a simplified pictorial illustration of one preferred
`embodiment of a mobile device 10 which can be used in
`accordance with the present invention. Mobile device 10, as
`illustrated in FIG. 3, can be a desktop assistant sold under
`the designation H/PC having software provided by the
`Microsoft Corporation. In one preferred embodiment,
`mobile device 18 includes a miniaturized keyboard 43,
`display 45 and stylus 46. In the embodiment shown in FIG.
`3, display 45 is a liquid crystal display (LCD) which uses a
`contact sensitive display screen in conjunction with stylus
`46. Stylus 46 is used to press or contact the display 45 at
`designated coordinates to accomplish certain user input
`functions. Miniaturized keyboard 43 is preferably imple(cid:173)
`mented as a miniaturized alpha-numeric keyboard, with any
`suitable and desired function keys which are also provided
`for accomplishing certain user input functions.
`FIG. 4 is another simplified pictorial illustration of the
`mobile device 18 in accordance with another preferred
`embodiment of the present invention. Mobile device 18, as
`illustrated in FIG. 4, includes some items which are similar
`to those described with respect to FIG. 3, and are similarly
`numbered. For instance, mobile device 18, as shown in FIG.
`
`6
`4, also includes touch sensitive screen 45 which can be used,
`in conjunction with stylus 46, to accomplish certain user
`input functions. It should be noted that the display 45 for the
`mobile device as shown in FIGS. 3 and 4 can be the same
`size as one another, or different sizes from one another, but
`would typically be much smaller than a conventional display
`used with a desktop computer. For example, displays 45
`shown in FIGS. 3 and 4 may be defined by a matrix of only
`240x320 coordinates, or 160x160 coordinates, or any other
`suitable size.
`The mobile device 18 shown in FIG. 4 also includes a
`number of user input keys or buttons (such as scroll buttons
`47) which allow the user to scroll through menu options or
`other display options which are displayed on display 45, or
`which allow the user to change applications, without con(cid:173)
`tacting display 45. In addition, the mobile device 18 also
`shown in FIG. 4 also preferably includes a power button 49
`which can be used to turn on and off the general power to the
`mobile device 18.
`It should also be noted that, in the embodiment illustrated
`in FIG. 4, mobile device 18 includes a hand writing area 51.
`Hand writing area 51 can be used in conjunction with stylus
`46 such that the user can write messages which are stored in
`memory 42 for later use by the mobile device 18. In one
`illustrative embodiment, the hand written messages are
`simply stored in hand written form and can be recalled by
`the user and displayed on the display screen 45 such that the
`user can review the hand written messages entered into the
`mobile device 18. In another preferred embodiment, mobile
`device 18 is provided with a character recognition module
`such that the user can enter alpha-numeric information into
`mobile device 18 by writing that alpha-numeric information
`on area 51 with stylus 46. In that instance, character recog(cid:173)
`nition module in the mobile device 18 recognizes the
`35 alpha -numeric characters and converts the characters into
`computer recognizable alpha-numeric characters which can
`be used by the application programs 42 in mobile device 18.
`FIG. 5 and the related discussion are intended to provide
`a brief, general description of a suitable desktop computer
`16 in which portions of the invention may be implemented.
`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 a
`personal computer 16 or mobile device 18. Generally, pro-
`45 gram 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 desktop computer
`16 may be implemented with other computer system
`50 configurations, including 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
`55 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. 5, an exemplary system for imple-
`60 menting desktop computer 16 includes a general purpose
`computing device in the form of a conventional personal
`computer 16, including processing unit 48, a system
`memory 50, and a system bus 52 that couples various system
`components including the system memory 50 to the pro-
`65 cessing unit 48. The system bus 52 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
`
`Page 00010
`
`
`
`US 6,311,058 Bl
`
`8
`external, is connected to the system bus 52 via the serial port
`interface 76. In a network environment, program modules
`depicted relative to desktop computer 16, or portions
`thereof, may be stored in the remote memory storage
`5 devices. It will be appreciated that the network connections
`shown are exemplary and other means of establishing a
`communications link between the computers may be used.
`Desktop computer 16 runs operating system 65 that is
`typically stored in non-volatile memory 54 and executes on
`the processor 48. One suitable operating system is a Win(cid:173)
`dows brand operating system sold by Microsoft
`Corporation, such as Windows 95 or Windows NT, operat(cid:173)
`ing systems, other derivative versions of Windows brand
`operating systems, or another suitable operating system.
`Other suitable operating systems include systems such as the
`Macintosh OS sold from Apple Corporation, and the OS/2
`Presentation Manager sold by International Business
`Machines (IBM) of Armonk, N.Y. Application programs are
`preferably stored in program module 67, in volatile memory
`or non-volatile memory, or can be loaded into any of the
`components shown in FIG. 5 from a floppy diskette 59,
`CD ROM drive 61, downloaded from a network via network
`adapter 83, or loaded using another suitable mechanism.
`A dynamically linked library (DLL), comprising a plu-
`rality of executable functions is associated with PIMs in the
`memory for execution by processor 48. Interprocessor and
`intercomponent calls are facilitated using the component
`object model (COM) as is common in programs written for
`Microsoft Windows brand operating systems. Briefly, when
`using COM, a software component such as a DLL has a
`number of interfaces. Each interface exposes a plurality of
`methods, which can be called individually to utilize different
`services offered by the software component. In addition,
`interfaces are provided such that methods or functions can
`be called from other software components which optionally
`receive and return one or more parameter arguments.
`In general, the DLL associated with the particular PIM is
`designed specifically to work in conjunction with that PIM
`and to expose desktop synchronization interfaces that func(cid:173)
`tion as described in more detail above according to a
`synchronization protocol. The DLL, in turn, calls interfaces
`exposed by the PIM in order to access data representing
`individual properties of objects maintained in an object
`store. The object store 6, of course, can reside in any one of
`the suitable memory components described with respect to
`FIG. 4.
`
`10
`
`7
`variety of bus architectures. The system memory 50 includes
`read only memory (ROM) 54 a random access memory
`(RAM) 55. A basic input/output system (BIOS) 56, contain(cid:173)
`ing the basic routine that helps to transfer information
`between elements within the desktop computer 16, such as
`during start-up, is stored in ROM 54. The desktop computer
`16 further includes a hard disk drive 57 for reading from and
`writing to a hard disk (not shown) a magnetic disk drive 58
`for reading from or writing to removable magnetic disk 59,
`and an optical disk drive 60 for reading from or writing to
`a removable optical disk 61 such as a CD ROM or other
`optical media. The hard disk drive 57, magnetic disk drive
`58, and optical disk drive 60 are connected to the system bus
`52 by a hard disk drive interface 62, magnetic disk drive
`interface 63, and an optical drive interface 64, respectively. 15
`The drives and the associated computer-readable media
`provide non-volatile storage of computer readable
`instructions, data structures, program modules and other
`data for the desktop computer 16.
`Although the exemplary environment described herein 20
`employs a hard disk, a removable magnetic disk 59 and a
`removable optical disk 61, 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 25
`disks (DVDs), Bernoulli cartridges, random access memo(cid:173)
`ries (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 59, optical disk 61, ROM 54 or RAM 55, 30
`including an operating system 65, one or more application
`programs 66 (which may include PIMs), other program
`modules 67 (which may include synchronization component
`26), and program data 68. A user may enter commands and
`information into the desktop computer 16 through input 35
`devices such as a keyboard 70, pointing device 72 and
`microphone 74. Other input devices (not shown) may
`include a joystick, game pad, satellite dish, scanner, or the
`like. These and other input devices are often connected to the
`processing unit 48 through a serial port interface 76 that is 40
`coupled to the system bus 52, but may be connected by other
`interfaces, such as a sound card, a parallel port, game port
`or a universal serial bus (USB). A m