`(10) Patent No:
`a2) United States Patent
`US 6,311,058 B1
`Weckeret al.
`(45) Date of Patent:
`Oct. 30, 2001
`
`
`(54) SYSTEM FOR DELIVERING DATA
`CONTENT OVER A LOW BIT RATE
`TRANSMISSION CHANNEL
`.
`Vi
`Inventors: Dave Wecker,Bothell; Vinay Deo,
`Bellevue; John Mark Miller, Kirkland;
`:
`.
`nat
`1,
`David Tuniman; Michael J. O’Leary,
`both of Redmond,all of WA (US)
`
`(75)
`
`(73) Assignee: Microsoft Corporation, Redmond, WA
`(US)
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`USS.C. 154(b) by 0 days.
`
`(*) Notice:
`
`(21) Appl. No.: 09/107,666
`(22)
`Filed:
`Jun. 30, 1998
`
`(SL) Mts C0 cececeeeccccssesssessseeecceseessneeeseeeeesaee H04M 3/00
`
`(52) US. Ch. wee . 455/418; 455/419; 455/412
`
`’
`(58) Field of Search 0... 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 al.ssc 370/85.13
`5,799,151 *
`_ 305/200.34
`8/1998 Hoffer sees
`
`5,905,856 *
`5/1999 Ottensooser
`.. 395/183.14
`
`8/1999 Cardillo, IV et al.
`we 379/93.25
`5,923,738 *
`8/1999 Tiff cece eeceeseeeeeeeseee 600/300
`5,935,060 *
`
`8/1999 Liet al. wees 395/685
`5,943,496 *
`
`8/1999 Rinne.......
`.. 370/486
`5,946,326 *
`
`.. 707/10
`5,963,944 * 10/1999 Adams .
`5,974,085 * 10/1999 Smith wees 375/222
`
`5,974,238 * 10/1999 Chase,Jk......
`ve, 395/200.78
`6,005,490 * 12/1999 Higashihara....
`ve 340/825.72
`
`6041183 *
`3
`/2000 Hayafune et al.
`oe 395/712
`,041,
`6,151,610 * 11/2000 Senn etal. w..scccceccssseessseees 707/516
`OTHER PUBLICATIONS
`
`“Dynamic Documents: Mobile Wireless Access to the
`WWW”, by M. Frans Kaashoeket al., JEEE, Dec. 8, 1994,
`PP- 179-184.
`.
`a
`oo
`.
`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 Novatel 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, RA.
`(57)
`ABSTRACT
`Lae
`.
`.
`.
`The present invention provides a system by which informa-
`tion content data is delivered to a mobile device. The web
` CoMlent
`is divided into data and script information. The
`script information isused to operate on the data to render the
`data in a predetermined format.
`
`34 Claims, 6 Drawing Sheets
`
`CONTENT
`PROVIDER
`12
`
`WIRELESS
`CARRIER 14
`
`COMPUTER 16
`
`DESKTOP
`
`SYNC.
`COMPONENT
`26
`
`SYNC.
`COMPONENT
`28
`
`MODEM| WIRELESS
`RECEIVER 22
`
`MOBILE DEVICE 78
`
`1
`
`SAMSUNG 1015
`
`SAMSUNG 1015
`
`1
`
`
`
`U.S. Patent
`
`Oct. 30, 2001
`
`Sheet 1 of 6
`
`US 6,311,058 B1
`
`CONTENT
`PRE
`
`WIRELESS
`CARRIER 14
`
`COMPUTER 16
`
`MODEM] WIRELESS
`RECEIVER 22
`
`DESKTOP
`
`SYNC.
`COMPONENT
`26
`
`SYNC.
`COMPONENT]
`28
`
`MOBILE DEVICE 18
`
`FIG._1
`
`2
`
`
`
`U.S. Patent
`
`Oct. 30, 2001
`
`Sheet 2 of 6
`
`US 6,311,058 B1
`
`PROCESSOR
`
`LINK
`
`COMMUNICATION
`
`
`
`43
`
`LI LD LOO OO) CO LI “LO LO OO f-
`
`LO OD OF OF OD OD LO OO OD
`
`
`LD OO ODO ALI Oo
`
`
`FIG._3 eee
`
`3
`
`
`
`U.S. Patent
`
`Oct. 30, 2001
`
`Sheet 3 of 6
`
`US 6,311,058 B1
`
`
`
`FIG._4
`
`BYTES
`
`RADIO
`TRANSPORT
`HEADER
`
`GROUP AND
`TOPIC
`FILTERING
`
`ROUTING
`HEADER
`
`|__——PACKET HEADER+—— PACKET DATA>
`
`FIG._7
`
`4
`
`
`
`U.S. Patent
`
`Oct. 30, 2001
`
`Sheet 4 of 6
`
`US 6,311,058 B1
`
`: .
`
`= a
`Removable
`"
`Storage
`Optical Drive —
`
` COMPUTER
`
`61
`
`LJ os
`
`Monitor
`
`16
`
`48
`
`Optical
`Disk Drive
`
`Magnetic
`Disk Drive
`
`R
`25
`
`56
`
`Operating
`System 65
`
`Program Module
`67
`67
`
`Application
`Programs 66
`
`Program Data
`68
`
`Serial Port
`Interface
`
`Network
`Adapter
`
`70
`
`
`
`Keyboard
`
`72
`oY [ese
`
`8
`
`4
`
`Mouse
`
`81
`
`Remote
`Computer
`
`79
`
`80
`
`82
`
`FIG._5
`
`5
`
`
`
`U.S. Patent
`
`Oct. 30, 2001
`
`Sheet 5 of 6
`
`US 6,311,058 B1
`
`22 26
`
`RADIO
`RECEIVER
`AND DRIVER
`
`SYNC.
`COMPONENT
`
`MODEM 24
`
`
`SCRIPT
`
`
`TEMPLATES
`
`204
`
`DATA
`
`
`
`
`
`MESSAGE
`
`
`ROUTER 270
`
`220
`
`CACHE 206
`
`
`
`
`UNPACKER
`ROUTING
`CACHE
`
`TRANSLATORS
`AND JOINER
`COMPONENT
`MANAGER
`
`
`214
`
`
`212
`216
`208
`
`
`LOADABLE
`TRANSPORT
`
`
`
`CHANNEL
`BROWSER
`218
`
`FIG._6
`
`DISPLAY 45
`
`6
`
`
`
`U.S. Patent
`
`Oct. 30, 2001
`
`Sheet 6 of 6
`
`US 6,311,058 B1
`
`WEB
`
`CONTENT 250
`
`Se
`
`a
`
`18
`
`20
`
`x
`
`CACHE 208
`
`E-MAIL 272
`
`ROUTING
`
`COMPONENT
`
`216
`
`212
`
`COMPRESSOR
`260
`
`254
`
`209
`
`DECOMPRESSOR
`270
`
`ENCRYPTOR
`262
`
`ENCODER 264
`
`PACKAGER 256
`
`DECRYPTOR
`268
`
`MESSAGE
`
`ROUTER 210 DECODER 266
`
`UNPACKAGER
`
`
`
`RADIO DRIVER
`AND RECEIVER
`22
`
`RADIO
`TRANSMITTER
`298
`
`FIG._8
`
`7
`
`
`
`US 6,311,058 B1
`
`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-
`cation Ser. No. 60/070,720 filed on Jan. 7, 1998 and provi-
`sional application Ser. No. 60/075,123 filed on Feb. 13,
`1998.
`
`BACKGROUND OF THE INVENTION
`
`The present invention relates to personal mobile comput-
`ing devices commonly known as mobile devices. More
`particularly, the present invention relates to a system and
`methodfor delivering and receiving information on a mobile
`device.
`
`Mobile devices are small electronic computing devices
`often referred to as personal digital assistants. Many such
`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-
`Held PC (or H/PC) having software provided by Microsoft
`Corporation of Redmond, Wash.
`Generally, the mobile device includes a processor, ran-
`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 sourcethat
`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 devicesis 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 wayto deliver push style
`content (such as hypertext mark-up language (HTML)con-
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`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-
`ventional wireless channels is very low. Thus, the delivery
`of very large content (such as HDMLcontent) 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.Thecontentis then obtained over a
`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 meansthat the vast majority of web content is unavail-
`able for viewing on such devices.
`
`SUMMARYOF THE INVENTION
`
`The present invention provides a system by which infor-
`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-
`ment of a mobile device shown in FIG. 1.
`
`FIG. 3 is a simplified pictorial illustration of one emboid-
`ment of the mobile device shownin 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 embodimentof 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
`
`FIG. 1 illustrates a system 10 in which the present
`invention isillustratively 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
`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
`page or a website) is referred to herein as a mobile channel.
`A mobile channel
`is a self describing web site that
`containsall the information necessary for efficient download
`8
`
`8
`
`
`
`US 6,311,058 B1
`
`3
`of web content to mobile device 18. Three components are
`provided in a preferable mobile channel. The components
`include a channeldefinition format (CDF)file, a set of script
`files to render the channel, and a set of data files to be
`rendered. The CDFfiles 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 CDFis 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 morescript files and
`include data whichis 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-
`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.
`Once the data has been split appropriately such that
`it
`conforms to the transport constraints, the data is then con-
`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
`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
`14, the web content can be transmitted directly from web
`content provider 12 through a direct dial-up modem con-
`nection to mobile device 18.
`
`Desktop computer 16 will also be described in greater
`detail later in the specification. Briefly, however, desktop
`computer 16 is preferably provided with a standard web
`browser, such as Internet Explorer 4.0 commercially avail-
`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
`the user with certain channel content which can be browsed
`
`off-line or on-line. Desktop computer 16 is preferably pro-
`vided with a loadable transport (in accordance with one
`aspect of the present invention) that accessesthe script files
`and acts on the corresponding data file (in accordance with
`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 CDFfiles either for further trans-
`mission to mobile device 18 or simply for rendering the data.
`The script, data and CDF files can be transmitted either
`together or independently of one another. Since scripting
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`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
`datafiles.
`
`Desktop computer 16 also preferably includes synchro-
`nization component 26. Briefly, synchronization component
`26 is configured to interact with a similar synchronization
`component28 on mobile device 18 such thatfiles which are
`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
`embodiment, can be synchronized with either desktop com-
`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
`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
`desktop computer 16 so that both instances of the same
`object contain up-to-date data. This is referred to as syn-
`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.
`
`Byseparating 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
`individualfile is typically much smaller than the scriptfiles,
`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-
`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-
`nications protocol. Other communication mechanisms are
`also contemplated by the present invention, such as infra-red
`CR) communication or other suitable communication
`mechanisms.
`
`9
`
`9
`
`
`
`US 6,311,058 B1
`
`5
`FIG. 2 is a more detailed block diagram of mobile device
`18. Mobile device 18 preferably includes microprocessor 30,
`memory 32,
`input/output (I/O) components 34, desktop
`communication interface 36 wireless receiver 37 and
`antenna 39. In a preferred embodiment, these components of
`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-
`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
`a disc drive.
`
`Memory32 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
`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
`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.
`1/O components 34,
`in one preferred embodiment, are
`providedto facilitate input and output operations from a user
`of mobile device 18. I/O components 34 are described in
`greater detail with respect to FIGS. 3 and 4.
`Desktop communication interface 36 is optionally pro-
`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.
`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-
`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.
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`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
`numberof user input keys or buttons (suchas 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-
`tacting display 45. In addition, the mobile device 18 also
`shownin FIG. 4 also preferably includes a power button 49
`which can be used to turn on andoff the general power to the
`mobile device 18.
`
`It should also be noted that, in the embodimentillustrated
`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 whichare 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-
`nition module in the mobile device 18 recognizes the
`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-
`gram modules include routine programs, objects,
`components, data structures, etc.
`that perform particular
`tasks or implementparticular abstract data types. Moreover,
`those skilled in the art will appreciate that desktop computer
`16 may be implemented with other computer system
`configurations,
`including multiprocessor systems,
`microprocessor-based or programmable consumer
`electronics, network PCs, minicomputers, mainframe
`computers,and the like. The invention mayalso 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-
`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-
`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-
`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
`10
`
`10
`
`
`
`US 6,311,058 B1
`
`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-
`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 orother
`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.
`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
`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
`disks (DVDs), Bernoulli cartridges, random access memo-
`ries (RAMs), read only memory (ROM),and the like, may
`also be used in the exemplary operating environment.
`Anumberof program modules may be stored on the hard
`disk, magnetic disk 59, optical disk 61, ROM 54 or RAM 55,
`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
`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 connectedto the
`processing unit 48 through a serial port interface 76 that is
`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 monitor 77 or other type
`of display device is also connected to the system bus 52 via
`an interface, such as a video adapter 78. In addition to the
`monitor 77, desktop computers may typically include other
`peripheral output devices such as speaker 75 andprinters.
`The desktop computer 16 may operate in a networked
`environment using logic connections to one or more remote
`computers (other than mobile device 18), such as a remote
`computer 79. The remote computer 79 may be another
`personal computer, a server, a router, a network PC, a peer
`device or other network node, and typically includes many
`or all of the elements described above relative to desktop
`computer 16, although only a memory storage device 80 has
`been illustrated in FIG 4. The logic connections depicted in
`FIG. 4 include a local area network (LAN) 81 and a wide
`area network (WAN) 82. Such networking environments are
`commonplacein offices, enterprise-wide computer network
`intranets and the Internet.
`
`When used in a LAN networking environment, the desk-
`top computer 16 is connected to the local area network 81
`through a network interface or adapter 83. When used in a
`WAN networking environment,
`the desktop computer 16
`typically includes a modem 84 or other meansfor establish-
`ing communications over the wide area network 82, such as
`the Internet. The modem 84, which may be internal or
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`8
`external, is connected to the system bus 52 viathe 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
`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-
`dows brand operating system sold by Microsoft
`Corporation, such as Windows 95 or WindowsNT, operat-
`ing systems, other derivative versions of Windows brand
`operating systems, or another suitable operating system.
`Other suitable operating systems include systems suchas the
`Macintosh OSsold from Apple Corporation, and the OS/2
`Presentation Manager sold by International Business
`Machines (IBM) of Armonk, N.Y. Application programsare
`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,
`CDROMdrive 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 PIMsin the
`memory for execution by processor 48. Interprocessor and
`intercomponent calls are facilitated using the component
`object model (COM)as is commonin programs written for
`Microsoft Windowsbrand operating systems. Briefly, when
`using COM,a software component such as a DLL has a
`numberof 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 whichoptionally
`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-
`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.
`
`ARCHITECTURE BLOCK DIAGRAM
`
`FIG. 6 is a block diagram illustrating the functional
`architecture of mobile device 18. FIG. 6 showssimilar items
`to those previously shownin the specification. Similar items
`are similarly numbered. FIG. 6 illustrates that mobile device
`18 receives web content information either via synchroni-
`zation component 26, wireless receiver (radio receiver and
`driver) 22 or modem 24. In any of those cases, the CDFfiles
`as well as the script templates and data files, indicated by
`blocks 202 and 204 are eventually provided to cache
`memory 206. Where the web content information is received
`through synchronization component 26, the script templates
`and data files may are not be encrypted or encoded or
`otherwise formatted in the same fashion as they are for
`transmission over a wireless or