Abstract:
A client device, or information appliance such as a personal digital assistant, is capable of receiving multimedia data streams from a server. However, due to processing and display capabilities, the client device may not be able to present the complete data stream, or a user may elect to configure the client device not to process data that will unduly reduce the client device&#39;s performance. Accordingly, the present invention provides a method and apparatus for allowing a server to determine the native, or user selected, capabilities of a client device, such that the server can filter and parse the data into meaningfully presentable data and non-meaningfully presentable data, and then transmit only the meaningfully presentable data to the client device for processing and display. In an alternative embodiment, the server sends the complete data stream to the client device, and the client device filters and parses the data, and then processes only the meaningfully presentable data for display on the client device.

Description:
FIELD OF THE INVENTION 
     The present invention relates generally to handling data streams in networked systems, and more specifically to parsing out those parts of a data stream usable by a client device for processing by the client device. 
     BACKGROUND 
     A broad range of electronic devices have been developed, and continue to be developed, that provide a broad range of communication capabilities. Mobile phone designs provide Internet access functions, personal digital assistant (PDA) devices have radio connectivity to the Internet and are able to access e-mail and Internet web pages, and television set-top boxes similarly provide Internet access. This broad range of devices is comprised of devices of varying processing power and user interface capabilities, from a fully-equipped multimedia Personal Computer (PC) to a mobile phone or PDA that provides only a single-color, low-resolution display with no sound capability. Because all these devices are currently being employed to access Internet data, it is desirable to ensure that data provided on the Internet may be delivered in a manner appropriate to the broad range of client devices. 
     For example, mobile phone and PDA access is, in some current products, limited to only accessing either the text portion of a web page, or specially-designed web pages that are specifically tailored to be displayed on the intended client device. Such a method is practical for the client, but it is inefficient and often impractical to create alternate web sites for each of a large variety of client types that may be employed to access the web content. 
     Also, the use of text-only display of sites that are typically provided as graphic-intensive web pages often hinders navigation of the web site, which relies upon a user being able to view and click on a large, complex graphic to select web pages or other content for viewing. Although most Internet clients are capable of searching for and downloading any type of content, many clients are unable to display many types of content in a meaningful way. 
     What is desired is a method and apparatus that enables clients that are unable to download and process various types of content to download and process only those portions of the content that the client is capable of presenting in a meaningful way, and to store or retrieve content the client cannot display for viewing on another client with the capability to view the stored data. 
     SUMMARY OF THE INVENTION 
     The present invention provides, in various embodiments, a method and apparatus that enables clients to receive and process a filtered or parsed portion of provided content upon determination that such content is displayable on the client device through the use of a client configuration. The clients that are unable to process and present various types of content, or that are configured by a user preference not to present various types of content, will only display those filtered or parsed portions of the content that the client is capable of presenting in a meaningful way. Content that the client cannot, or preferably will not, display can be stored for later retrieval, discarded, or ignored. The various embodiments of the present invention therefore provide enhanced capability for a client to receive at least a portion of a collection of data it cannot, in its entirety, present in a meaningful way, and to store that portion of the content for later use. 
     For example, a client device may be capable of displaying graphics, but because displaying such graphics would slow down the processing and presentation of the content to an unacceptable rate, a user may select a configuration that classifies graphical content as data that cannot be meaningfully presented by the client device, and thus, even though the capability exists, the device will parse out the graphical content during reception of the content. However, since this data is being stored, if the user later decides to view such accompanying graphics, the content can be retrieved by the user. 
    
    
     BRIEF DESCRIPTION OF THE FIGURES 
     FIG. 1 shows a general-purpose information handling system forming a portion of the network system of the present invention. 
     FIG. 2 shows a diagram of a network with various clients connected thereto, consistent with a preferred embodiment of the present invention. 
     FIG. 3 is a flowchart of a method of practicing preferred embodiments of the present invention. 
    
    
     DETAILED DESCRIPTION 
     In the following detailed description of preferred embodiments of the invention, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration, specific sample embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that logical, mechanical, electrical, and/or other changes may be made without departing from the spirit or scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the invention is defined only by the appended claims. 
     The present invention provides in various preferred embodiments a method and apparatus that enables clients that are unable to download and present various types of content, or that are configured not to download or present various types of content, to download, process and display only those portions of the content that the client is capable of presenting in a meaningful way, and in further embodiments, to store or retrieve content the client cannot meaningfully display for viewing on another networked computerized system having the capability to view the stored data. 
     FIG. 1 illustrates a general-purpose information handling system, or personal computer system,  100 , on which various embodiments of the invention may be practiced. In this embodiment, processor  102 , system controller  112 , cache  114 , and data-path chip  118  are each coupled to host bus  110 . Processor  102  is a microprocessor such as a 486-type chip, a Pentium®, Pentium II® or other suitable microprocessor. Cache  114  provides high-speed local-memory data (in one embodiment, for example, 512 KB of cache memory) for processor  102 , and is controlled by system controller  112 , which loads cache  114  with data that is expected to be used soon after the data is placed in cache  114  (i.e., in the near future). Main memory  116  is coupled between system controller  114  and data-path chip  118 , and in one embodiment, provides random-access memory of between 16 MB and 128 MB of data. In one embodiment, main memory  116  is provided on SIMMs (Single In-line Memory Modules), while in another embodiment, main memory  116  is provided on DIMMs (Dual In-line Memory Modules), each of which plugs into suitable sockets provided on a motherboard holding many of the other components shown in FIG.  1 . Main memory  116  includes standard DRAM (Dynamic Random-Access Memory), EDO (Extended Data Out) DRAM, SDRAM (Synchronous DRAM), RDRAM (Rambus DRAM), or other suitable memory technology. System controller  112  controls PCI (Peripheral Component Interconnect) bus  120 , a local bus for system  100  that provides a high-speed data path between processor  102  and various peripheral devices, such as graphics devices, storage drives, network cabling, etc. Data-path chip  118  is also controlled by system controller  112  to assist in routing data between main memory  116 , host bus  110 , and PCI,bus  120 . 
     In one embodiment, PCI bus  120  provides a 32-bit-wide data path that runs at 33 MHz. In another embodiment, PCI bus  120  provides a 64-bit-wide data path that runs at 33 MHz. In yet other embodiments, PCI bus  120  provides 32-bit-wide or 64-bit-wide data paths that runs at higher speeds. In one embodiment, PCI bus  120  provides connectivity to I/O bridge  122 , graphics controller  127 , and one or more PCI connectors  121  (i.e., sockets into which a card edge may be inserted), each of which accepts a standard PCI card. In one embodiment, I/O bridge  122  and graphics controller  127  are each integrated on the motherboard along with system controller  112 , in order to avoid a board-connector-board signal-crossing interface and thus provide better speed and reliability. In the embodiment shown, graphics controller  127  is coupled to a video memory  128  (that includes memory such as DRAM, EDO DRAM, SDRAM, or VRAM (Video Random-Access Memory)), and drives VGA (Video Graphics Adaptor) port  129 . VGA port  129  can connect to industry-standard monitors such as VGA-type, SVGA (Super VGA)-type, XGA-type (extended Graphics Adaptor) or SXGA-type (Super XGA) display devices. Other input/output (I/O) cards having a PCI interface can be plugged into PCI connectors  121 . 
     In one embodiment, I/O bridge  122  is a chip that provides connection and control to one or more independent IDE or SCSI connectors,  124  and  125  respectively, to a USB (Universal Serial Bus) port  126 , and to ISA (industry Standard Architecture) bus  130 . In this embodiment, IDE connector  124  provides connectivity for up to two standard IDE-type devices such as hard disk drives, CDROM (Compact Disk-Read-Only Memory) drives, DVD (Digital Video Disk) drives, or TBU (Tape-Backup Unit) devices. In one similar embodiment, two IDE connectors  124  (second connector not shown) are provided, and each provide the EIDE (Enhanced IDE) architecture. In the embodiment shown, SCSI (Small Computer System Interface) connector  125  provides connectivity for up to seven or fifteen SCSI-type devices (depending on the version of SCSI supported by the embodiment). In one embodiment, I/O bridge  122  provides ISA bus  130  having one or more ISA connectors  131  (in one embodiment, three connectors are provided). In one embodiment, ISA bus  130  is coupled to I/O controller  152 , which in turn provides connections to two serial ports  154  and  155 , parallel port  156 , and FDD (Floppy-Disk Drive) connector  157 . In one embodiment, ISA bus  130  is connected to buffer  132 , which is connected to X bus  140 , which provides connections to real-time clock  142 , keyboard/mouse controller  144  and keyboard BIOS ROM (Basic Input/Output System Read-Only Memory)  145 , and to system BIOS ROM  146 . 
     FIG. 1 shows one exemplary embodiment of a computer system that may be used with the present invention. However, other configurations, such as varying bus structures and memory arrangements are specifically contemplated and are within the scope of the invention. 
     FIG. 2 illustrates a networked computerized system  201  and a computerized client system  202 . The client system  202  is linked to the networked computerized system  201  by a network connection  203 , which in various embodiments is a fiber optic connection, an electrical connection, a wireless connection, or any other type of network data connection. The network connection serves to provide a link over which data can be exchanged between the networked system  201  and the client system  202 . The networked computer system  201  is in some embodiments further connected to a network such as to the Internet via a network connection  204 . In an alternative embodiment, the client device  202  may be configured to connect directly to the internet, in which case the networked computer system  201  is representative of the internet, rather being connected to the internet. 
     The client device of various embodiments has varying features, in some embodiments including but not limited to a display  205 , a speaker  206 , and a keypad or input  207 . The display  205  in some embodiments is a touch screen-type display, as is used in many personal digital assistants such as the PalmPilot series of PDA devices produced by 3Com Corporation. The display of various embodiments may be monochrome or color, backlit or active matrix display, or any other type of display. The keypad  207  also varies in different embodiments of the invention, including an alphanumeric keypad, a numeric keypad as is commonly found on mobile telephones, special purpose keys as are commonly found on PDA devices such as the PalmPilot PDA, and any other type of keypad entry device. 
     In operation, data provided to the client device  202  is parsed to identify content that is not meaningfully presentable on the client device, and content that can be presented on the device  202 . The data that can be presented is then processed for display by the device  202 . In various embodiments, the client device  202  parses the incoming data into meaningful and non-meaningful data, or the networked computerized system  201  functions as a server to the client device  202  by pre-filtering and parsing the data being sent to the device  202  so as to reduce the processing load on the client device  202 . The flowchart of FIG. 3 shows a method of practicing various preferred embodiments of the invention described herein, incorporating the elements of FIG.  2 . 
     In one embodiment, a networked computerized data server  201  filters data before providing the data to the client device  202 . The data in various embodiments is received at the server, step  301 , either originating at the server, or being retrieved via network connection  204  from other data sources, or being provided to the networked server  201  through any other suitable method. If the data is to be parsed and filtered in the server rather than the client, as determined at  302 , the data is filtered at  303 . The meaningful filtered data, having been parsed into meaningful and non-meaningful data, is then provided to the client device  202  at step  304 . The client device  202  receives the data at  305 , and then processes and displays the filtered parsed data at  306 . In an alternative approach, the networked server  201  may store the filtered non-meaningful data for future processing and display, either by the networked server  201 , or by the device  202 . 
     In further alternative approaches, the data is filtered and parsed by the client device  202 , after receipt of the complete data stream from a networked server  201 . In such embodiments, the client  202  is capable of receiving a variety of data types, and filtering or parsing out those types of data it is capable of meaningfully displaying. The data again originates at the server  201  as shown at step  301  of FIG.  3 . It is understood that, in an alternative embodiment, the client device  202  could receive a data stream directly from the Internet, wherein the Internet would be the networked system  201 , and wherein connection  203  would be connection  204 . After determining that the data is going to be filtered and parsed in the client rather than the server, step  302 , the server provides the complete data stream to the client at  307 . The client receives the data at  308 , and filters the data at  309 . The data is parsed into meaningful and non-meaningful data. The client processes and displays the meaningful data at step  306 , and can either discard, ignore or save the filtered non-meaningful data. The saved data may then be transferred back to other devices for processing and display. 
     The data displayed on the client  202  may comprise any type of data currently existing, or to be developed, as can be displayed or presented on a computerized communication device. Examples of data within the scope of the invention include streaming audiovisual data, text data, streaming video data, streaming audio data, still image data, and other similar types of data. Not all types of data within the scope of the invention are likely to be meaningfully presentable on any single embodiment of a client device, establishing a need for the present invention. The present invention functions in various embodiments to filter and parse data, such that a presentable representation or portion of the data may be displayed on the client device without loading the device with data that the device is incapable of processing. 
     Filtering the data, which in various embodiments is implemented in the networked system  201  or the client device  202 , therefore functions to represent the data in a manner that can be displayed on the client device. This is accomplished in selected embodiments of the invention by separating that part of the data that is displayable on the client device from that portion that is not so displayable. The portion of the data that is displayable is then displayed on the client device, while the portion that is not displayable is in various embodiments discarded, ignored, or stored for later retrieval by a device capable of, or configured for, displaying that part of the data. 
     The capabilities of the client to receive and present selected types of data is determined in selected embodiments of the invention by configuration of the client  202  or the networked server  201 . The configuration information may be manually provided by a user, may be set by the client  202 , or may be determined in any other manner. For example, the client  202  of one embodiment determines a configuration that reflects varying capabilities dependent on the available resources and other tasks executing on the client device. In this manner, the client device or its user can change the configuration properties of the client device to reflect a reduced ability to present selected types of data to conserve computing resources or power. 
     Once the configuration is established, it is used in filtering the data to determine what data is to be considered presentable and what data is not to be considered presentable (i.e., meaningful or non-meaningful) by the client. The clients that are unable to present various types of content or that are configured not to present various types of content can then display those filtered portions of the content that the client is capable of presenting in a meaningful way, and content the client cannot display can be stored for later retrieval, ignored, or discarded. The present invention therefore provides enhanced capability for a client to present at least a portion of a multimedia data stream which the device could not otherwise display in its entirety, and in further embodiments, to store at least that portion of the content that it cannot display. 
     Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement which is calculated to achieve the same purpose may be substituted for the specific embodiments shown. This application is intended to cover any adaptations or variations of the invention. It is intended that this invention be limited only by the claims, and the full scope of equivalents thereof.