WO2000051394A1 - Network browser method and system for controlling browser operation - Google Patents

Network browser method and system for controlling browser operation Download PDF

Info

Publication number
WO2000051394A1
WO2000051394A1 PCT/US2000/004546 US0004546W WO0051394A1 WO 2000051394 A1 WO2000051394 A1 WO 2000051394A1 US 0004546 W US0004546 W US 0004546W WO 0051394 A1 WO0051394 A1 WO 0051394A1
Authority
WO
WIPO (PCT)
Prior art keywords
channel
user
browser
file
files
Prior art date
Application number
PCT/US2000/004546
Other languages
French (fr)
Inventor
James Friskel
Michael Noe
Original Assignee
Neoplanet, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Neoplanet, Inc. filed Critical Neoplanet, Inc.
Priority to AU33732/00A priority Critical patent/AU3373200A/en
Publication of WO2000051394A1 publication Critical patent/WO2000051394A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/954Navigation, e.g. using categorised browsing

Definitions

  • the present invention relates to network browsers and, more particularly, to a system and method for controlling browser operation, customizing the browser user interface, and updating and customizing browser channels in a browser program
  • Browser programs allow a user to selectively access and download data from networks, such as the Internet and the World Wide Web as well as intranets and extranets
  • Some browsers provide channels to users prior to and during the user's accessing the Internet or other directories These channels are generally set forth on the user's display screen as categories or topics of information that might be of interest to the user
  • a plurality of different web sites may be grouped in a common channel
  • browser systems which provide channels 10 to a browser 12 at or connected to a browser client 14 Upon initialization of the browser 12, the browser 12 automatically accesses the directory server 16 through the browser client 14 and sends a request to the directory server 16 for a directory of channels in step 18
  • the directory server 16 then provides channel data received by the browser 12 through the browser client 14 in step 20 for displaying a plurality of fixed channels offering the user with choices between specialized areas of interests such as arts, family topics, news, sports, etc
  • Such choices are typically determined and fixed by the on-line service such as AMERICA ON-LINE
  • diverse web sites as well as on-line services are categorized to facilitate navigation such as searching or browsing by a user through areas of interest
  • Such channels may access further channels or sub-channels ("sub-channels" generally refers to sub-categories organized in a hierarchy and found at those levels lower than the top level of the channels) stored on the
  • the directory server 16 responds in step 24 with data corresponding to the selected channel and having a fixed list of sub-channels, such as sub-channels directed to football, baseball, basketball, etc
  • the user of the browser 12 may further refine the sub-channel selection in step 26 to focus on a specific sport, sport-oriented matter, or sub-topic, such as basketball
  • the directory server 16 again sends data for a fixed set of sub-channel areas as a set of labels corresponding to file location indicators (e.g., URLs) for the sub-channel in step 28, which may be specific and fixed web sites such as NBA COM to access the National Basketball Association web site
  • file location indicator such as an Internet Universal Resource Locator (URL)
  • FIG 1 illustrates a known browser system having fixed channels
  • FIG 2 illustrates the present browser system with both fixed and customizable channels
  • FIG 3 illustrates a browser graphic user interface (GUI) of the present browser system
  • FIG 4 illustrates the browser GUI of FIG 3 with the available channels being displayed
  • FIG 5 illustrates the browser GUI of FIG 4 showing pull-down menus
  • FIG 6 illustrates a channel archive selection screen
  • FIG 7 illustrates another channel archive selection screen
  • FIG 8 illustrates a browser screen with selectable channels available for user customization
  • FIG 9 illustrates a browser screen showing an added channel
  • FIG 10 illustrates one embodiment of the dataflow of the present browser for updating fixed channels and for selecting customizable channels
  • FIG 11 illustrates a flowchart of the method of operation of one embodiment of the present invention
  • FIG 12 illustrates a continuation of the flowchart of FIG 11,
  • FIG. 13 illustrates a GUI interface screen with an icon for executing a browser program of the present invention
  • FIG. 14 illustrates the GUI interface screen of FIG. 13 during loading of executable code of the browser program of the present invention
  • FIG. 15 illustrates a flowchart of the method of operation of one embodiment of the present invention for presenting files during loading of executable code of the browser program
  • FIG. 16 illustrates a GUI channel hierarchy editor screen of the present invention
  • FIG. 17 illustrates an example of a channel structure file of the present invention.
  • channels generally means selected categories or topics of information chosen for the higher level grouping and organization of file location information for those web pages that a user may wish to access in the future using a browser. This hierarchy is stored locally on the client computer for speed of access by the browser software.
  • channels is specifically used herein, depending on the appropriate context, to refer to the label or icon or other visual element displayed to a user to indicate the available channel categories or to refer to the actual hypertext transfer protocol (http) or other file locations, for example, Uniform Resource Locators (URLs), organized according to these categories.
  • http hypertext transfer protocol
  • URLs Uniform Resource Locators
  • the present invention provides a system and method for navigation of a hierarchy of categories organized by channels on a highest level and folders and web pages organized on lower levels of this hierarchy as lists corresponding to the channels (these lower levels are also sometimes referred to herein as sub-channels), as described further below.
  • the term "sub-channels" generally means selected categories of information for the hierarchical levels beneath the top level for a corresponding channel.
  • the present invention also generally provides a system and method for dynamically controlling browser operations and for customization of the appearance and look and feel of the browser user interface.
  • a system and method is used in a network having a plurality of network files, in which categorized network file location indicators are presented by a browser program on a client for selecting files accessible on the network.
  • a server stores the plurality of categorized file location indicators identifying file locations of the files accessible on the network.
  • a subset of the plurality of categorized file location indicators are selectable by a user.
  • the server stores the subset of the plurality of categorized file location indicators in a channel file used for determining file location indicators corresponding to the subset to be presented by the browser program for the selection of network files.
  • the system and method determines the corresponding file location indicators for presentation by the browser program for selection by transmitting to the client and storing on the client the channel file accessed by the browser program.
  • At least a first subset and a second subset of the plurality of categorized file indicators may be selected, in which corresponding first and second subsets are stored in a first channel file and a second channel file, respectively, on the server. Access to the network by an identifiable user of the client is detected, and the user is identified. A channel file is then selected from the first and second channel files depending on the identity of the user, with the selected channel file being transmitted to the client. The identity of the user corresponds to membership of the user in one of a plurality of services.
  • the system and method may select a subset of categories of file location indicators not customizable by a user, with the subset being stored in a non-customizable or fixed channel file.
  • the non-customizable channel file is transmitted to the client for access by the browser program.
  • the non- customizable channel file may be stored on the client for concurrent storage with a user- customizable channel file for allowing the user to select file location indicators from both the non-customizable and customizable channel files.
  • the browser program takes on different characteristics including a variable look and feel.
  • one such variable characteristic includes a variable logo which appears during start up of the browser program itself.
  • the browser program is executed either by selection of a screen icon or a menu icon.
  • a logo appears onscreen for identifying trademark and manufacturing information for the browser program.
  • Sound files may also be presented during the loading period.
  • One of the customizable features of the browser of the present invention is that a different logo or sound file may dynamically be set to be presented according to the user's identity and service membership.
  • the method for logo selection comprises detecting the browser program user's identity, determining if the user is a member of one of a plurality of services, selecting a logo to present during browser executable code loading based on the user's service membership, or lack of service membership, and presenting the logo while loading the code for execution of the browser.
  • the same method can be employed for selection of various sound files to present during browser start-up.
  • FIG. 2 an illustrative architecture of the disclosed browser system is depicted which provides both customizable and non- customizable (or fixed) channels to a user.
  • the browser system is generally described with reference to Internet-based systems, but it is understood that the disclosed browser system may be employed in other on-line and remote computer systems, such as on-line services using proprietary GUIs as well as intranets and extranets.
  • a channel server 100 includes or is connected to a channel server storage device 102, which may be magnetic, optical or other storage media.
  • the channel server 100 is electronically and/or operatively connected to a network 104 which includes, for example, a public network, such as the Internet, and/or a private network, such as an intranet of a company or subscriber on-line services such as AMERICA ON-LINE.
  • a plurality of servers 106-114 are also connected to the network 104 and include file storage media 116-118 for storing network files such as hypertext markup language (HTML) files 120-122 which can be referenced using standard network protocols such as the Transmission Control Protocol/Internet Protocol (TCP/IP).
  • HTTP hypertext markup language
  • a browser client 124 having a network compatible interface, such as a personal computer (PC) or a UNIX-based system.
  • the browser client 124 may either be directly connected to network 104, for example, through an available Internet service provider (ISP), or, alternatively, may be directly connected to channel server 100.
  • ISP Internet service provider
  • channel server 100 may be part of an ISP service using at least one server to offer ISP services to users.
  • the browser client 124 may have its own client storage device 126 for storing files downloaded from the network 104.
  • the channel server 100 is the ISP for the browser client 124, files can be downloaded directly from the channel server 100 which also serves as a connection to the network 104.
  • the channel server storage device 102 stores a plurality of fixed channel files 128-130, in which each fixed channel file includes a listing of network file location indicators (e.g. URLs) identifying files 120-122 (e.g. HTML web pages) stored on the network servers 106-114, respectively.
  • each fixed channel file includes a listing of network file location indicators (e.g. URLs) identifying files 120-122 (e.g. HTML web pages) stored on the network servers 106-114, respectively.
  • an exemplary file structure has a plurality of file indicators separated into a plurality of channels (e.g. "Home" and "News") which represent categories of information of potential interest to the user.
  • the file indicators correspond to and point to certain of the network files 120-122 that the user may desire to load.
  • the network files indicated within each channel may also include content which corresponds to the category represented by the respective channel.
  • the files indicated within any particular category may actually reside on any server connected to the network 104.
  • network files categorized as custom channel files 131 may include a plurality of channels labeled, for example, "Channel A”, “Channel B”, etc.
  • Files 131 can be downloaded on request by the user, appended to or incorporated within the channel hierarchy stored on the client, and further customized using the channel editor discussed below, with the corresponding edits reflected in customizable channel file 136.
  • Each custom channel file 131 includes a plurality of labels associated with the channels contained therein.
  • Files 128-131 and 136-138 are structured as channel structure files as described herein, and may be indicated as having the file type NDF. Files 131 contain and store the channel hierarchy information necessary to add the new channels to customizable channel file 136.
  • NDF NEOPLANET Definition Format
  • An example of an NDF file is an ASCII file containing channel and sub-channel labels for display on browser screen 300 (see FIG. 3 below for further discussion) and corresponding hierarchical and file location indicator (e.g. URL) information.
  • the channel structure files can have the structure described below with respect to the preferred alternative serial number channel file approach.
  • a customizable channel file 136 and a fixed channel file 138 are available for access by a browser program 140 during execution and network navigation by a user.
  • Browser program 140 may be programmed in a conventional programming language such as C++.
  • the channel names and labels for the corresponding file location indicators are displayed to the user through the browser program 140 using, for example, a graphic user interface (GUI), such as the GUI having a browser screen 300 shown in FIG. 3 and provided in NEOPLANET browsers publicly available from NeoPlanet, Inc., of Phoenix, Arizona, and as further described in related web pages published by NeoPlanet at www.neoplanet.com, which browsers and web pages are incorporated herein by reference at least for their teachings on GUI customization using skins importing and exporting and channel editing.
  • GUI graphic user interface
  • Browser program 140 which is executed by a user and connected to the browser client 124, displays such channel names and labels on browser screen 300 and allows the user to selectively access the corresponding channel on the client 124.
  • the fixed channel file 138 is updated periodically by the channel server 100 with one of the plurality of fixed channel files 128-130 depending on the identity of the user.
  • the user may be a subscriber to one or more on-line services such as AMERICA ON-LINE or the MICROSOFT NETWORK, and the browser client 124 may be part of a respective on-line service.
  • the fixed channel file 138 is updated periodically corresponding to the membership of the user in such on-line services.
  • all AMERICA ON-LINE subscribers may receive the first fixed channel file 128 including, for example, a home channel for common AMERICA ON-LINE matters, while all MICROSOFT NETWORK subscribers receive the second fixed channel file 130, including, for example, a home channel for common MICROSOFT NETWORK subscribers, which may include a URL to a MICROSOFT web site.
  • an exemplary browser screen 300 of the present invention is used to operate the browser 140.
  • a set 302 of non- customizable channels 302 and a set of customizable channels 304 are presented and available for selection as actuate-able (or actuable) icons in a channel bar 306; that is, a region of the screen 300 which may be selectively displayed and scrolled through using navigation icons 308 and 309 (e.g., up and down arrow icons and an "X" icon). Selecting or clicking on icons 308 with a mouse or other pointer causes the channels in channel bar 306 to scroll vertically up or down. Clicking on navigation icon 309 causes the window displaying channel bar 306 to close. If it is desired that channel bar 306 be re-opened, one of buttons 2430 is labeled "Show Channels" and re-displays channel bar 306 when selected.
  • channel bar 306 the channels available for selection are arranged in a vertically arranged list.
  • the order of these channels is determined by the user's customization of the channel hierarchy using a channel editor feature (see FIG. 16 below for further discussion) incorporated in browser 140 for customizing a user's channel and sub-channel hierarchy.
  • FIG. 3 also illustrates numerous buttons 2430 used to control various functions of browser 140 such as, for example, Back, Forward, Refresh, Stop, Print, Home, Search, Mail, Options, and Channels buttons.
  • a pointing device such as a mouse is used to select and click on (i.e., actuate) these buttons to perform certain functions such as go back to the prior web page (corresponding to the Back button) or re-load the contents of the current web page (corresponding to the Refresh button).
  • FIG. 16 illustrates a channel editor window 2420 provided by browser 140, for example, as a pop-up window.
  • Channel hierarchy 2422 can be edited by the user using various modify, delete, and add buttons.
  • Hierarchy 2422 contains first-level channels 2424, second-level folders 2426 (which correspond to the sub-channels of upper bar 2402) for collecting sets of web pages and third-level web pages 2428 (which correspond to the sub-channels of lower bar 2404).
  • some of web pages 2428 may be moved to and exist on the second level of hierarchy 2422.
  • folders 2426 may not be moved to the third level.
  • the hierarchy 2422 may permit even more than the three levels shown here.
  • Channel hierarchy 2422 can be customized as desired by the user except that a folder may not be placed on the third level of the hierarchy with web pages 2428. Also, only channels 2424 are permitted on the first level. It is permitted that web pages 2428 be placed on the second level along with folders 2426. New channels may be imported or user-created channels exported by the user using buttons 2427.
  • Channel structure files as described in more detail herein, are transferred to or from client storage device 126 by browser 140 and server 100 as appropriate to import or export these channels. In this way, a new channel including its associated sub-channel hierarchy can be added to channel hierarchy 2422. Also, a user can choose a channel to export to client storage device 126 in a channel structure file.
  • active viewing area 2400 is the region of browser screen 300 used for displaying web pages or sites loaded by browser 140.
  • Channel bar 306 is positioned to one vertical side of area 2400 for ease of channel selection by the user. In FIG. 3, channel bar 305 is on the right side of area 2400, though in other browsers it could be positioned on the left side of area 2400.
  • Channel bar 306 displays the highest level of the channel hierarchy 2422 stored locally on the client computer in client storage device 126.
  • a plurality of file location indicator labels or label icons 310 corresponding to sub-channels at lower levels in the channel hierarchy are arranged as two horizontal bars 2402 and 2404 (see FIG. 4 for an illustration of both bars), as discussed further below, and are available for selection by the user, for example by clicking or activating a pointing device such as a mouse when positioned over one of the labels.
  • browser screen 300 is initially displayed to a user upon execution of the browser 140, the default home channel is selected and displayed.
  • the browser 140 retrieves a file, for example http://www.server2.com/file3, for presentation to the user as indicated in file 138 to be the corresponding file to display when the start page label 312 is selected. If the user chooses the label icon 314 labeled NEOPLANET from the label icons 310, the browser 140 retrieves the corresponding file from, for example, http://www.serverl.com/file4 for presentation as indicated in the file 138 as the corresponding file to display when the NEOPLANET label icon 314 is selected.
  • the user may scroll through the channels in the channel bar
  • the browser 140 retrieves the corresponding channel data from the channel files 136. 138 so that the appropriate channel hierarchy can be presented to the user for navigation through the user interface.
  • labels 310 may be arranged in, for example, upper and lower horizontal bars 2402 and 2404 under a URL window 332, with label 318 being highlighted in the first position of upper horizontal bar 2402 to correspond to the selected channel 316 in channel bar 306, and with the sub-channels 320-324 being displayed together.
  • Upper and lower bars 2402 and 2404 are arranged in close proximity to and above active viewing area 2400 for ease of navigation by the user in conjunction with user navigation of channel bar 306.
  • browser 140 permits the user to easily navigate a three-level channel hierarchy in which the first level is a list of available channels represented by channel bar 306, the second or next level down comprises subchannels, which may be folders or web pages, organized in lists under each first level channel, and the third level comprises sub-channels, which are web pages only, organized in ordered lists under the second-level folders.
  • the presentation of the label information in bars 2402 and 2404 is integrated together based on the underlying channel hierarchy 2422.
  • upper bar 2402 presents labels 310 corresponding to web pages and folders in the second level of the channel hierarchy.
  • Lower bar 2404 presents labels corresponding to web pages in the third level.
  • the labels 310 presented in upper bar 2402 will change when a new channel is selected from channel bar 306.
  • navigation icons 2408 and 2410 for example, left and right arrow icons, as illustrated in FIG. 4, permit the user to scroll through labels 310 or sub-channel labels 326-330 when there is insufficient room to display all labels in the visible window portion of upper bar 2402 or lower bar 2404.
  • Each horizontal bar can be independently scrolled in this manner.
  • a visible outline 2406 surrounds the currently-selected label in upper bar 2402 and all of the visible labels in lower bar 2404 corresponding to this selected upper bar label. Visible outline 2406 may be created by a change in color and texture of the GUI corresponding to these encompassed labels.
  • the portion of outline 2406 in upper bar 2402 may be formed in the shape of a tab 2405, which is suggestive of a tab as found on a standard filing folder. However, other suggestive highlighting or other visible differentiation graphics techniques may be used. As different labels in upper bar 2402 are selected, tab 2405 will shift its position to encompass the newly selected label.
  • the US PAPERS label 320 is highlighted, and the sub-channel labels 326-330 under US PAPERS are listed together.
  • Selection of a specific sub-channel such as the SNAP! US PAPERS icon 326 causes the browser 140 to highlight the icon 326 and to access the corresponding file, such as the associated web site with its URL listed in the URL window 332.
  • the channel bar and upper and lower horizontal bars have been described herein with reference to a specific embodiment, it should be noted that one of skill in the art will recognize that these three informational display windows could be placed in other positions on the browser screen and have windows of varying shapes while still embodying the present invention as described herein.
  • the upper and lower bars could be positioned below the active viewing area, and the channel bar could be positioned above the active viewing area.
  • a new web page may have already begun to load.
  • browser 140 immediately begins loading the first web page in the first folder corresponding to that channel in the corresponding lower level in the channel hierarchy.
  • the web page that is automatically loaded will be the web page first in position above other web pages in that same first folder. For example, when "News" is first selected as a new channel, then the first web page in the list of web pages in the folder corresponding to label 2412 "Headlines" will begin loading immediately. This loading will only stop on the selection of another new channel or a different sub-channel. For example, when label 320 "US Papers" is selected, then the web page corresponding to the label "Snap! US Papers" begins to load immediately.
  • Upper and lower bars 2402 and 2404 display portions of the browser channel hierarchy, as discussed above with respect to FIG. 16.
  • Selected channel 316 corresponds to the first, top level of the hierarchy.
  • Upper bar 2402 corresponds to the second level of the hierarchy, and lower bar 2404 corresponds to the third level of the hierarchy.
  • Visible outline 2406 indicates the relationship between the sub-channels (i.e. folders and web pages) of the second level and the sub-channels (i.e. web pages) of the third level. Note that folders are not permitted on the third level in this embodiment, although in other embodiments additional levels could be added.
  • upper bar 2402 When a channel such as channel 316 is selected, for example, by the user's pointing and clicking a mouse, upper bar 2402 will default to highlighting the first subchannel, whether a folder or web page, in the ordered list corresponding to the selected channel. Further, lower bar 2404 will default to highlighting the first web page subchannel in the ordered list corresponding to the highlighted second level sub-channel. This default web page that is highlighted in lower bar 2404 will begin to load immediately upon the initial selection of the channel. In this way, as a user navigates through and selects channels, browser 140 will automatically and immediately load a default web page for each selected channel even though the user has not yet selected second or third level sub-channels.
  • the previously- selected web page will automatically load when the folder is again selected (instead of the default, first position web page).
  • This exception will generally apply only the current logon session. In other words, after the browser program is closed, the browser will again start using the default first position web pages.
  • the user similarly to the above exception, if the user has previously selected a second-level web page, then when the user leaves and returns to select the first level channel corresponding to the previously-selected web page, the previous sub-channel will automatically load when the first level channel is selected again (instead of the default, first position web page).
  • the user may customize the channels in the channel bar 306 by activating a pull-down menu 334 or other known selection mechanisms such as popup windows and other GUI-based data entry mechanisms.
  • a pull-down menu 334 or other known selection mechanisms such as popup windows and other GUI-based data entry mechanisms.
  • One menu choice is activation of the "Channel Archive" label or icon in the menu 334, which causes browser 140 to access a channel archive web page 336, shown in FIGS. 6-7.
  • Another choice that can be accessed on a similar pull-down menu for example as activated by right-clicking a mouse button when a mouse pointer is positioned over the Channels button 2430, is a channel editor (discussed above with reference to FIG. 16) which permits the user to customize the channel hierarchy corresponding to customizable channels 304.
  • FIG. 5 also illustrates a viewing window 307 located in a bottom right portion of screen 300.
  • viewing window 307 could located in another portion of screen 300.
  • the contents of window 307 may be, for example, advertisements that are displayed from a file (stored locally or on the channel server) containing an inventory of advertisements that will be rotated through in turn for display in window 307.
  • the pointer to this file of advertisements can be changed by browser 140 in response to appropriate script commands, which are discussed further below, received from channel server 100.
  • the inventory of advertisements displayed to the user can be dynamically changed by the channel server substantially during normal user operation of the browser, rather than only during start-up or installation, in response to statistical user information collected by channel server 100 about the user or actions taken by the user in selecting functions to perform using browser 140.
  • viewing window 307 also closes when channel bar 306 is closed using navigation icon 309 so that active viewing area 2400 extends substantially into the areas of screen 300 formerly occupied by channel bar 306 and window 307.
  • FIGS. 6 and 7 the channel hierarchy of browser 140 may be changed by the user.
  • Web page 336 displays actuable hyperlinks 338-344 or other icons to select sponsor channels, default channels, local channels, user channels, etc., for viewing and that are stored on channel server 100 for downloading to client storage device 126 if desired by the user.
  • hyperlinks 338-344 displayed as selected by the user.
  • browser 140 Upon actuation of one of hyperlinks 338-344 as selected by the user, browser 140 will then display a list of customizable channel icons 346-352 for viewing and selection by the user, as shown in FIG. 8.
  • This list may be, for example, a set of hyperlinks that the user can use to retrieve custom channel files 131 from channel server storage 102.
  • Each channel choice in this list will permit the user to add a new channel and its corresponding sub-channel hierarchy to the existing channel hierarchy stored in customizable channel file 136.
  • the hierarchical information for these new channels and sub-channels is stored on channel server storage device 102, for example, in one of the channel structure file formats as described herein or another suitable format. Selecting a hyperlink which will initiate a process in this file is used to update channel file 136.
  • Channel server 100 may initiate this updating by sending an appropriate script command to browser 140 with a URL for the new channel file information. For example, a custom channel 354 for a Poker Channel shown in FIG. 9 corresponding to the icon 350 in FIG.
  • the Poker Channel 8 may be added to the channel bar 306, as shown in FIG. 9, so that the Poker Channel may be selected by the user during browsing as well as the other customizable channels such as the Sports Channel, the News Channel, etc.
  • the previously-existing customizable channels for example "Fashion” and “Games”
  • non-customizable channels for example the "Home” channel, which can be accessed and displayed again by scrolling up
  • the user at any time may remove such customizable channels from the channel bar 306 by actuating the channels icon 356 to access additional GUI -based selection screens to add and/or delete customized channels using the channel editor described herein.
  • a file system is maintained in which files and channels are specified by names and labels and have associated URL addresses, with the types of channels being non-customizable or customizable as determined by which of channel files 128, 130, or 131 the channels are stored within.
  • a first channel file 138 is maintained at the browser client 124 of each user which includes standard and/or fixed channel configuration data corresponding to channels which are not customizable by the user, such as a home channel (i.e. "Home”) to refer the user back to a home site corresponding, for example, to a specific Internet Service Provider (ISP) or on-line service.
  • ISP Internet Service Provider
  • Channel file 138 is updated periodically by the channel server 100, for example of the ISP or on-line service, but first a comparison process is done to determine whether channel file 138 has already been updated. For example, a hash function may be performed on the first channel structure file of each browser client 124, with the resulting hash value being sent from the browser client 124 to the channel server 100 for storage and verification. At the channel server 100, the hash value is compared to a hash value of a master first channel structure file stored at the channel server 100. If the hash values do not match, the first channel file of each browser client 124 is automatically updated from the channel server 100, with no user intervention required or allowed. Any modification of the first channel structure file by a user may thus be detected and corrected by the channel server 100. It should be noted that although a hash function is described here, other comparison methods may also be used. A second channel file 136 is also maintained at the browser client 124 of each respective user which contains customizable channel configuration data for channels customizable by each respective user and associated with each user.
  • each definition is stored in a channel file, and each definition begins with a channel name or label, and includes a code to identify the file as being a channel file. After the channel name, a series of sub-channel names may also be listed and marked with identification codes. Also, each URL or other location names on the Internet or on-line service are also marked with an identification code for defining a site location to which the browser 140 is directed upon selection by the user of a corresponding channel or sub-channel.
  • These definitions may be stored, for example, in files of the type NDF as discussed herein. Also, an alternative definition file format as illustrated in FIG. 17 and discussed further below may also be preferably used.
  • Browser Control Using Script Files Another aspect of the present invention is a method for dynamically controlling the operation of a browser using command files periodically sent by the server to the client.
  • Browser client 124 periodically sends request files or ping requests to server 100, and server 100 periodically sends script files (or simply scripts) to client 124, containing various commands to control actions taken by browser program 140 and sent in response to receipt of the ping requests.
  • Browser program 140 is coded to contain a script processor or engine for processing the commands contained in these scripts. After processing these scripts, browser 140 will start processes for updating various aspects of its operation. As discussed above, these scripts may command the updating of the advertisement inventory running in viewing window 307.
  • the skins, which are described below in further detail, that are loaded by browser 140 to change the look and feel of the screen 300 to the user can be changed by appropriate script commands.
  • the scripts sent by the server are encrypted using a standard technique such as MD5 encryption. This hinders a third party from improperly controlling browser 140.
  • the typical script sent by the server is generally empty except for an acknowledgment of receipt of the original request from the client.
  • browser 140 may be changed by scripts sent by channel server 100. These aspects include the files to be accessed by activation of certain buttons presented to the user on screen 300 such as the Search button. For example, when the Search button is activated, then browser 140 points to and downloads a certain searching site such as offered by Lycos. However, a script may be sent that commands that the Search button point to a new web page for future searching. Also, selected buttons or pull-down menu options can be deleted entirely from screen 300 by appropriate script commands so that they are not visible to the user.
  • the frequency of ping requests or pings sent by browser 140 can be varied by a script command sent by the server 100.
  • browser 140 will continue to send pings to server 100 at the selected frequency until an pong acknowledgment is received from server 100.
  • most scripts sent are empty except for an acknowledgment of receipt of the ping by the server. If the server communicating with the browser is experiencing a heavy load due to communications with numerous other browser clients, then the server can send a script command to decrease the frequency of pings from the browser.
  • the frequency may also be decreased in order to avoid a sudden excessive communication load on the server prior to sending a script command causing an update to a relatively large file to be updated on client storage device 126, such as, for example, channel file 136 or the file containing the inventory of advertisements displayed on viewing window 307.
  • the server may send a script command re-directing a portion of the browsers in communication with it to begin client-server interaction with a different server.
  • the server may avoid excessive loads by downloading only a portion of a file at a time.
  • One overall goal of the preceding approaches is to balance the browser load substantially uniformly over the available servers.
  • Browser 140 contains a counter implemented in software that records the number of ping requests sent to the server prior to receiving a new script in response. Browser 140 will continue to send requests and increment this counter until it receives a script, at which time the counter is reset. It should be noted that roughly about 10-15% of client requests will fail. There are other counters that browser 140 may maintain related to the user interaction with the browser. For example, the number of advertisements displayed by the browser can be kept track of using a counter. The value of this counter can be sent to the channel server so that the server learns, for example, that ten advertisements have been displayed in the last five minutes. Such information can be used by the server to intelligently and dynamically update the content of the advertisements on the browser client or to make other changes in the user display.
  • Each ping request from the browser includes activity tracking data corresponding to browser operation since the last request. For example, such data includes information regarding how the browser is being used such as which buttons are selected, the number of web pages loaded, and customization settings selected by the user.
  • activity tracking data corresponding to browser operation since the last request. For example, such data includes information regarding how the browser is being used such as which buttons are selected, the number of web pages loaded, and customization settings selected by the user.
  • One advantage of the collection of this data is the ability to determine those browser features that are most popular so that the default settings used during, for example, initial installation can be set to correspond to popular use.
  • scripts Another advantage of the use of scripts is that the web pages that the browser points to when a button is selected can be dynamically changed. For example, the search button at the top of screen 300 will download a specific web page when actuated. The URL for the web page that is selected can be changed by sending a script command with a new URL to the browser.
  • Channel files 136 and 138 may be updated periodically by channel server 100.
  • browser program 140 periodically receives script command files or scripts from channel server 100. Some of the script commands initiate the updating of the channel hierarchies stored in channel files 136 and 138 on client 124. Often, it is desirable to update the channels in the local client's channel hierarchy for all or a subset of users that may be accessing channel server 100. For example, this updating may be done in response to sponsorship or advertising relationships or agreements entered into by the operator or owner of channel server 100 with certain ISPs or other sponsors. In one approach, the channel files are updated so that any user-made edits to the channel hierarchy of customizable channel file 136 are not affected by this channel updating.
  • Any web pages placed or moved in the channel hierarchy by the user are stored with a flag in channel file 136 indicating that the user has edited the hierarchical positions of those web pages.
  • This flag can be implemented by using a time stamp for this file modification by the user. Then, during updating of channel file 136, any web pages associated with such a flag will not be replaced with a new web page sent by the server.
  • An alternative to using flags is to compare the original channel file provided to browser 140 by channel server 100 with the currently-existing channel file 136 to determine which web pages the user has modified in the channel hierarchy.
  • Another even more preferred alternative to the above file definition format described for files 136 and 138 is to identify every channel, folder, and site contained in a channel file by a unique serial number.
  • Serial numbers in a first specified range correspond to server-managed items (i.e., items originating from and updated by channel server 100), whereas items with serial numbers outside of that range (e.g. 16,001-64,000) are considered to be user-managed items (i.e., items originating from some user-initiated activity).
  • the channel updating as described for this preferred alternative does not change the contents of any user-managed item. In other words, only items having serial numbers falling in the first specified range will be periodically updated as described below.
  • FIG. 17 An example of a channel structure file useful for implementing this serial number approach is illustrated in FIG. 17.
  • the limits on the hierarchical structure represented by this file are generally as described elsewhere herein with web pages and folders permitted on the second level and only web pages on the third level.
  • Each object is assigned a unique serial number at creation depending whether it is server-created or user-created.
  • each item's parent in the channel hierarchy or channel tree is stored by a "parent_serial- ' designation.
  • the position associated with an item can be defined by the item's relative position in the channel file, with the first item in the file corresponding to a first position for the parent item that it points to.
  • this first position item is the first item automatically loaded when a channel or folder is pointed to and clicked on by the user, as discussed elsewhere herein.
  • Other, lower positions are indicated by higher position numbers 2 -N.
  • the "deleted- ' designation indicates whether the name or URL of the item has been changed by the user, as described further below.
  • channels also get position numbers for the corresponding items of the channel type and these positions determine the order of the channels on channel bar 306.
  • the position designation for each item provides an advantage to the present invention because this position information can be used during updating of the file to move certain select items to higher positions. Advertisers or sponsors will often desire that items containing their URLs be moved to the number one or default position for each channel or folder so that exposure to the user is greater for these URLs (as displayed by their labels or names) than for other URLs.
  • the full structure of the channel hierarchy can be re-created by browser program 140 from a single channel structure file.
  • An advantage of this file approach is that the tracking of each item created by the server can be done by reference to a unique serial number, rather than by reference to a name or URL, which may be changed from time to time by either the user or automatically by the server.
  • a copy of the item is first made and stored as a hidden item as discussed below.
  • the item edited by the user is modified to reflect the user's name or URL changes.
  • the item's serial number is changed to be a new unique serial number corresponding to the user-managed number range discussed above. This is done so that the item can be distinguished in the future from those items that remain as server-managed items.
  • the copy of the original server-managed copy made above is hidden from the user's view during operation (i.e.
  • the user can be given the option to revert some or all items back to the server-managed versions without missing any changes or updates that may have been made to that item by intervening automatic server updates made to the channel hierarchy.
  • the general procedure used for automatically updating a locally-stored channel file as initiated by channel server 100 is to use a standard merge process in which the desired updates are made to the channel hierarchy while the user's previously defined edits to the hierarchy are substantially maintained.
  • the procedure used for updating the channel file is to use a merge process in which a new channel file is sent to the browser client by channel server 100. This new file reflects the new desired structure of the channel file and is used as a master file of preferred changes.
  • the serial numbers for server-managed items in the new file are matched one by one with the serial numbers in the local channel file on the user's computer.
  • the channel file on the client is modified so that it matches, as closely as possible, the format of the newly-sent channel file.
  • Server-managed items are rearranged as necessary so that they are in the same order as indicated in the position and parent serial designations in the newly-pushed file. If a server-managed item is found in the user's local channel file that is no longer in the newly-pushed channel file, it is deleted. Further, if there is an item in the new channel file that cannot be found in the user's channel file, it is added to the channel hierarchy.
  • Hidden items as discussed above, are treated in the same way with respect to updating as user visible items, but simply remain hidden from the user's view.
  • the position designation of the server-managed item in the newly-sent channel file will take precedence and the existing user-managed items will be pushed down to lower positions as necessary to insert or move the server-managed items.
  • the user-managed items will be updated in the channel file to reflect these position changes.
  • the initiation of the above channel updating occurs when an update command is received from the server in a script file as mentioned above.
  • the script processor of browser 140 initiates updating upon receipt of this command by pointing browser 140 to a new URL for the new channel file (i.e. the new inventory of channels, folders, and web pages) to use for updating.
  • browser 140 acts as a client-server application in which regular communication and hand-shaking occur between the server and browser client. This is in contrast to prior browser in which the extensive updating of bookmark or URL lists or favorites throughout a large, complicated, multi-level hierarchy requires the user to re-install the browser software or bookmark file associated with the browser.
  • An advantage of the intelligent channel updating described above is that the update command is acted on by the browser in a thread or process that preferably occurs during one or more periods of idle modem connection time to the channel server.
  • the browser program software makes this determination and provides this control. The result is that the user does not perceive significant degradation of download times for new web pages that are being loaded since channel updating will temporarily halt during such downloading.
  • the idle modem time for a typical user can range up to about 80% of total connection time.
  • the software engine of browser program 140 that handles the channel updating process above is preferably stored on browser client 124 as a dynamic linked library or ".dll" file. This permits the channel server 100 to send an update to this engine along with the new channel structure changes to be made so that the algorithm used to make the changes can be readily changed or updated as frequently or along with the updates to the local channel structure file itself.
  • a user may, using a mouse button, point and click on a hyperlink in a web page being viewed in active viewing area 2400 and, while holding down the mouse button used to click on the hyperlink, drag the hyperlink over the channel bar 306, which initiates the automatic opening of the channel editor by browser 140.
  • the user while continuing to hold the mouse button depressed, may position the new hyperlink on a folder or channel in the channel hierarchy displayed by the channel editor of FIG. 16 where the user wants to add the new web page.
  • the channel editor Upon releasing the mouse button, the channel editor initiates a process to add the hyperlink to the hierarchy.
  • a dataflow diagram is illustrated representing an overview of the dataflow between the channel server 100 and the browser 140 upon access by the browser 140 to network 104.
  • the browser client 124 relays a message to the channel server 100 that the user has made initial access to the network, either by sending the message to the Internet protocol (IP) address of the channel server 100 or directly to the channel server 100.
  • IP Internet protocol
  • the message from the browser client 124 to the channel server 100 includes user identification (USERID) information.
  • the channel server 100 sends a selected one of the plurality of the fixed channel files 128-130 to the browser of the user in step 402 to be an updated non-customizable channel file.
  • Membership of the user in a specific on-line service such as AMERICA ON-LINE or the MICROSOFT NETWORK determines the non-customized channel file to be sent to the browser 140, so the non-customizable channel file that is selected for transmission depends on the identity of the user.
  • One of the features of the present invention is that groups such as ISPs have the ability to determine the content of the fixed channel file sent to selected users who access the network 104.
  • the ISP is able to assign a fixed file for this purpose in channel server storage device 102, which is sent to the browser client 124 when one of its member subscribers accesses the network. For example, if a user of a first provider, ISP1, accesses the network 104, channel server 100 transmits fixed channel "filel" to browser client 124. If a user of a second provider, ISP2, accesses the network 104, channel server 100 transmits fixed channel "file2" to browser client 124.
  • fixed channels 302 and customizable channels 304 (and the underlying corresponding channel hierarchy), as shown in FIG. 3 and which are presented for selection in browser screen 300, may be tailored by the ISP to which the user is a member.
  • a user has the ability to add channels for selection on browser screen 300, as described above for FIGS. 5-9, by sending a request to the channel server 100 for the appropriate custom channel files.
  • Such files may be, for example, type NDF files or files using the alternative serial number approach described above.
  • a plurality of additional channel files (also referred to herein as "channel addendum files") are stored in channel server storage device 102 in a channel archive as mentioned above with each file containing channel data available to the user for display and for downloading to browser client 124 for presentation and selection (such as described for the selection of channel files using the channel archive web pages discussed above).
  • a user may send a request to the channel server 100 in step 404 to add an available channel from this archive to the browser screen 300.
  • the channel server 100 sends an addendum or updated file location indicator categories for customizable channels to the browser client 124 in step 406.
  • the data from the addendum file is added to the customizable channel file 136 by the browser 140, which is read for concurrent presentation with fixed channels from the fixed channel file 138 in the channel bar 306 of the browser screen 300.
  • the user can then further customize the new channels (and sub-channels) added during this process using the channel editor discussed above.
  • the manner in which the addendum files are added to the existing custom channel file can be user-selected operations of replace, merge, or append. More specifically, channels having the same name as existing channels can replace the existing channels, or the new web pages in these same channels can be merged with the existing web pages under the same channel name, or a new channel can be appended to the existing channel hierarchy with a slightly modified new channel name, for example "Sports2".
  • the method of operation includes the user accessing the World Wide Web or other on-line systems in step 408, which causes the browser client 124 to send the USERID information to the channel server 100 in step 410.
  • the channel server 100 cross- references the user ID with data in a service member database stored, for example, by the channel server 100 or by any of the servers 106-1 14, which lists the users and/or the browser clients 124 according to their membership with different on-line services.
  • Non- customizable channel files are periodically retrieved in step 414 by the channel server 100 from the channel server storage 102 according to the service membership of the particular user, which may correspond to one of the fixed channel files 128, 130.
  • the channel server 100 transmits the non-customizable channel file to the browser client 124.
  • the browser client 124 then performs a comparison such as, for example, a hash function in step 418 on the current and/or old non-customizable channel file 136 stored in the client storage device 126, which generates a first hash value.
  • a hash function in step 418 on the current and/or old non-customizable channel file 136 stored in the client storage device 126, which generates a first hash value.
  • the browser client 124 performs a hash function on the received and up-to-date non-customizable channel file to generate a second hash value.
  • the browser client 124 compares the first and second hash values in step 420. If the non-customizable channel file received from the channel sever 124 is different from the old client-resident non-customizable channel file, as determined in step 420 by a matching or mismatch of the first and second hash values, the browser client 124 replaces the old non-customizable channel file with the received and up-to- date non-customizable channel file. The method then proceeds to step 424. However, in step 420, if the first and second hash values are identical, indicating identity between the old and the new non-customizable channel file, then the method skips step 422 and performs step 424.
  • the channel server 100 may use the USERID to cross-reference certain customizable channels that may be presented to the user in the channel archive or otherwise according to the user's on-line service membership; that is, new or different channels may be suggested to groups of users such as all users of AMERICA ON-LINE.
  • the suggested customizable channels are then sent by the channel server 100 to the browser client 124 in step 426, and the browser client 124 then compares the client-resident customizable channel file with the suggested customizable channel file received from the channel server 100 in step 428.
  • the browser client 124 may then update the custom channels of the browser 140 using the suggested customizable channel file in step 430, for example, in the manner as described herein for intelligent channel updating.
  • browser client 124 may also optionally rename channel categories and labels of channel file locations which conflict with previous user-created channel hierarchy edits to such categories and labels. Another option, however, is that any prior user-initiated channel and sub-channel edits to web pages be unchanged after updating in step 430. These updates may be done as described with respect to intelligent channel updating above so that a user's desired channel interface is maintained to some extent.
  • the browser client 124 may automatically send statistical data in step 432 to the channel server 100 relating to any user-created channels and URL selections, which may be stored by the channel server 100 in step 436 as statistical data in a market research database. Such statistical data may then be used to measure usage of individual Internet sites as well as general topical usage of the Internet. Such statistical data may also be used to tailor additional suggestions for customized channels to users.
  • a typical GUI interface screen 1300 is presented with a browser icon 1302 highlighted for executing browser 140 of the present invention. According to the identity of the user, and membership of the user in one of a plurality of services, the browser program takes on different characteristics including a variable look and feel.
  • one such variable characteristic includes a variable logo which appears during loading of the executable code of browser 140.
  • the browser program 140 is executed either by selection of screen icon 1302 or a menu icon.
  • a logo 1400 appears on the GUI interface 1300 for identifying trademark and manufacturing information for browser 140.
  • One of the customizable features of browser 140 is that a different logo 1400 may dynamically be set to be presented according to the user's identity and service membership during the loading time of the executable code of browser 140.
  • a flow diagram illustrates the method for selecting and displaying logo 1400 during loading of browser 140.
  • the method for logo selection comprises starting execution of browser 140 in step 1500, detecting the browser program user's identity in step 1502, determining if the user is a member of one of a plurality of services in step 1504, selecting a logo to present during browser executable code loading based on the user's service membership (i.e. USERID), or lack of service membership in step 1506, and presenting logo 1400 while loading the code for execution of browser 140 in step 1508.
  • sound files may also be selected for presentation during the loading period of the browser 140 executable code.
  • the logo and sound files for selection and presentation during loading of browser 140 may reside either on client storage device 126 or on channel server storage device 102. If the files reside on client storage 126, then the logo and sound files can be regularly updated in similar fashion to fixed channel file 138. Alternatively, if the logo and sound files reside on channel server storage 102, upon execution of browser 140, browser client 124 connects to channel server 100 and retrieves the correct logo and sound files to present according the user's identity.
  • the software for browser 140 used for implementing the inventive features as described herein may be written, for example, in a conventional programming language such as C++ and be compiled and run on a conventional Windows operating system computer. Other software languages and computers may be alternatively used as will be recognized by one of skill in the art.
  • Browser 140 is preferably based on standard programming techniques conventionally used with sockets, the Microsoft Windows operating system, Internet Explorer programming interfaces, and the TCP/IP and http protocols.
  • the appearance of the user interface of browser 140 can be customized by changing so-called "skin" files stored locally on the client 124 and used by the browser to generate the appearance of the non-client portions of screen 300.
  • the term “skin” is also used herein to refer to the collection of these files.
  • the portion of screen 300 that is generated based on the skin is generally all portions that are associated with the operation of the user interface of the browser (i.e., the graphical appearance of the portions of screen 300 that are used to establish and define a consistent user interface within which numerous web pages will be loaded and viewed by a user).
  • these interface portions will be substantially all regions of screen 300 other than active viewing area 2400, viewing window 307, and the text displayed within URL window 332, bars 2402, 2404, and channel bar 306.
  • a skin is stored locally on client storage device 126 for use by browser 140 during operation and may be defined, for example, as conventional bit map or other graphic images.
  • Browser 140 uses the skin to create the appearance of the browser user interface elements of screen 300, such as buttons, graphics, logos, borders, caption bars, channel bars, and pop-up windows for E-mail and the channel editor.
  • a skin is assembled into a single archive file formed by compressing the several image files that are used to define the browser appearance.
  • This files may be compressed using a standard PKZIP or ZIP standard compression.
  • the compressed skin archive file is sent from the server to the browser client, decompressed or unzipped by the browser, and stored locally in a skin folder as discussed below.
  • the skin of browser 140 may be automatically and dynamically changed without specific manual action by the user when a new web page is being loaded.
  • the skin may be automatically changed in two basic approaches.
  • the hyperlink itself may contain an embedded script command to update the browser skin.
  • the HTML code for the new web page that is pointed to by the hyperlink and then loaded when this hyperlink is clicked may contain an embedded script command to update the skin, as discussed below.
  • browser 140 determines whether the hyperlink contains an embedded command. It should be noted that browser software program 140 is programmed to recognize embedded commands in hyperlinks. These commands correspond to the script commands discussed above that are used to control browser 140. If the hyperlink contains a command, then the hyperlink is parsed to separate the commands and send them to the script processor for processing. For example, one such command is a "LOAD SKIN URLxxx" command which directs browser 140 to change the current skin for the browser based on the skin files that are pointed to by the URLxxx locator.
  • the code for the current web page being viewed by the user must be coded to include the LOAD SKIN or comparable embedded command so that the skin changes when the hyperlink on this page is clicked.
  • the skin changes automatically in that the user does not need to take any explicit action directed to changing the skin. Instead, the user merely perceives an automatic skin change when the hyperlink is clicked.
  • the hyperlink selected by the user may also point to local or network files other than http web pages. Further, the hyperlink may merely contain embedded script commands without any URL information so that script commands can be executed by the user by simply clicking on hyperlinks.
  • the code for the target web page contains a URL with an embedded LOAD SKIN command.
  • the target web page may be defined by at least two frames with one of the frames being an invisible frame of zero height and zero width, but containing an embedded LOAD SKIN command in the URL for this frame.
  • the first frame points to the URL for the second frame.
  • the embedded LOAD SKIN command in the URL for the second invisible frame is detected and processed by the script processor of browser 140.
  • the creator of the target web page must have information regarding the browser 140 command set so that the appropriate command syntax is embedded in the target web page.
  • browser 140 detects and processes the LOAD SKIN command and changes the browser skin.
  • browser 140 attempts to access the skin files from the appropriate skin folder stored locally on client storage device 126. If this folder is not present, then browser 140 creates a new folder with the appropriate skin name and downloads the skin files in a compressed form from channel server storage device 102. These files are decompressed by browser 140 and stored locally in this new folder.
  • browser 140 preferably intercepts the URL for the skin archive file being downloaded from the server prior to its being passed to the operating system for example, for a MIME type determination. This is done in order to determine if a command is embedded in the URL. By so intercepting the URL, the operating speed of the browser is increased.
  • the URL may be of the following form: http://www.neoplanet.com/ ⁇ CMD IMPORT SKIN http://www.neoplanet.com/skin/xxxx
  • Browser 140 will first determine whether the URL contains an embedded command, as is indicated here by the "http://www.neoplanet.com/ ⁇ CMD" portion of the above URL.
  • browser 140 parses the command "IMPORT SKIN" and sends it to the script processor with its URL as discussed above. If a browser is being used that does not recognize such embedded commands, then the original, full URL can load a web page that directs the user to the appropriate web page operator of the channel server for downloading of a compatible browser. It should be appreciated that by the above approaches, the browser skin is dynamically and automatically changed as a user browses through and loads new web pages. In contrast, prior browsers have required that the user manually place new skin files on the client. In the present invention, the browser automatically detects whether these files are present and retrieves them from the server as necessary without user intervention.
  • the skin files that are used to customize the appearance of browser may be created using standard techniques known in the art.
  • An example of the creation of skin files suitable for browser 140 is described in the "NeoPlanet Skin Creation” manual published by NeoPlanet, Inc., on its web site at www.neoplanet.com and dated July 13, 1999, which is hereby incorporated herein by reference.
  • the operating system running on browser client 124 may sometimes attempt to paint or color portions of the skin of browser 140 inconsistently with the desired new skin files. Therefore, preferably these painting messages are identified and disabled using standard techniques such as those published by Microsoft for its Windows operating system.
  • the method used by browser 140 to create a customized appearance based on the selected skin files may be one of any conventional skin updating technique.
  • the user may update the skin for browser 140 manually.
  • a pull-down menu activated by a "Skins" button 2430 may present a menu choice to view a Skins Archive.
  • a user may view, select, and automatically import a new skin from many possible choices that are presented by pointing and clicking on a new choice using a mouse.

Abstract

A system and method allow an Internet browser (140) or other on-line access programs to provide both customizable and non-customizable channel selections. The system and method are used in a network (104) having a plurality of network files, in which categorized network file location indicators are presented by a browser program for selecting files accessible on the network. A server (102) stores the plurality of categorized file location indicators identifying file locations of the network files. A subset of the categorized file location indicators are selectable by a user. The server stores the subset in a channel file (128-130) used for determining file location indicators corresponding to the subset to be presented by the browser program. The system and method then determines the corresponding file location indicators for presentation by the browser program for selection by transmitting to the client and storing on the client the channel file accessed by the browser program.

Description

NETWORK BROWSER METHOD AND SYSTEM
FOR CONTROLLING BROWSER
OPERATION
FIELD OF THE INVENTION
The present invention relates to network browsers and, more particularly, to a system and method for controlling browser operation, customizing the browser user interface, and updating and customizing browser channels in a browser program
BACKGROUND OF THE INVENTION
Browser programs allow a user to selectively access and download data from networks, such as the Internet and the World Wide Web as well as intranets and extranets Some browsers provide channels to users prior to and during the user's accessing the Internet or other directories These channels are generally set forth on the user's display screen as categories or topics of information that might be of interest to the user
Through the channels, a plurality of different web sites (or web pages) may be grouped in a common channel Referring to FIG 1, browser systems are known which provide channels 10 to a browser 12 at or connected to a browser client 14 Upon initialization of the browser 12, the browser 12 automatically accesses the directory server 16 through the browser client 14 and sends a request to the directory server 16 for a directory of channels in step 18 The directory server 16 then provides channel data received by the browser 12 through the browser client 14 in step 20 for displaying a plurality of fixed channels offering the user with choices between specialized areas of interests such as arts, family topics, news, sports, etc Such choices are typically determined and fixed by the on-line service such as AMERICA ON-LINE With such specialized channels, diverse web sites as well as on-line services are categorized to facilitate navigation such as searching or browsing by a user through areas of interest Such channels may access further channels or sub-channels ("sub-channels" generally refers to sub-categories organized in a hierarchy and found at those levels lower than the top level of the channels) stored on the server 16, such as web sites in the sports channel dedicated to different sports such as football, baseball, basketball, etc. In response to selections from the user through the browser 12 sent to the directory server 16 in step 22, such as selection of a sports channel, the directory server 16 responds in step 24 with data corresponding to the selected channel and having a fixed list of sub-channels, such as sub-channels directed to football, baseball, basketball, etc The user of the browser 12 may further refine the sub-channel selection in step 26 to focus on a specific sport, sport-oriented matter, or sub-topic, such as basketball In response to the user selecting such a sub-channel, the directory server 16 again sends data for a fixed set of sub-channel areas as a set of labels corresponding to file location indicators (e.g., URLs) for the sub-channel in step 28, which may be specific and fixed web sites such as NBA COM to access the National Basketball Association web site The user may then select a label representing a specific web site or on-line file location, with the selection being sent to the directory server 16 in step 30, and the directory server 16 sends the file location indicator, such as an Internet Universal Resource Locator (URL), to the browser 12 in step 32
Heretofore, such fixed channels have not permitted customization by the user to add or delete channels and sub-channels, and so the user has typically relied on non- channel facilities such as the Favorite Places utility in the AMERICA ON-LINE browser and on-line graphic user interface (GUI) Further, such fixed channels typically remain fixed until the entire browser or on-line GUI is updated to a higher version Accordingly, the user must wait for such updates Further, prior browsers have not permitted the user to finely customize the look and feel of the user interface, such as the appearance of the browser borders, buttons, and other interface features Moreover, prior browsers are only client applications and have not been readily controlled on a dynamic basis by a server.
Accordingly, a need exists for an improved browser and/or on-line GUI having the flexibility to provide customizable channels for users, a customizable user interface look and feel, and the ability to better control browser operation by a server on a dynamic basis
BRIEF DESCRIPTION OF THE DRAWINGS
FIG 1 illustrates a known browser system having fixed channels, FIG 2 illustrates the present browser system with both fixed and customizable channels,
FIG 3 illustrates a browser graphic user interface (GUI) of the present browser system,
FIG 4 illustrates the browser GUI of FIG 3 with the available channels being displayed,
FIG 5 illustrates the browser GUI of FIG 4 showing pull-down menus,
FIG 6 illustrates a channel archive selection screen,
FIG 7 illustrates another channel archive selection screen,
FIG 8 illustrates a browser screen with selectable channels available for user customization,
FIG 9 illustrates a browser screen showing an added channel,
FIG 10 illustrates one embodiment of the dataflow of the present browser for updating fixed channels and for selecting customizable channels,
FIG 11 illustrates a flowchart of the method of operation of one embodiment of the present invention,
FIG 12 illustrates a continuation of the flowchart of FIG 11, FIG. 13 illustrates a GUI interface screen with an icon for executing a browser program of the present invention;
FIG. 14 illustrates the GUI interface screen of FIG. 13 during loading of executable code of the browser program of the present invention; FIG. 15 illustrates a flowchart of the method of operation of one embodiment of the present invention for presenting files during loading of executable code of the browser program;
FIG. 16 illustrates a GUI channel hierarchy editor screen of the present invention; and FIG. 17 illustrates an example of a channel structure file of the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS As used herein, the term "channels" generally means selected categories or topics of information chosen for the higher level grouping and organization of file location information for those web pages that a user may wish to access in the future using a browser. This hierarchy is stored locally on the client computer for speed of access by the browser software. The term "channels" is specifically used herein, depending on the appropriate context, to refer to the label or icon or other visual element displayed to a user to indicate the available channel categories or to refer to the actual hypertext transfer protocol (http) or other file locations, for example, Uniform Resource Locators (URLs), organized according to these categories.
The present invention provides a system and method for navigation of a hierarchy of categories organized by channels on a highest level and folders and web pages organized on lower levels of this hierarchy as lists corresponding to the channels (these lower levels are also sometimes referred to herein as sub-channels), as described further below. The term "sub-channels" generally means selected categories of information for the hierarchical levels beneath the top level for a corresponding channel. The present invention also generally provides a system and method for dynamically controlling browser operations and for customization of the appearance and look and feel of the browser user interface. In one embodiment of the present invention, a system and method is used in a network having a plurality of network files, in which categorized network file location indicators are presented by a browser program on a client for selecting files accessible on the network. A server stores the plurality of categorized file location indicators identifying file locations of the files accessible on the network. A subset of the plurality of categorized file location indicators are selectable by a user. The server stores the subset of the plurality of categorized file location indicators in a channel file used for determining file location indicators corresponding to the subset to be presented by the browser program for the selection of network files. The system and method then determines the corresponding file location indicators for presentation by the browser program for selection by transmitting to the client and storing on the client the channel file accessed by the browser program.
At least a first subset and a second subset of the plurality of categorized file indicators may be selected, in which corresponding first and second subsets are stored in a first channel file and a second channel file, respectively, on the server. Access to the network by an identifiable user of the client is detected, and the user is identified. A channel file is then selected from the first and second channel files depending on the identity of the user, with the selected channel file being transmitted to the client. The identity of the user corresponds to membership of the user in one of a plurality of services. In selecting the subset of the plurality of categorized file location indicators, the system and method may select a subset of categories of file location indicators not customizable by a user, with the subset being stored in a non-customizable or fixed channel file. In determining file location indicators to be presented by the browser program for selecting network files to present on a client, the non-customizable channel file is transmitted to the client for access by the browser program. The non- customizable channel file may be stored on the client for concurrent storage with a user- customizable channel file for allowing the user to select file location indicators from both the non-customizable and customizable channel files.
According to the identity of the user, and membership of the user in one of a plurality of services, the browser program takes on different characteristics including a variable look and feel. For example, one such variable characteristic includes a variable logo which appears during start up of the browser program itself. During operation of a GUI interface on a browser client accessing the network, the browser program is executed either by selection of a screen icon or a menu icon. After selection, during a period of loading of the browser program kernel or executable code, a logo appears onscreen for identifying trademark and manufacturing information for the browser program. Sound files may also be presented during the loading period. One of the customizable features of the browser of the present invention is that a different logo or sound file may dynamically be set to be presented according to the user's identity and service membership. The method for logo selection comprises detecting the browser program user's identity, determining if the user is a member of one of a plurality of services, selecting a logo to present during browser executable code loading based on the user's service membership, or lack of service membership, and presenting the logo while loading the code for execution of the browser. The same method can be employed for selection of various sound files to present during browser start-up.
The above features of the present invention and other additional inventive features are described below with reference to specific embodiments as illustrated in the figures listed above. With specific reference to FIG. 2, an illustrative architecture of the disclosed browser system is depicted which provides both customizable and non- customizable (or fixed) channels to a user. As described herein, the browser system is generally described with reference to Internet-based systems, but it is understood that the disclosed browser system may be employed in other on-line and remote computer systems, such as on-line services using proprietary GUIs as well as intranets and extranets.
As shown in FIG. 2, a channel server 100 includes or is connected to a channel server storage device 102, which may be magnetic, optical or other storage media. The channel server 100 is electronically and/or operatively connected to a network 104 which includes, for example, a public network, such as the Internet, and/or a private network, such as an intranet of a company or subscriber on-line services such as AMERICA ON-LINE. A plurality of servers 106-114 are also connected to the network 104 and include file storage media 116-118 for storing network files such as hypertext markup language (HTML) files 120-122 which can be referenced using standard network protocols such as the Transmission Control Protocol/Internet Protocol (TCP/IP).
User access is available to the network 104 through a browser client 124 having a network compatible interface, such as a personal computer (PC) or a UNIX-based system. The browser client 124 may either be directly connected to network 104, for example, through an available Internet service provider (ISP), or, alternatively, may be directly connected to channel server 100. It should be noted that channel server 100 may be part of an ISP service using at least one server to offer ISP services to users. The browser client 124 may have its own client storage device 126 for storing files downloaded from the network 104. Alternatively, if the channel server 100 is the ISP for the browser client 124, files can be downloaded directly from the channel server 100 which also serves as a connection to the network 104.
The channel server storage device 102 stores a plurality of fixed channel files 128-130, in which each fixed channel file includes a listing of network file location indicators (e.g. URLs) identifying files 120-122 (e.g. HTML web pages) stored on the network servers 106-114, respectively. For example, as shown in FIG. 2, for the fixed channel file 128, an exemplary file structure has a plurality of file indicators separated into a plurality of channels (e.g. "Home" and "News") which represent categories of information of potential interest to the user. The file indicators correspond to and point to certain of the network files 120-122 that the user may desire to load. The network files indicated within each channel may also include content which corresponds to the category represented by the respective channel. As further illustrated for the fixed channel files 128-130, the files indicated within any particular category may actually reside on any server connected to the network 104.
In addition, network files categorized as custom channel files 131 may include a plurality of channels labeled, for example, "Channel A", "Channel B", etc. Files 131 can be downloaded on request by the user, appended to or incorporated within the channel hierarchy stored on the client, and further customized using the channel editor discussed below, with the corresponding edits reflected in customizable channel file 136. Each custom channel file 131 includes a plurality of labels associated with the channels contained therein. Files 128-131 and 136-138 are structured as channel structure files as described herein, and may be indicated as having the file type NDF. Files 131 contain and store the channel hierarchy information necessary to add the new channels to customizable channel file 136. Files of the type NDF may, for example, conform to the NEOPLANET Definition Format ("NDF") for channels used with NEOPLANET's published browser software. An example of an NDF file is an ASCII file containing channel and sub-channel labels for display on browser screen 300 (see FIG. 3 below for further discussion) and corresponding hierarchical and file location indicator (e.g. URL) information. Also, the channel structure files can have the structure described below with respect to the preferred alternative serial number channel file approach. At the client storage device 126, a customizable channel file 136 and a fixed channel file 138 are available for access by a browser program 140 during execution and network navigation by a user. Browser program 140 may be programmed in a conventional programming language such as C++. The channel names and labels for the corresponding file location indicators are displayed to the user through the browser program 140 using, for example, a graphic user interface (GUI), such as the GUI having a browser screen 300 shown in FIG. 3 and provided in NEOPLANET browsers publicly available from NeoPlanet, Inc., of Phoenix, Arizona, and as further described in related web pages published by NeoPlanet at www.neoplanet.com, which browsers and web pages are incorporated herein by reference at least for their teachings on GUI customization using skins importing and exporting and channel editing. Browser program 140, which is executed by a user and connected to the browser client 124, displays such channel names and labels on browser screen 300 and allows the user to selectively access the corresponding channel on the client 124. As discussed herein, the fixed channel file 138 is updated periodically by the channel server 100 with one of the plurality of fixed channel files 128-130 depending on the identity of the user. In particular, the user may be a subscriber to one or more on-line services such as AMERICA ON-LINE or the MICROSOFT NETWORK, and the browser client 124 may be part of a respective on-line service. Accordingly, the fixed channel file 138 is updated periodically corresponding to the membership of the user in such on-line services. For example, all AMERICA ON-LINE subscribers may receive the first fixed channel file 128 including, for example, a home channel for common AMERICA ON-LINE matters, while all MICROSOFT NETWORK subscribers receive the second fixed channel file 130, including, for example, a home channel for common MICROSOFT NETWORK subscribers, which may include a URL to a MICROSOFT web site. As shown in FIG. 3, an exemplary browser screen 300 of the present invention is used to operate the browser 140. On the browser screen 300, a set 302 of non- customizable channels 302 and a set of customizable channels 304 are presented and available for selection as actuate-able (or actuable) icons in a channel bar 306; that is, a region of the screen 300 which may be selectively displayed and scrolled through using navigation icons 308 and 309 (e.g., up and down arrow icons and an "X" icon). Selecting or clicking on icons 308 with a mouse or other pointer causes the channels in channel bar 306 to scroll vertically up or down. Clicking on navigation icon 309 causes the window displaying channel bar 306 to close. If it is desired that channel bar 306 be re-opened, one of buttons 2430 is labeled "Show Channels" and re-displays channel bar 306 when selected.
In channel bar 306, the channels available for selection are arranged in a vertically arranged list. The order of these channels is determined by the user's customization of the channel hierarchy using a channel editor feature (see FIG. 16 below for further discussion) incorporated in browser 140 for customizing a user's channel and sub-channel hierarchy.
FIG. 3 also illustrates numerous buttons 2430 used to control various functions of browser 140 such as, for example, Back, Forward, Refresh, Stop, Print, Home, Search, Mail, Options, and Channels buttons. A pointing device such as a mouse is used to select and click on (i.e., actuate) these buttons to perform certain functions such as go back to the prior web page (corresponding to the Back button) or re-load the contents of the current web page (corresponding to the Refresh button).
FIG. 16 illustrates a channel editor window 2420 provided by browser 140, for example, as a pop-up window. Channel hierarchy 2422 can be edited by the user using various modify, delete, and add buttons. Hierarchy 2422 contains first-level channels 2424, second-level folders 2426 (which correspond to the sub-channels of upper bar 2402) for collecting sets of web pages and third-level web pages 2428 (which correspond to the sub-channels of lower bar 2404). Also, in a preferred embodiment, some of web pages 2428, as desired by a user, may be moved to and exist on the second level of hierarchy 2422. However, folders 2426 may not be moved to the third level. Also, it should be appreciated that in other embodiments, the hierarchy 2422 may permit even more than the three levels shown here.
Channel hierarchy 2422 can be customized as desired by the user except that a folder may not be placed on the third level of the hierarchy with web pages 2428. Also, only channels 2424 are permitted on the first level. It is permitted that web pages 2428 be placed on the second level along with folders 2426. New channels may be imported or user-created channels exported by the user using buttons 2427. Channel structure files, as described in more detail herein, are transferred to or from client storage device 126 by browser 140 and server 100 as appropriate to import or export these channels. In this way, a new channel including its associated sub-channel hierarchy can be added to channel hierarchy 2422. Also, a user can choose a channel to export to client storage device 126 in a channel structure file. These exported files can be transferred from browser client 124 to channel server 100 for public presentation to other network users by server 100 so that a greater number of channel choices can be presented for possible selection and downloading by other network users. Again referring to FIG. 3, active viewing area 2400 is the region of browser screen 300 used for displaying web pages or sites loaded by browser 140. Channel bar 306 is positioned to one vertical side of area 2400 for ease of channel selection by the user. In FIG. 3, channel bar 305 is on the right side of area 2400, though in other browsers it could be positioned on the left side of area 2400. Channel bar 306 displays the highest level of the channel hierarchy 2422 stored locally on the client computer in client storage device 126. As each channel is selected, a plurality of file location indicator labels or label icons 310 corresponding to sub-channels at lower levels in the channel hierarchy are arranged as two horizontal bars 2402 and 2404 (see FIG. 4 for an illustration of both bars), as discussed further below, and are available for selection by the user, for example by clicking or activating a pointing device such as a mouse when positioned over one of the labels. When browser screen 300 is initially displayed to a user upon execution of the browser 140, the default home channel is selected and displayed.
With the home channel selected from the channels 302, 304 and with the start page file location indicator label 312 selected from the indicators or sub-channel label icons 310, the browser 140 retrieves a file, for example http://www.server2.com/file3, for presentation to the user as indicated in file 138 to be the corresponding file to display when the start page label 312 is selected. If the user chooses the label icon 314 labeled NEOPLANET from the label icons 310, the browser 140 retrieves the corresponding file from, for example, http://www.serverl.com/file4 for presentation as indicated in the file 138 as the corresponding file to display when the NEOPLANET label icon 314 is selected.
As shown in FIG. 4, the user may scroll through the channels in the channel bar
306 and, upon selection of a channel, the selected channel 316 is highlighted or otherwise indicated as being activated. The browser 140 then retrieves the corresponding channel data from the channel files 136. 138 so that the appropriate channel hierarchy can be presented to the user for navigation through the user interface.
Several labels 310 may be arranged in, for example, upper and lower horizontal bars 2402 and 2404 under a URL window 332, with label 318 being highlighted in the first position of upper horizontal bar 2402 to correspond to the selected channel 316 in channel bar 306, and with the sub-channels 320-324 being displayed together.
Upper and lower bars 2402 and 2404 are arranged in close proximity to and above active viewing area 2400 for ease of navigation by the user in conjunction with user navigation of channel bar 306. In general, browser 140 permits the user to easily navigate a three-level channel hierarchy in which the first level is a list of available channels represented by channel bar 306, the second or next level down comprises subchannels, which may be folders or web pages, organized in lists under each first level channel, and the third level comprises sub-channels, which are web pages only, organized in ordered lists under the second-level folders. The presentation of the label information in bars 2402 and 2404 is integrated together based on the underlying channel hierarchy 2422.
Specifically, upper bar 2402 presents labels 310 corresponding to web pages and folders in the second level of the channel hierarchy. Lower bar 2404 presents labels corresponding to web pages in the third level. The labels 310 presented in upper bar 2402 will change when a new channel is selected from channel bar 306. Also, navigation icons 2408 and 2410, for example, left and right arrow icons, as illustrated in FIG. 4, permit the user to scroll through labels 310 or sub-channel labels 326-330 when there is insufficient room to display all labels in the visible window portion of upper bar 2402 or lower bar 2404. Each horizontal bar can be independently scrolled in this manner.
A visible outline 2406 surrounds the currently-selected label in upper bar 2402 and all of the visible labels in lower bar 2404 corresponding to this selected upper bar label. Visible outline 2406 may be created by a change in color and texture of the GUI corresponding to these encompassed labels. The portion of outline 2406 in upper bar 2402 may be formed in the shape of a tab 2405, which is suggestive of a tab as found on a standard filing folder. However, other suggestive highlighting or other visible differentiation graphics techniques may be used. As different labels in upper bar 2402 are selected, tab 2405 will shift its position to encompass the newly selected label.
Upon selection of a sub-channel involving, for example, United States papers, the US PAPERS label 320 is highlighted, and the sub-channel labels 326-330 under US PAPERS are listed together. Selection of a specific sub-channel such as the SNAP! US PAPERS icon 326 causes the browser 140 to highlight the icon 326 and to access the corresponding file, such as the associated web site with its URL listed in the URL window 332. Although the channel bar and upper and lower horizontal bars have been described herein with reference to a specific embodiment, it should be noted that one of skill in the art will recognize that these three informational display windows could be placed in other positions on the browser screen and have windows of varying shapes while still embodying the present invention as described herein. For example, in alternative embodiments the upper and lower bars could be positioned below the active viewing area, and the channel bar could be positioned above the active viewing area.
It should be appreciated that even prior to a user selecting a specific subchannel, a new web page may have already begun to load. Specifically, in a preferred embodiment when a user selects a new channel from channel bar 306, browser 140 immediately begins loading the first web page in the first folder corresponding to that channel in the corresponding lower level in the channel hierarchy. The web page that is automatically loaded will be the web page first in position above other web pages in that same first folder. For example, when "News" is first selected as a new channel, then the first web page in the list of web pages in the folder corresponding to label 2412 "Headlines" will begin loading immediately. This loading will only stop on the selection of another new channel or a different sub-channel. For example, when label 320 "US Papers" is selected, then the web page corresponding to the label "Snap! US Papers" begins to load immediately.
Upper and lower bars 2402 and 2404 display portions of the browser channel hierarchy, as discussed above with respect to FIG. 16. Selected channel 316 corresponds to the first, top level of the hierarchy. Upper bar 2402 corresponds to the second level of the hierarchy, and lower bar 2404 corresponds to the third level of the hierarchy. Visible outline 2406 indicates the relationship between the sub-channels (i.e. folders and web pages) of the second level and the sub-channels (i.e. web pages) of the third level. Note that folders are not permitted on the third level in this embodiment, although in other embodiments additional levels could be added. When a channel such as channel 316 is selected, for example, by the user's pointing and clicking a mouse, upper bar 2402 will default to highlighting the first subchannel, whether a folder or web page, in the ordered list corresponding to the selected channel. Further, lower bar 2404 will default to highlighting the first web page subchannel in the ordered list corresponding to the highlighted second level sub-channel. This default web page that is highlighted in lower bar 2404 will begin to load immediately upon the initial selection of the channel. In this way, as a user navigates through and selects channels, browser 140 will automatically and immediately load a default web page for each selected channel even though the user has not yet selected second or third level sub-channels. In a similar way as described above for a selected channel, as a user next selects a folder sub-channel from upper bar 2402, the web page in the ordered list corresponding to that selected folder will begin to automatically and immediately load, even though the user has not yet selected a third level web page. Thus, as a user navigates the channel hierarchy, a default web page will automatically load for each channel selected and when within a channel for each folder sub-channel selected.
As an exception to the above, if during the current logon session, the user has previously selected a third-level web page, then when the user leaves and returns to select the folder corresponding to the previously-selected web page, the previously- selected web page will automatically load when the folder is again selected (instead of the default, first position web page). This exception will generally apply only the current logon session. In other words, after the browser program is closed, the browser will again start using the default first position web pages. Also, similarly to the above exception, if the user has previously selected a second-level web page, then when the user leaves and returns to select the first level channel corresponding to the previously-selected web page, the previous sub-channel will automatically load when the first level channel is selected again (instead of the default, first position web page).
As shown in FIG. 5, the user may customize the channels in the channel bar 306 by activating a pull-down menu 334 or other known selection mechanisms such as popup windows and other GUI-based data entry mechanisms. One menu choice is activation of the "Channel Archive" label or icon in the menu 334, which causes browser 140 to access a channel archive web page 336, shown in FIGS. 6-7. Another choice that can be accessed on a similar pull-down menu, for example as activated by right-clicking a mouse button when a mouse pointer is positioned over the Channels button 2430, is a channel editor (discussed above with reference to FIG. 16) which permits the user to customize the channel hierarchy corresponding to customizable channels 304.
FIG. 5 also illustrates a viewing window 307 located in a bottom right portion of screen 300. In other embodiments, viewing window 307 could located in another portion of screen 300. The contents of window 307 may be, for example, advertisements that are displayed from a file (stored locally or on the channel server) containing an inventory of advertisements that will be rotated through in turn for display in window 307. The pointer to this file of advertisements can be changed by browser 140 in response to appropriate script commands, which are discussed further below, received from channel server 100. Thus, the inventory of advertisements displayed to the user can be dynamically changed by the channel server substantially during normal user operation of the browser, rather than only during start-up or installation, in response to statistical user information collected by channel server 100 about the user or actions taken by the user in selecting functions to perform using browser 140. An advantage is that the advertisements can be, for example, customized to the current web page that is being loaded or to other characteristics associated with a given user. It should be noted that viewing window 307 also closes when channel bar 306 is closed using navigation icon 309 so that active viewing area 2400 extends substantially into the areas of screen 300 formerly occupied by channel bar 306 and window 307.
As mentioned above, the channel hierarchy of browser 140 may be changed by the user. One way in which potential choices for new channels and their sub-channels are presented is illustrated in FIGS. 6 and 7 in a channel archive web page directory, as discussed above. Web page 336 displays actuable hyperlinks 338-344 or other icons to select sponsor channels, default channels, local channels, user channels, etc., for viewing and that are stored on channel server 100 for downloading to client storage device 126 if desired by the user. Upon actuation of one of hyperlinks 338-344 as selected by the user, browser 140 will then display a list of customizable channel icons 346-352 for viewing and selection by the user, as shown in FIG. 8. This list may be, for example, a set of hyperlinks that the user can use to retrieve custom channel files 131 from channel server storage 102. Each channel choice in this list will permit the user to add a new channel and its corresponding sub-channel hierarchy to the existing channel hierarchy stored in customizable channel file 136. The hierarchical information for these new channels and sub-channels is stored on channel server storage device 102, for example, in one of the channel structure file formats as described herein or another suitable format. Selecting a hyperlink which will initiate a process in this file is used to update channel file 136. Channel server 100 may initiate this updating by sending an appropriate script command to browser 140 with a URL for the new channel file information. For example, a custom channel 354 for a Poker Channel shown in FIG. 9 corresponding to the icon 350 in FIG. 8 may be added to the channel bar 306, as shown in FIG. 9, so that the Poker Channel may be selected by the user during browsing as well as the other customizable channels such as the Sports Channel, the News Channel, etc. Note that the previously-existing customizable channels (for example "Fashion" and "Games") and non-customizable channels (for example the "Home" channel, which can be accessed and displayed again by scrolling up) remain on the channel bar 306. In addition, the user at any time may remove such customizable channels from the channel bar 306 by actuating the channels icon 356 to access additional GUI -based selection screens to add and/or delete customized channels using the channel editor described herein.
Channel File System
Using the disclosed browser system and method of operation, in a first embodiment a file system is maintained in which files and channels are specified by names and labels and have associated URL addresses, with the types of channels being non-customizable or customizable as determined by which of channel files 128, 130, or 131 the channels are stored within. A first channel file 138 is maintained at the browser client 124 of each user which includes standard and/or fixed channel configuration data corresponding to channels which are not customizable by the user, such as a home channel (i.e. "Home") to refer the user back to a home site corresponding, for example, to a specific Internet Service Provider (ISP) or on-line service. Channel file 138 is updated periodically by the channel server 100, for example of the ISP or on-line service, but first a comparison process is done to determine whether channel file 138 has already been updated. For example, a hash function may be performed on the first channel structure file of each browser client 124, with the resulting hash value being sent from the browser client 124 to the channel server 100 for storage and verification. At the channel server 100, the hash value is compared to a hash value of a master first channel structure file stored at the channel server 100. If the hash values do not match, the first channel file of each browser client 124 is automatically updated from the channel server 100, with no user intervention required or allowed. Any modification of the first channel structure file by a user may thus be detected and corrected by the channel server 100. It should be noted that although a hash function is described here, other comparison methods may also be used. A second channel file 136 is also maintained at the browser client 124 of each respective user which contains customizable channel configuration data for channels customizable by each respective user and associated with each user.
Within each of the first and second channel files, a series of channels are defined to appear on the browser 140. Each definition is stored in a channel file, and each definition begins with a channel name or label, and includes a code to identify the file as being a channel file. After the channel name, a series of sub-channel names may also be listed and marked with identification codes. Also, each URL or other location names on the Internet or on-line service are also marked with an identification code for defining a site location to which the browser 140 is directed upon selection by the user of a corresponding channel or sub-channel. These definitions may be stored, for example, in files of the type NDF as discussed herein. Also, an alternative definition file format as illustrated in FIG. 17 and discussed further below may also be preferably used.
Browser Control Using Script Files Another aspect of the present invention is a method for dynamically controlling the operation of a browser using command files periodically sent by the server to the client. Browser client 124 periodically sends request files or ping requests to server 100, and server 100 periodically sends script files (or simply scripts) to client 124, containing various commands to control actions taken by browser program 140 and sent in response to receipt of the ping requests. Browser program 140 is coded to contain a script processor or engine for processing the commands contained in these scripts. After processing these scripts, browser 140 will start processes for updating various aspects of its operation. As discussed above, these scripts may command the updating of the advertisement inventory running in viewing window 307. Also, the skins, which are described below in further detail, that are loaded by browser 140 to change the look and feel of the screen 300 to the user can be changed by appropriate script commands. Preferably, the scripts sent by the server are encrypted using a standard technique such as MD5 encryption. This hinders a third party from improperly controlling browser 140. The typical script sent by the server is generally empty except for an acknowledgment of receipt of the original request from the client.
In addition, several other aspects of operation of browser 140 may be changed by scripts sent by channel server 100. These aspects include the files to be accessed by activation of certain buttons presented to the user on screen 300 such as the Search button. For example, when the Search button is activated, then browser 140 points to and downloads a certain searching site such as offered by Lycos. However, a script may be sent that commands that the Search button point to a new web page for future searching. Also, selected buttons or pull-down menu options can be deleted entirely from screen 300 by appropriate script commands so that they are not visible to the user.
The frequency of ping requests or pings sent by browser 140 can be varied by a script command sent by the server 100. In general, browser 140 will continue to send pings to server 100 at the selected frequency until an pong acknowledgment is received from server 100. Typically, most scripts sent are empty except for an acknowledgment of receipt of the ping by the server. If the server communicating with the browser is experiencing a heavy load due to communications with numerous other browser clients, then the server can send a script command to decrease the frequency of pings from the browser. The frequency may also be decreased in order to avoid a sudden excessive communication load on the server prior to sending a script command causing an update to a relatively large file to be updated on client storage device 126, such as, for example, channel file 136 or the file containing the inventory of advertisements displayed on viewing window 307. In addition, to avoid an excessive server load, the server may send a script command re-directing a portion of the browsers in communication with it to begin client-server interaction with a different server. Finally, the server may avoid excessive loads by downloading only a portion of a file at a time. One overall goal of the preceding approaches is to balance the browser load substantially uniformly over the available servers.
Browser 140 contains a counter implemented in software that records the number of ping requests sent to the server prior to receiving a new script in response. Browser 140 will continue to send requests and increment this counter until it receives a script, at which time the counter is reset. It should be noted that roughly about 10-15% of client requests will fail. There are other counters that browser 140 may maintain related to the user interaction with the browser. For example, the number of advertisements displayed by the browser can be kept track of using a counter. The value of this counter can be sent to the channel server so that the server learns, for example, that ten advertisements have been displayed in the last five minutes. Such information can be used by the server to intelligently and dynamically update the content of the advertisements on the browser client or to make other changes in the user display.
Each ping request from the browser includes activity tracking data corresponding to browser operation since the last request. For example, such data includes information regarding how the browser is being used such as which buttons are selected, the number of web pages loaded, and customization settings selected by the user. One advantage of the collection of this data is the ability to determine those browser features that are most popular so that the default settings used during, for example, initial installation can be set to correspond to popular use.
Another advantage of the use of scripts is that the web pages that the browser points to when a button is selected can be dynamically changed. For example, the search button at the top of screen 300 will download a specific web page when actuated. The URL for the web page that is selected can be changed by sending a script command with a new URL to the browser.
Intelligent Channel Hierarchy Updating
Channel files 136 and 138 may be updated periodically by channel server 100. As discussed above, browser program 140 periodically receives script command files or scripts from channel server 100. Some of the script commands initiate the updating of the channel hierarchies stored in channel files 136 and 138 on client 124. Often, it is desirable to update the channels in the local client's channel hierarchy for all or a subset of users that may be accessing channel server 100. For example, this updating may be done in response to sponsorship or advertising relationships or agreements entered into by the operator or owner of channel server 100 with certain ISPs or other sponsors. In one approach, the channel files are updated so that any user-made edits to the channel hierarchy of customizable channel file 136 are not affected by this channel updating. Any web pages placed or moved in the channel hierarchy by the user are stored with a flag in channel file 136 indicating that the user has edited the hierarchical positions of those web pages. This flag can be implemented by using a time stamp for this file modification by the user. Then, during updating of channel file 136, any web pages associated with such a flag will not be replaced with a new web page sent by the server. An alternative to using flags is to compare the original channel file provided to browser 140 by channel server 100 with the currently-existing channel file 136 to determine which web pages the user has modified in the channel hierarchy. Another even more preferred alternative to the above file definition format described for files 136 and 138 is to identify every channel, folder, and site contained in a channel file by a unique serial number. Serial numbers in a first specified range (e.g. 0-16,000) correspond to server-managed items (i.e., items originating from and updated by channel server 100), whereas items with serial numbers outside of that range (e.g. 16,001-64,000) are considered to be user-managed items (i.e., items originating from some user-initiated activity). The channel updating as described for this preferred alternative does not change the contents of any user-managed item. In other words, only items having serial numbers falling in the first specified range will be periodically updated as described below.
An example of a channel structure file useful for implementing this serial number approach is illustrated in FIG. 17. In this alternative, there is only a single channel file stored on client storage device 126, which replaces the separate fixed and customizable channel files 136 and 138 described elsewhere herein. This alternative single file is, for example, a text file containing many items 2500-2504. Each item corresponds to an element or entity in the channel hierarchy, such as a channel, folder, or web page. The type of element is stored in the item by a "type=" designation. For example, object 2500 is designated as "type=item", which corresponds to a web page. Other types are "folder" and "channel". The URL for this web page is given by the "URL=" designation and the label displayed on browser screen 300 is given by the "name=" designation. The limits on the hierarchical structure represented by this file are generally as described elsewhere herein with web pages and folders permitted on the second level and only web pages on the third level.
Each object is assigned a unique serial number at creation depending whether it is server-created or user-created. The serial number is stored in the item by a "serial=" designation. Further, each item's parent in the channel hierarchy or channel tree is stored by a "parent_serial- ' designation. Optionally, the position of the item in the ordered list corresponding to the parent in the channel hierarchy is stored in the item by a "position=" designation. For example, a "position=l" designation indicates that the item is the first item in the list of items corresponding to the parent channel or folder. As an alternative to the position designation, the position associated with an item can be defined by the item's relative position in the channel file, with the first item in the file corresponding to a first position for the parent item that it points to.
It should be noted that, for the case of a web page item, this first position item is the first item automatically loaded when a channel or folder is pointed to and clicked on by the user, as discussed elsewhere herein. Other, lower positions are indicated by higher position numbers 2 -N. Finally, the "deleted- ' designation indicates whether the name or URL of the item has been changed by the user, as described further below. A "deleted=no" designation indicates that the item has not been so changed. If an item has a "deleted=yes" designation, then that item is not displayed to the user during browser operation. However, such a deleted or hidden item is still otherwise maintained and updated in the channel structure file. It should also be noted that channels also get position numbers for the corresponding items of the channel type and these positions determine the order of the channels on channel bar 306. The position designation for each item provides an advantage to the present invention because this position information can be used during updating of the file to move certain select items to higher positions. Advertisers or sponsors will often desire that items containing their URLs be moved to the number one or default position for each channel or folder so that exposure to the user is greater for these URLs (as displayed by their labels or names) than for other URLs.
Using the item information above, the full structure of the channel hierarchy can be re-created by browser program 140 from a single channel structure file. An advantage of this file approach is that the tracking of each item created by the server can be done by reference to a unique serial number, rather than by reference to a name or URL, which may be changed from time to time by either the user or automatically by the server. Some examples of user-initiated changes or updates to the file items in this definition file are now described. First, when a user makes a change to the position of either a server-managed item or a user-managed item, the position designation in the file is updated by browser 140 to reflect the new position. Also, the parent serial designation is changed as applicable if the item is moved to another channel or folder in the hierarchy. Otherwise, the item retains the same serial number and no other items are changed in the local channel file.
Second, when a user wishes to make a change to a server-managed item involving a change to its name or URL, a copy of the item is first made and stored as a hidden item as discussed below. The item edited by the user is modified to reflect the user's name or URL changes. Further, the item's serial number is changed to be a new unique serial number corresponding to the user-managed number range discussed above. This is done so that the item can be distinguished in the future from those items that remain as server-managed items. As a preferred option, the copy of the original server-managed copy made above is hidden from the user's view during operation (i.e. the deleted designation for this item is "deleted=yes" as described above), but still kept in the local channel structure file, so that automatic updates sent out by the server can be made to this and any other hidden files. As a result, in the future the user can be given the option to revert some or all items back to the server-managed versions without missing any changes or updates that may have been made to that item by intervening automatic server updates made to the channel hierarchy.
Third, when a user makes a change in name or URL to a user-managed item, then those changes are simply reflected in the item's record. No copy is made since the item's serial number falls within the user-managed range.
The general procedure used for automatically updating a locally-stored channel file as initiated by channel server 100, whether it is fixed or customizable channel file 136 or the serial number channel file discussed above, is to use a standard merge process in which the desired updates are made to the channel hierarchy while the user's previously defined edits to the hierarchy are substantially maintained. Specifically, for the preferred approach using serial numbers discussed above, the procedure used for updating the channel file is to use a merge process in which a new channel file is sent to the browser client by channel server 100. This new file reflects the new desired structure of the channel file and is used as a master file of preferred changes. The serial numbers for server-managed items in the new file are matched one by one with the serial numbers in the local channel file on the user's computer. Then, the channel file on the client is modified so that it matches, as closely as possible, the format of the newly-sent channel file. Server-managed items are rearranged as necessary so that they are in the same order as indicated in the position and parent serial designations in the newly-pushed file. If a server-managed item is found in the user's local channel file that is no longer in the newly-pushed channel file, it is deleted. Further, if there is an item in the new channel file that cannot be found in the user's channel file, it is added to the channel hierarchy. Hidden items, as discussed above, are treated in the same way with respect to updating as user visible items, but simply remain hidden from the user's view.
In performing the updating described above, where there is a conflict between a designated position for a server-managed item and user-managed items, the position designation of the server-managed item in the newly-sent channel file will take precedence and the existing user-managed items will be pushed down to lower positions as necessary to insert or move the server-managed items. The user-managed items will be updated in the channel file to reflect these position changes. The initiation of the above channel updating occurs when an update command is received from the server in a script file as mentioned above. The script processor of browser 140 initiates updating upon receipt of this command by pointing browser 140 to a new URL for the new channel file (i.e. the new inventory of channels, folders, and web pages) to use for updating. Then, the merge process is performed by browser 140. It should be noted that this updating occurs automatically without requiring initiation or other action by the user and thus provides a dynamic updating functionality, which does not require re-starting or re-installing the browser. Instead, updating is controlled by the script files sent at the frequency desired by the server. In this regard, browser 140 acts as a client-server application in which regular communication and hand-shaking occur between the server and browser client. This is in contrast to prior browser in which the extensive updating of bookmark or URL lists or favorites throughout a large, complicated, multi-level hierarchy requires the user to re-install the browser software or bookmark file associated with the browser.
An advantage of the intelligent channel updating described above is that the update command is acted on by the browser in a thread or process that preferably occurs during one or more periods of idle modem connection time to the channel server. The browser program software makes this determination and provides this control. The result is that the user does not perceive significant degradation of download times for new web pages that are being loaded since channel updating will temporarily halt during such downloading. The idle modem time for a typical user can range up to about 80% of total connection time. It should also be noted that the software engine of browser program 140 that handles the channel updating process above is preferably stored on browser client 124 as a dynamic linked library or ".dll" file. This permits the channel server 100 to send an update to this engine along with the new channel structure changes to be made so that the algorithm used to make the changes can be readily changed or updated as frequently or along with the updates to the local channel structure file itself.
The updating procedure for customizable channel file 136 and an alternative serial number channel structure file have been described above. However, other channel file updating as described herein is done by browser 140 in a similar manner. For example, updating of fixed channel file 138 is accomplished by channel server 100 sending a script command pointing browser 140 to a new URL for updating fixed channel file 138. The updating occurs as described above except that the user is not able to edit file 138 so the entire channel hierarchy of folders and web pages in file 138 may be updated.
Another way in which channel updating can be done, which is manually initiated by the user, is a "drag-and-drop" method. A user may, using a mouse button, point and click on a hyperlink in a web page being viewed in active viewing area 2400 and, while holding down the mouse button used to click on the hyperlink, drag the hyperlink over the channel bar 306, which initiates the automatic opening of the channel editor by browser 140. The user, while continuing to hold the mouse button depressed, may position the new hyperlink on a folder or channel in the channel hierarchy displayed by the channel editor of FIG. 16 where the user wants to add the new web page. Upon releasing the mouse button, the channel editor initiates a process to add the hyperlink to the hierarchy.
Client-Server Dataflow
Referring to FIG. 10, a dataflow diagram is illustrated representing an overview of the dataflow between the channel server 100 and the browser 140 upon access by the browser 140 to network 104. When a user accesses the network 104 using the browser client 124 in step 400, the browser client 124 relays a message to the channel server 100 that the user has made initial access to the network, either by sending the message to the Internet protocol (IP) address of the channel server 100 or directly to the channel server 100. The message from the browser client 124 to the channel server 100 includes user identification (USERID) information. In response, the channel server 100 sends a selected one of the plurality of the fixed channel files 128-130 to the browser of the user in step 402 to be an updated non-customizable channel file. Membership of the user in a specific on-line service such as AMERICA ON-LINE or the MICROSOFT NETWORK determines the non-customized channel file to be sent to the browser 140, so the non-customizable channel file that is selected for transmission depends on the identity of the user.
One of the features of the present invention is that groups such as ISPs have the ability to determine the content of the fixed channel file sent to selected users who access the network 104. The ISP is able to assign a fixed file for this purpose in channel server storage device 102, which is sent to the browser client 124 when one of its member subscribers accesses the network. For example, if a user of a first provider, ISP1, accesses the network 104, channel server 100 transmits fixed channel "filel" to browser client 124. If a user of a second provider, ISP2, accesses the network 104, channel server 100 transmits fixed channel "file2" to browser client 124. In this way, fixed channels 302 and customizable channels 304 (and the underlying corresponding channel hierarchy), as shown in FIG. 3 and which are presented for selection in browser screen 300, may be tailored by the ISP to which the user is a member.
A user has the ability to add channels for selection on browser screen 300, as described above for FIGS. 5-9, by sending a request to the channel server 100 for the appropriate custom channel files. Such files may be, for example, type NDF files or files using the alternative serial number approach described above. A plurality of additional channel files (also referred to herein as "channel addendum files") are stored in channel server storage device 102 in a channel archive as mentioned above with each file containing channel data available to the user for display and for downloading to browser client 124 for presentation and selection (such as described for the selection of channel files using the channel archive web pages discussed above). During browsing, a user may send a request to the channel server 100 in step 404 to add an available channel from this archive to the browser screen 300. The channel server 100 sends an addendum or updated file location indicator categories for customizable channels to the browser client 124 in step 406. The data from the addendum file is added to the customizable channel file 136 by the browser 140, which is read for concurrent presentation with fixed channels from the fixed channel file 138 in the channel bar 306 of the browser screen 300. The user can then further customize the new channels (and sub-channels) added during this process using the channel editor discussed above.
The manner in which the addendum files are added to the existing custom channel file can be user-selected operations of replace, merge, or append. More specifically, channels having the same name as existing channels can replace the existing channels, or the new web pages in these same channels can be merged with the existing web pages under the same channel name, or a new channel can be appended to the existing channel hierarchy with a slightly modified new channel name, for example "Sports2".
As shown in greater detail in FIGS. 11-12, the method of operation according to one embodiment includes the user accessing the World Wide Web or other on-line systems in step 408, which causes the browser client 124 to send the USERID information to the channel server 100 in step 410. The channel server 100 cross- references the user ID with data in a service member database stored, for example, by the channel server 100 or by any of the servers 106-1 14, which lists the users and/or the browser clients 124 according to their membership with different on-line services. Non- customizable channel files are periodically retrieved in step 414 by the channel server 100 from the channel server storage 102 according to the service membership of the particular user, which may correspond to one of the fixed channel files 128, 130. The channel server 100 transmits the non-customizable channel file to the browser client 124.
The browser client 124 then performs a comparison such as, for example, a hash function in step 418 on the current and/or old non-customizable channel file 136 stored in the client storage device 126, which generates a first hash value. In addition, in step 418, the browser client 124 performs a hash function on the received and up-to-date non-customizable channel file to generate a second hash value.
The browser client 124 then compares the first and second hash values in step 420. If the non-customizable channel file received from the channel sever 124 is different from the old client-resident non-customizable channel file, as determined in step 420 by a matching or mismatch of the first and second hash values, the browser client 124 replaces the old non-customizable channel file with the received and up-to- date non-customizable channel file. The method then proceeds to step 424. However, in step 420, if the first and second hash values are identical, indicating identity between the old and the new non-customizable channel file, then the method skips step 422 and performs step 424.
In step 424, the channel server 100 may use the USERID to cross-reference certain customizable channels that may be presented to the user in the channel archive or otherwise according to the user's on-line service membership; that is, new or different channels may be suggested to groups of users such as all users of AMERICA ON-LINE. The suggested customizable channels are then sent by the channel server 100 to the browser client 124 in step 426, and the browser client 124 then compares the client-resident customizable channel file with the suggested customizable channel file received from the channel server 100 in step 428. The browser client 124 may then update the custom channels of the browser 140 using the suggested customizable channel file in step 430, for example, in the manner as described herein for intelligent channel updating. In step 430, browser client 124 may also optionally rename channel categories and labels of channel file locations which conflict with previous user-created channel hierarchy edits to such categories and labels. Another option, however, is that any prior user-initiated channel and sub-channel edits to web pages be unchanged after updating in step 430. These updates may be done as described with respect to intelligent channel updating above so that a user's desired channel interface is maintained to some extent.
In alternative embodiments, periodically the browser client 124 may automatically send statistical data in step 432 to the channel server 100 relating to any user-created channels and URL selections, which may be stored by the channel server 100 in step 436 as statistical data in a market research database. Such statistical data may then be used to measure usage of individual Internet sites as well as general topical usage of the Internet. Such statistical data may also be used to tailor additional suggestions for customized channels to users. With reference to FIG. 13, a typical GUI interface screen 1300 is presented with a browser icon 1302 highlighted for executing browser 140 of the present invention. According to the identity of the user, and membership of the user in one of a plurality of services, the browser program takes on different characteristics including a variable look and feel. For example, in a preferred embodiment, one such variable characteristic includes a variable logo which appears during loading of the executable code of browser 140. For a user viewing GUI interface 1300 on browser client 124, the browser program 140 is executed either by selection of screen icon 1302 or a menu icon.
With reference to FIG. 14, after the above selection, during a period of loading of the browser program kernel or executable code, a logo 1400 appears on the GUI interface 1300 for identifying trademark and manufacturing information for browser 140. One of the customizable features of browser 140 is that a different logo 1400 may dynamically be set to be presented according to the user's identity and service membership during the loading time of the executable code of browser 140.
With reference to FIG. 15, a flow diagram illustrates the method for selecting and displaying logo 1400 during loading of browser 140. The method for logo selection comprises starting execution of browser 140 in step 1500, detecting the browser program user's identity in step 1502, determining if the user is a member of one of a plurality of services in step 1504, selecting a logo to present during browser executable code loading based on the user's service membership (i.e. USERID), or lack of service membership in step 1506, and presenting logo 1400 while loading the code for execution of browser 140 in step 1508. In similar fashion, sound files may also be selected for presentation during the loading period of the browser 140 executable code. Referring back to FIG. 2, the logo and sound files for selection and presentation during loading of browser 140 may reside either on client storage device 126 or on channel server storage device 102. If the files reside on client storage 126, then the logo and sound files can be regularly updated in similar fashion to fixed channel file 138. Alternatively, if the logo and sound files reside on channel server storage 102, upon execution of browser 140, browser client 124 connects to channel server 100 and retrieves the correct logo and sound files to present according the user's identity.
The software for browser 140 used for implementing the inventive features as described herein may be written, for example, in a conventional programming language such as C++ and be compiled and run on a conventional Windows operating system computer. Other software languages and computers may be alternatively used as will be recognized by one of skill in the art. Browser 140 is preferably based on standard programming techniques conventionally used with sockets, the Microsoft Windows operating system, Internet Explorer programming interfaces, and the TCP/IP and http protocols.
Importing of Skins
According to the present invention, the appearance of the user interface of browser 140, can be customized by changing so-called "skin" files stored locally on the client 124 and used by the browser to generate the appearance of the non-client portions of screen 300. The term "skin" is also used herein to refer to the collection of these files. The portion of screen 300 that is generated based on the skin is generally all portions that are associated with the operation of the user interface of the browser (i.e., the graphical appearance of the portions of screen 300 that are used to establish and define a consistent user interface within which numerous web pages will be loaded and viewed by a user). Generally, these interface portions will be substantially all regions of screen 300 other than active viewing area 2400, viewing window 307, and the text displayed within URL window 332, bars 2402, 2404, and channel bar 306.
A skin is stored locally on client storage device 126 for use by browser 140 during operation and may be defined, for example, as conventional bit map or other graphic images. Browser 140 uses the skin to create the appearance of the browser user interface elements of screen 300, such as buttons, graphics, logos, borders, caption bars, channel bars, and pop-up windows for E-mail and the channel editor.
In a preferred approach, a skin is assembled into a single archive file formed by compressing the several image files that are used to define the browser appearance.
This files may be compressed using a standard PKZIP or ZIP standard compression. The compressed skin archive file is sent from the server to the browser client, decompressed or unzipped by the browser, and stored locally in a skin folder as discussed below.
Often, it is advantageous to change the skin of browser 140 so that the appearance of the user interface will correspond in a meaningful way to the content of a web page being loaded for viewing. According to the present invention, the skin may be automatically and dynamically changed without specific manual action by the user when a new web page is being loaded.
More particularly, when a user activates a hyperlink presented in active viewing area 2400 so that a new web page is loaded, the skin may be automatically changed in two basic approaches. In a first approach, the hyperlink itself may contain an embedded script command to update the browser skin. In a second approach, the HTML code for the new web page that is pointed to by the hyperlink and then loaded when this hyperlink is clicked may contain an embedded script command to update the skin, as discussed below.
According to the first approach, when a user clicks on a hyperlink displayed on a web page in active viewing area 400, browser 140 determines whether the hyperlink contains an embedded command. It should be noted that browser software program 140 is programmed to recognize embedded commands in hyperlinks. These commands correspond to the script commands discussed above that are used to control browser 140. If the hyperlink contains a command, then the hyperlink is parsed to separate the commands and send them to the script processor for processing. For example, one such command is a "LOAD SKIN URLxxx" command which directs browser 140 to change the current skin for the browser based on the skin files that are pointed to by the URLxxx locator.
In the first approach, the code for the current web page being viewed by the user must be coded to include the LOAD SKIN or comparable embedded command so that the skin changes when the hyperlink on this page is clicked. However, from the user's perspective, the skin changes automatically in that the user does not need to take any explicit action directed to changing the skin. Instead, the user merely perceives an automatic skin change when the hyperlink is clicked. It should be noted that the hyperlink selected by the user may also point to local or network files other than http web pages. Further, the hyperlink may merely contain embedded script commands without any URL information so that script commands can be executed by the user by simply clicking on hyperlinks.
In the second approach, the code for the target web page contains a URL with an embedded LOAD SKIN command. Specifically, as an example of one way of embedding this command, the target web page may be defined by at least two frames with one of the frames being an invisible frame of zero height and zero width, but containing an embedded LOAD SKIN command in the URL for this frame. Using standard HTML methods, the first frame points to the URL for the second frame. When browser 140 loads the new target web page primary frame, the embedded LOAD SKIN command in the URL for the second invisible frame is detected and processed by the script processor of browser 140. As a result of this second approach, the skin changes for the new web page without the user needing to click or select any item as or after the web page loads.
The creator of the target web page must have information regarding the browser 140 command set so that the appropriate command syntax is embedded in the target web page. When the user clicks on the hyperlink for the target web page to be loaded, during loading of the target web page, browser 140 detects and processes the LOAD SKIN command and changes the browser skin.
For each of the two approaches above, browser 140 attempts to access the skin files from the appropriate skin folder stored locally on client storage device 126. If this folder is not present, then browser 140 creates a new folder with the appropriate skin name and downloads the skin files in a compressed form from channel server storage device 102. These files are decompressed by browser 140 and stored locally in this new folder.
In addition, for both approaches above, browser 140 preferably intercepts the URL for the skin archive file being downloaded from the server prior to its being passed to the operating system for example, for a MIME type determination. This is done in order to determine if a command is embedded in the URL. By so intercepting the URL, the operating speed of the browser is increased. As an example, the URL may be of the following form: http://www.neoplanet.com/~CMD IMPORT SKIN http://www.neoplanet.com/skin/xxxx Browser 140 will first determine whether the URL contains an embedded command, as is indicated here by the "http://www.neoplanet.com/~CMD" portion of the above URL. Then, browser 140 parses the command "IMPORT SKIN" and sends it to the script processor with its URL as discussed above. If a browser is being used that does not recognize such embedded commands, then the original, full URL can load a web page that directs the user to the appropriate web page operator of the channel server for downloading of a compatible browser. It should be appreciated that by the above approaches, the browser skin is dynamically and automatically changed as a user browses through and loads new web pages. In contrast, prior browsers have required that the user manually place new skin files on the client. In the present invention, the browser automatically detects whether these files are present and retrieves them from the server as necessary without user intervention.
The skin files that are used to customize the appearance of browser may be created using standard techniques known in the art. An example of the creation of skin files suitable for browser 140 is described in the "NeoPlanet Skin Creation" manual published by NeoPlanet, Inc., on its web site at www.neoplanet.com and dated July 13, 1999, which is hereby incorporated herein by reference. It should be noted that the operating system running on browser client 124 may sometimes attempt to paint or color portions of the skin of browser 140 inconsistently with the desired new skin files. Therefore, preferably these painting messages are identified and disabled using standard techniques such as those published by Microsoft for its Windows operating system. The method used by browser 140 to create a customized appearance based on the selected skin files may be one of any conventional skin updating technique.
In addition to the automatic skin updating described above, the user may update the skin for browser 140 manually. Specifically, a pull-down menu activated by a "Skins" button 2430 may present a menu choice to view a Skins Archive. In this archive, a user may view, select, and automatically import a new skin from many possible choices that are presented by pointing and clicking on a new choice using a mouse. By the foregoing, a novel and unobvious browser system and method has been disclosed by way of the preferred embodiment. However, numerous modifications and substitutions may be made without departing from the spirit of the invention. For example, while the preferred embodiment discusses an Internet-based browser, it is wholly within the purview of the invention to contemplate software for accessing other on-line services that are not limited to the Internet, such as subscriber services including AMERICA ON-LINE, in the manner as generally set forth above. Accordingly, the invention has been described by way of illustration rather than limitation.

Claims

1 In a network comprising a plurality of network files, a method for presenting categorized network file location indicators presented by a browser program on a client for selecting files accessible on the network comprising the steps of storing on a server the plurality of categorized file location indicators identifying file locations of the files accessible on the network, selecting a subset of the plurality of categorized file location indicators, storing on the server the subset of the plurality of categorized file location indicators in a channel file used for determining file location indicators corresponding to the subset to be presented by the browser program for the selection of network files, and determining the corresponding file location indicators for presentation by a browser program for selection by transmitting to the client and storing on the client the channel file accessed by the browser program
2 The method of claim 1, comprising selecting at least a first subset and a second subset of the plurality of categorized file indicators
3 The method of claim 2, comprising storing the first and second subsets in a first channel file and a second channel file, respectively, stored on the server
4 The method of claim 3, comprising detecting access to the network by an identifiable user of the client
5 The method of claim 4, comprising identifying the user of the client
6. The method of claim 5, comprising selecting a selected channel file from the first and second channel files depending on the identity of the user, with the selected channel file being transmitted to the client.
7. The method of claim 6, wherein the identity of the user corresponds to membership of the user in one of a plurality of services.
8. The method of claim 1, wherein the step of selecting the subset of the plurality of categorized file location indicators comprises selecting a subset of categories of file location indicators not customizable by a user, with the subset being stored in a non-customizable channel file.
9. The method of claim 8, wherein the step of determining the file location indicators to be presented by the browser program for selecting network files to present on a client comprises transmitting the non-customizable channel file to the client for access by the browser program.
10. The method of claim 9, wherein the step of determining the file location indicators to be presented by the browser program for the selection of network files for presentation on the client further comprises storing the non-customizable channel file on the client for concurrent storage with a user-customizable channel file for allowing the user to select file location indicators from both the non-customizable and customizable channel files.
11. The method of claim 1 wherein the channel file comprises a plurality of items each comprising a label name and a file location indicator and wherein each of the items is stored in the channel file with a unique serial number.
12. The method of claim 11 wherein each item in the channel file corresponds to an item in a channel hierarchy for presentation to a user by the browser program and wherein each item is stored with a designation indicating the item's corresponding parent item in the channel hierarchy.
13. In a network comprising user access by a plurality of network services, a method for dynamically altering customizable features on a browser program on a client comprising the steps of: providing a plurality of files used for presenting customizable features of the browser program; selecting a subset of the plurality of files for presentation of customizable features of the browser program; and presenting the selected subset of files for presenting customizable features of the browser program.
14. The method of claim 13, comprising detecting access to the network by an identifiable user of the client.
15. The method of claim 14, comprising identifying the user of the client.
16. The method of claim 15, comprising selecting the subset of files for presenting customizable features depending on the identity of the user.
17. The method of claim 16, wherein the identity of the user corresponds to membership of the user in one of the plurality of services.
18. The method of claim 17, wherein the subset of files are for presenting customizable features presented during loading of the executable code for the browser program.
19. The method of claim 18, wherein the customizable features for presenting identify the associated service of the plurality of services of which the user is a member.
20. The method of claim 13, wherein the plurality of files are stored on a server on the network.
21. The method of claim 20, wherein the selected subset of files are transmitted to the client for presentation.
22. The method of claim 13, wherein the plurality of files are stored on the client.
23. A method for customizing the appearance of the user interface of a browser running on a client comprising the steps of: storing on the client a skin folder comprising a set of files corresponding to the appearance of the user interface; loading a new web page into the browser; processing a command corresponding to the web page by the browser to make updates to one or more of the files in the skin folder; and updating the user interface based on the updates.
24. A method for controlling the operation of a browser client using command files sent from a server comprising the steps of: sending one or more command files by the server to the browser client; processing the command files by the browser client; and dynamically executing a function of the client corresponding to the at least one of the command files.
PCT/US2000/004546 1999-02-24 2000-02-23 Network browser method and system for controlling browser operation WO2000051394A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU33732/00A AU3373200A (en) 1999-02-24 2000-02-23 Network browser method and system for controlling browser operation

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US25692199A 1999-02-24 1999-02-24
US09/256,921 1999-02-24
US35943699A 1999-07-22 1999-07-22
US09/359,436 1999-07-22

Publications (1)

Publication Number Publication Date
WO2000051394A1 true WO2000051394A1 (en) 2000-08-31

Family

ID=26945681

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/004546 WO2000051394A1 (en) 1999-02-24 2000-02-23 Network browser method and system for controlling browser operation

Country Status (2)

Country Link
AU (1) AU3373200A (en)
WO (1) WO2000051394A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002032032A2 (en) * 2000-10-12 2002-04-18 Seon Yong Yun Advertising system using skin image applied in windows screen of user terminal and advertising method thereof
GB2386440A (en) * 2002-03-12 2003-09-17 Univ Hertfordshire Searching and navigating an information source

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675788A (en) * 1995-09-15 1997-10-07 Infonautics Corp. Method and apparatus for generating a composite document on a selected topic from a plurality of information sources
US5838910A (en) * 1996-03-14 1998-11-17 Domenikos; Steven D. Systems and methods for executing application programs from a memory device linked to a server at an internet site

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675788A (en) * 1995-09-15 1997-10-07 Infonautics Corp. Method and apparatus for generating a composite document on a selected topic from a plurality of information sources
US5838910A (en) * 1996-03-14 1998-11-17 Domenikos; Steven D. Systems and methods for executing application programs from a memory device linked to a server at an internet site

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YOSHINARI A. "Information Management System". December 12, 1995. XP002928365 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002032032A2 (en) * 2000-10-12 2002-04-18 Seon Yong Yun Advertising system using skin image applied in windows screen of user terminal and advertising method thereof
WO2002032032A3 (en) * 2000-10-12 2006-04-13 Seon Yong Yun Advertising system using skin image applied in windows screen of user terminal and advertising method thereof
GB2386440A (en) * 2002-03-12 2003-09-17 Univ Hertfordshire Searching and navigating an information source

Also Published As

Publication number Publication date
AU3373200A (en) 2000-09-14

Similar Documents

Publication Publication Date Title
US6216141B1 (en) System and method for integrating a document into a desktop window on a client computer
US5761662A (en) Personalized information retrieval using user-defined profile
US6041326A (en) Method and system in a computer network for an intelligent search engine
US5802299A (en) Interactive system for authoring hypertext document collections
JP4565004B2 (en) Integration of personalized portal and web content syndication
US5781909A (en) Supervised satellite kiosk management system with combined local and remote data storage
US7085994B2 (en) Snippet selection
US6237030B1 (en) Method for extracting hyperlinks from a display document and automatically retrieving and displaying multiple subordinate documents of the display document
US6571245B2 (en) Virtual desktop in a computer network
US6256028B1 (en) Dynamic site browser
US5761683A (en) Techniques for changing the behavior of a link in a hypertext document
US6850255B2 (en) Method and apparatus for accessing information, computer programs and electronic communications across multiple computing devices using a graphical user interface
US6480852B1 (en) Method and system for rating bookmarks in a web browser
US6119135A (en) Method for passively browsing the internet using images extracted from web pages
EP1008104B1 (en) Drag and drop based browsing interface
US9020904B2 (en) Methods, systems and products for generating web pages
US6209027B1 (en) Recirculating network address list with single button sequencer/selector
US20020194151A1 (en) Dynamic graphical index of website content
EP2278503A2 (en) Browser apparatus with address registering and browser system
US20020111865A1 (en) Tracking user micro-interactions with web page advertising
US20040054968A1 (en) Web page with system for displaying miniature visual representations of search engine results
US20050273718A1 (en) System and method of routine navigation
EP1450272A2 (en) Technique for changing views of web content
EP0918424A2 (en) Automatic association of predefined user data with query entry fields
US20030009489A1 (en) Method for mining data and automatically associating source locations

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AL AM AT AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ CZ DE DE DK DK DM EE EE ES FI FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SK SL TJ TM TR TT TZ UA UG US US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase