|
Description  |
|
|
BACKGROUND OF THE INVENTION
The present invention relates to personal mobile computing devices commonly known as mobile devices. More particularly, the present invention relates to a system and method for offline viewing of content from a wide area network, such as content
from the Internet, with the 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 HandHeld PC (or H/PC) having software provided by Microsoft Corporation of Redmond, Washington.
Generally, the mobile device includes a processor, random 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.
Commonly, 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 runs 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 pager information including news, weather; sports, traffic and local event information.
In addition to the above-mentioned uses of the mobile device, there is also a desire to use the mobile device for "offline" browsing of Internet content. U.S. patent application Ser. No. 09/107,666 filed Jun. 30, 1998, entitled "SYSTEM FOR
DELIVERING DATA CONTENT OVER A LOW BIT RATE TRANSMISSION CHANNEL" and U.S. patent application Ser. No. 09/107,941. filed Jun. 30, 1998, entitled "CHANNEL DEFINITION ARCHITECTURE EXTENSION" describe a system and method wherein Web or Internet content
is rendered on a mobile device using a channel definition format, (CDF) file, a set of script files and a set of data files. Briefly, navigation of the content on the mobile device is performed using the CDF file, which includes references to the script
files and the data files. When a particular page of content is to be displayed, a script file is accessed and is used to operate upon the data file in order to render the desired information. This architecture allows wireless updates of data files,
because, typically, only the data files will change with time. However, if desired, the CDF file and the script files can also be updated wirelessly. Likewise, each of these files can be updated through synchronization of the mobile device with the
desktop computer.
Although the above-described system allows wireless updates for Internet content, the content provider must adapt to this architecture and make available to the mobile device user separate script files and data files. In many cases, this
requires the content provider to maintain two different types of Internet sites, one for browsers that expect to receive HTML (hypertext markup language) pages for rendering information, and a second site using the above-described architecture.
Another technique for "offline" browsing with a desktop computer involves traversing or "crawling" through a particular Internet site and storing the information locally. If the information is stored as pages, simple transfer of this information
to the mobile device would not be efficient since the mobile device typically has limited memory resources and the information may contain portions that cannot be used or are unsuitable for the mobile device. Thus, memory may be wasted in storing
irrelevant information.
There is an ongoing need to provide efficient offline browsing of content, particularly, when performed on a mobile device. The downloading of information for offline browsing should allow access to existing Internet sites without requiring the
content provider to maintain separate Internet sites.
SUMMARY OF THE INVENTION
A method and system for transferring offline browsing content information of a wide area network from a host computer to a mobile device includes connecting the mobile device to the host computer and obtaining characteristic information of the
mobile device pertaining to at least one of hardware and software capabilities of the mobile device. The content information is transferred from the host computer to the mobile device as a function of the characteristic information.
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 embodiment of a mobile device shown in FIG. 1.
FIG. 3 is a simplified pictorial illustration of one embodiment 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 a method for downloading content from a content provider.
FIGS. 7A, 7B and 7C are a flow diagram illustrating detailed aspects of the method of FIG. 6.
FIG. 8 is a block diagram of a filtering module.
FIG. 9 is a simplified block diagram illustrating another embodiment of a mobile device in a system in accordance with the present invention.
FIG. 10 is a simplified block diagram illustrating a mobile device directly connectable to a content source provider.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
FIG. 1 illustrates a system 10 in which the present invention is illustratively implemented. System 10 includes content provider 12, host computer 16 (for example, a desktop computer) 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 that is connected to and transmitted through a wide area network, herein, Internet
14. Typically, the content is provided in .standard formats, such as HTML, JPEG, GIF or WAV data files. Content provider 12 organizes the data files of content as a "Web site" as is commonly known in the art. A user can access content of content
provider 12 using a browser operated on the desktop computer 16. A suitable browser includes Internet Explorer 4.0 by the Microsoft Corporation of Redmond, Wash. The browser receives the content which can include text graphics, audio or video as is
known in the art. The content provider 12 provides content in the form of "pages" that are typically viewable on a monitor of the desktop computer 16. The pages can be stored in memory devices of the content provider 12 in a static hierarchical
structure, or any or all of the pages can be dynamically created and transferred to the desktop computer 16 upon request by the user. Dynamic creation of pages allows easy updating of information stored at content provider 12 since static pages do not
have to be rewritten. Some Web sites of content providers 12 include a channel definition format (CDF) file that, when downloaded to a user, provides a local index or hierarchical structure of the content available from content provider 12. The Channel
Definition Format is an application of the Extensible Markup Language (XML) The Channel Definition Format is an open specification that permits a content provider to offer frequently updated collections of information, or channels, from any server for
delivery to compatible receiver programs (browsers) on desktop computer or other information appliances.
Although the Channel Definition Format is used by some content providers, many content providers do not organize content in this manner. One aspect of the present invention, as will be described below, includes generating a CDF file based on the
content of the content provider 12 and using this information to download content to the mobile device 18 for offline browsing.
Referring to FIG. 1, a content downloading module located on the desktop computer 16 accesses the content provider 12 and obtains pages of content information that, in turn, is stored in cache 22. In a preferred embodiment, the user can specify
preferences or download options for the content download process. For instance, images and sound clips found during the download process can or cannot be made available for offline browsing. In addition, the amount of data (bytes) downloaded or the
levels of the Web site that should be downloaded can be limited.
Downloading module 20 stores the CDF file, if available, or alternatively generates a CDF file for the site of the content provider. The CDF file is also stored in cache 22. The content and CDF file stored in cache 22 is transferred from the
desktop computer 16 to mobile device 18 through synchronization modules 24 and 26. The content and CDF file is stored locally on mobile device 18 in cache 28. A second aspect of the present invention includes a content filter module 30, located on
desktop computer 16, that operates upon the content data from cache 22, and filters or transforms the content as a function of characteristics of the type of mobile device 18. This minimizes content data stored in cache 28 where memory or storage
capabilities are typically limited. A browser module 32 is provided on mobile device 18 to access the CDF file in cache 28 to render content during offline browsing.
As described above, desktop computer 16 includes synchronization module 24. Briefly, synchronization module 24 is configured to interact with synchronization module 26 on mobile device 18 such that data 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 desktop computer 16 and mobile device 18) contain up to date information.
In order to accomplish synchronization, synchronization modules 24 and 26 run on both mobile device 18 and desktop computer 16. The synchronization components communicate with one another through well defined interfaces to manage communication
and synchronization.
FIG. 2 is a more detailed block diagram of mobile device 18. Mobile device 18 preferably includes processor 31, memory 33, input/output (I/O) components 34 and desktop communication interface 36. In a preferred embodiment, these components of
mobile device 18 are coupled for communication with one another over a suitable bus 38.
Memory 33 is preferably implemented as non-volatile electronic memory such as random access memory (RAM) with a battery back-up module (not shown) such that information stored in memory 33 is not lost when the general power to mobile device 18 is
shut down. A portion of memory 33 is preferably allocated as addressable memory for program execution, while another portion of memory 33 is preferably used for storage, such as to simulate storage on a disc drive.
Memory 33 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 31 from memory 33.
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 application programs through a set of exposed application programming interfaces (APIs) and methods. The objects in an object store 44 are preferably maintained by application programs and operating system 40, at least partially in response
to calls to the exposed application programming interfaces and methods.
I/O components 34, in one preferred embodiment, are provided to 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 provided as any suitable communication interface, such as a serial connection, a network interface, an infrared link or a modem connection. Interface 36 is used to communicate with desktop computer 16.
Thus, interface 36 preferably includes synchronization module 26 for communicating with desktop computer 16.
FIG. 3 is a simplified pictorial illustration of one preferred embodiment of a mobile device 18 which can be used in accordance with the present invention. Mobile device 18, 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
implemented 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. 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, display 45 shown in FIGS. 3 and 4 may be defined by a matrix of only 240.times.320 coordinates, or 16.times.160 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 contacting 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 handwriting area 51. Handwriting area 51 can be used in conjunction with. stylus 46 such that the user can write messages which are stored in
memory 33 for later use by the mobile device 18. In one illustrative embodiment, the handwritten messages are simply stored in handwritten form and can be recalled by the user and displayed on the display screen 45 such that the user can review the
handwritten 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 recognition 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 desktop computer 16 or mobile device 18. 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 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 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 computing environment, program modules may be located in both local and remote memory storage devices.
With reference to FIG. 5, an exemplary system for implementing desktop computer 16 includes a general purpose computing device in the form of a conventional personal computer, 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 processing 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 variety of bus architectures. The system memory 50 includes read only memory (ROM) 54 and random access memory (RAM) 55. A basic input/output system (BIOS) 56, containing 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. The drives and the associated computer-readable media provide nonvolatile 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 memories (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, removable magnetic disk 59, removable optical disk 61, ROM 54 or RAM 55, including an operating system 65, one or more application programs 66 (e.g. downloading module 20), other program
modules 67 (which may include synchronization module 24), 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. Other input devices (not shown) may
include a microphone, 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 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 and printers.
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 commonplace in offices, enterprise-wide computer network intranets and the Internet.
When used in a LAN networking environment, the desktop 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 include sa modem
84 or other means for establishing communications over the wide area network 82, such as the Internet. The modem 84, which may be internal or 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 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 no-volatile memory 54 and executes on the processor 48. One suitable operating system is a "WINDOWS" brand operating system sold by Microsoft Corporation, such as "WINDOWS
95" or "WINDOWS NT", operating 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, CDROM disk 61, downloaded from a network via network adapter 83, or loaded using another suitable mechanism.
FIG. 6 illustrates a method 100 for obtaining and downloading content from the content provider 12 through the desktop computer 16 and to mobile device 18. Each of the steps illustrated in FIG. 6 and in the flow diagram of FIG. 7 are implemented
using the downloading module 20, synchronizing modules 24 and 26 and filter module 30, described above. At step 102, a user desiring to download content to mobile device 18 for offline browsing preferably provides downloading user preferences that are
used to access the desired content from content provider 12 and to limit the amount of content that is transferred to desktop computer 16, which is subsequently transferred to mobile device 18. The user preferences include the URL or similar address
pointer used to access content provider 12 and specify content contained therein. The user preferences also act as a filter to limit the amount of content that is downloaded from content provider 12. Limitations can be expressed using a number of
different parameters. For instance, the user can impose a limit as to the total quantity of content that is to be downloaded from content provider 12. Generally, the quantity is expressed in bytes; however, other units representing a quantity of
digital data can also be used. If desired, the user can also limit how many levels of content organized in a hierarchical manner will be downloaded from content provider 12. Typically, hierarchical content stored at content provider 12 is accessed
through "links", which allow the user to navigate up, down or directly to other portions of the hierarchical structure. In addition, content provider 12 may include links to "external" sites of content, which may be under the control of content provider
12 or be accessed through Internet 14 at other remote content providers. In one embodiment, the user preferences indicate whether or not to access and download content from the external sites.
In a further embodiment, the user preferences can include user selections regarding the type of information that will be downloaded from content provider 12. For instance, content at content provider 12 can include text data, image or graphical
data and/or sound or audio data. It may be desirable for the user to limit which types of data that are downloaded to desktop computer 16 and subsequently transferred to mobile device 18 because of memory availability in cache 28 and/or the existence or
non-existence of other hardware on mobile device 18 such as whether or not sound support exists. By indicating the types of data to be downloaded at step 102, the user can avoid unnecessary transfer of data to mobile device 18, and minimize the time
necessary to complete downloading of content to desktop computer 16. From step 102, program flow continues to step 104 whereat downloading module 20 accesses content provider 12 and downloads content therefrom in accordance with the user preferences as
well as creates a CDF file. The content and CDF file are stored in cache 22.
FIGS. 7A, 7B and 7C together illustrate an exemplary method 110 for downloading content from content provider 12 based on user preferences. At step 112, downloading module 20 accesses content at content provider 12 in accordance with the first
or topmost specified URL or other address pointer and downloads the first page of content. If the HTML content does not exceed the user specified download limit at step 113, operational flow continues to step 114 whereat the HTML content is placed in
cache 22 and CDF format topmost channel tags are placed in the CDF file. Referring to Table 1 below the topmost tags are indicated at "A".
TABLE 1 <?XML version="1.0"?> A <CHANNEL HREF="http://home.microsoft.com/" ID="GM434790" BASE="http://home.microsoft.com/"> <SELF HREF="http://home.microsoft.com/GM434790.cdf"/> <USAGE VALUE="MobileChannel"/>
<ABSTRACT>This Mobile Channel was created for offline use!</ABSTRACT> <CHANSCPIPT VALUE="P434790"/> <ITEM HREF="http://home.microsoft.com/" ID="P434790."><USAGE VALUE="None"/></ITEM> <TITLE>Microsoft
Internet Start</TITLE> <ITEM HREF="http://homeadvisor.msn.com/ie/financing/highlights.asp" ID="P806324"> <TITLE>Financing Highlights - Microsoft HomeAdvisor</TITLE> </ITEM> D <CHANNEL
HREF="personalizing/personalizing.asp" ID="C388888"> <CHANSCRIPT VALUE="P388888"/> <ITEM HREF="personalizing/personalizing.asp" ID="P388888"><USAGE VALUE="None"/></ITEM> <TITLE>Personalize your Start
page</TITLE> <ITEM HREF="personalizing/Header.asp" ID="P408086"> <TITLE>Personalize Your Start page - Header</TITLE> </ITEM> <ITEM HREF="personalizing/Categories.asp#" ID="P470294"><USAGE
VALUE="None"/></ITEM> D </CHANNEL> <ITEM HREF="exploring/exploring.asp" ID="P291536"><USAGE B VALUE="None"/></ITEM> B <ITEM HREF="hmchelp/help.asp" ID="P500560"><USAGE VALUE="None"/></ITEM>
<ITEM HREF="isapi/bin/redir.dll?target=http://business.msn.com&Cbiz&" ID="P871609"><USAGE VALUE="None"/></ITEM> . . . <ITEM HREF="isapi/bin/redir.dll?target=http://www.ca.msn.com&INTLCA&" C ID="P83646"><USAGE
VALUE="None"/></ITEM> <ITEM HREF="isapi/bin/redir.dll?target=http://start.fr.msn.com&INTLFR&" C ID="P339813 "><USAGE VALUE="None"/></ITEM> </CHANNEL> A
Operational flow then continues to step 130 in FIG. 7B to determine if image content is to be downloaded. At step 130, the user preferences are examined, and if images are to be downloaded, a list of image content URLs in the current HTML
content is obtained at step 132. In steps 134, 136 and 138, the images from the list of image content URLs are sequentially downloaded wherein the individual size of the image and/or the total amount of image content so far stored is compared with the
user preferences, and if not exceeded, is stored in cache 22. For each image, a CDF format URL entry is provided in the CDF file. In Table 1, images are indicated at "B" for the topmost channel.
Operational flow then continues to step 140 in FIG. 7C to determine if sound or audio content (for exampl | | |