WO2001029701A2 - Methods and systems for providing load dependent content - Google Patents

Methods and systems for providing load dependent content Download PDF

Info

Publication number
WO2001029701A2
WO2001029701A2 PCT/CA2000/001100 CA0001100W WO0129701A2 WO 2001029701 A2 WO2001029701 A2 WO 2001029701A2 CA 0001100 W CA0001100 W CA 0001100W WO 0129701 A2 WO0129701 A2 WO 0129701A2
Authority
WO
WIPO (PCT)
Prior art keywords
load
content
load indicator
web page
server
Prior art date
Application number
PCT/CA2000/001100
Other languages
French (fr)
Other versions
WO2001029701A3 (en
Inventor
Jobe L. W. Roberts
Mitch M. Brisebois
Marilyn M. French-St. George
Jamie Littlejohn
Original Assignee
Nortel Networks Limited
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 Nortel Networks Limited filed Critical Nortel Networks Limited
Priority to KR1020027005134A priority Critical patent/KR20020043231A/en
Priority to AU73994/00A priority patent/AU7399400A/en
Priority to CA002388311A priority patent/CA2388311A1/en
Publication of WO2001029701A2 publication Critical patent/WO2001029701A2/en
Publication of WO2001029701A3 publication Critical patent/WO2001029701A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • 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/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management

Definitions

  • the invention relates to systems and methods for improving the performance of servers and/or web content delivery during periods of increased load.
  • Servers on the Internet experience peak load periods at certain times of the day, such as during the lunch hour, after dinner, or immediately after a television commercial for a web site provided by a given server.
  • the contents of a given web page are traditionally thought of as being static with everyone getting the same page.
  • Various embodiments of the invention provide methods and systems for controlling the content of what is downloaded from a server as a function of a load indicator.
  • this allows a larger number of users to be served in a timely manner when there is congestion, either at the server itself, and/or on the network.
  • the selection of what to download may be made at the server, or at a client terminal which either initially has the functionality to make this selection, or which is downloaded code which gives it this functionality.
  • the load indicator may be indicative of server load, network load, or some other suitable load, and may be obtained using any suitable mechanism. For example, a test image may be downloaded to a client computer, and the time taken to download the rest image measured. This time can be used as a measure or load. Alternatively, the load indicator may be obtained by reading directly how busy a router is, by monitoring how many requests are being served and how large each request is, and based upon this determining the load indicator, or by having a plurality of independent machines timing a download, and determining the load indicator on the basis of the timing for one of the independent machines physically closest to the customer's location.
  • Embodiments of the invention also provide an article of manufacture having a computer usable medium having computer readable program code means embodied therein for providing load dependent content, the computer readable code means in said article of manufacture being for controlling functionality of a server and/or a client computer to implement methods described above.
  • a customer adjustment mechanism is provided by which a customer can select a preferred content level, and the content to be downloaded is then selected as a function of one or both of the load indicator and the preferred content level. Furthermore, preferably a reading of a customer's connection speed is also made and factored into the selection of what content to download.
  • a reporting mechanism is provided for logging which versions of the web page was loaded by the customers and how often.
  • a report may be generated informing the provider of the web page whether or not they should purchase more bandwidth to serve richer content more often.
  • these approaches may be applied to dynamically vary page content with several web servers. This is applicable when several servers mirror the same web site content or when a web site is divided up into sections to be served by several servers .
  • Another embodiment of the invention provides a web page design tool which has an input mechanism for selecting multiple versions of a downloadable object forming part of a web page; and an input mechanism for selecting load dependent circumstances under which each of the multiple versions of the downloadable object are to be downloaded.
  • a performance evaluation mechanism is also provided which displays the web page as a function of a user selectable simulated load.
  • the size of the web page may also be displayed as a function of the user selectable simulated load.
  • the tool determines a number of users of the web page which could be serviced given its current design, and for the user selectable simulated load.
  • the web page design tool may also include a selection mechanism for selecting different content for different customer categories.
  • Figure 1 is a schematic diagram of an example network within which embodiments of the invention may be applied;
  • Figure 2 is a flowchart for the use of a test file for determining a load indicator
  • Figure 3 is a flowchart for the use of a router measurement for determining a load indicator
  • Figure 4 is a flowchart for using page hit rate information for determining a load indicator
  • Figure 5 is a flowchart for using independent measurements for determining a load indicator
  • Figure 6 is a flowchart for a method of incorporating a customer's connection speed measurement into determining what load dependent content to download;
  • Figure 7 is a flowchart for a method of incorporating a customer adjustment measurement into determining what load dependent content to download
  • Figure 8 is a high level flowchart for determining what load dependent content to download
  • Figures 9A and 9B are examples of GUI screens for selecting load dependent content
  • Figure 10 is an example of a GUI screen for providing performance overview tools
  • Figure 11 is an example of a GUI screen for selecting customer dependent content ;
  • Figure 12 is a schematic of another network featuring a registry according to an embodiment of the invention.
  • Figure 13 is a flowchart for a method of using the registry of Figure 12 to control access by servers or web pages to the load dependent content features;
  • Figure 14 is an example of a GUI screen for providing page view hit rate information
  • Figure 15 is an example of a screen-based mechanism for allowing a customer to control the level of content displayed
  • Figure 16 is an example of web page tree displays for different loads.
  • Figures 17 and 18 are flowcharts for embodiments in which the server controls load dependent content read from a database .
  • a server 10 on which is located a web site 11 which has been implemented in accordance with the invention to contain and/or provide load dependent content.
  • the server 10 is accessible through the Internet 12 by IP capable network terminals, one 14 of which is shown.
  • the IP capable terminal 14 might access the Internet 12 through an access point 16 such as an Internet service provider or a proxy server for example.
  • the IP capable terminal 14 is equipped with an Internet browser 15, and operating system software. While the description will focus on embodiments which provides load dependent content in the context of an IP capable terminal connected to the internet, more generally it is applicable to any packet based terminal connected through a packet network to a server.
  • the web site 11 contains more than one version of a display element, and these different versions are of varying complexity, but importantly, take a different amount of time to be downloaded.
  • a display element is any individually downloaded portion of a web page.
  • a typical web page is comprised of a group of display elements .
  • a display element might be an image for example, and the different versions might be, in increasing order of complexity, a low-resolution jpeg image, a high resolution jpeg image, and a . avi or .mov video clip.
  • the web site 11 contains a downloadable HTML page which when downloaded to the IP capable terminal 14 transform the IP capable terminal into a client 18 of the web site 11.
  • the HTML page either contains a load indicator or instructions (for example javascript or Java applet) to obtain a load indicator as discussed in detail below.
  • the load indicator is somehow indicative of load.
  • this load indicator might be indicative of server load, network load, load over a path between the server 10 and the IP capable terminal 14. or a representative load previously recorded for a location in the vicinity of the IP capable terminal 14.
  • a load reader is provided to determine the load indicator.
  • the HTML page may contain the load reader per se, or instructions to obtain the load indicator from the load reader running on the server.
  • the HTML page also contains a "dynamic content module" which requests the download of the display element, and more particularly requests different versions of the display element from the web site 11 as a function of the load indicator.
  • different versions of the audio are also provided in increasing order of data size.
  • the data size might, for example, vary with compression, duration and sampling rate.
  • the various versions of the audio are downloaded dependent upon the load indicator as is the case for any other type of display element .
  • the load indicator is any quantity which may be used to indicate load.
  • the client 18 makes a request for the load indicator.
  • the load indicator may be included in the content initially downloaded to the client 18.
  • the server 10 downloads a test image (for example a logo) to the client 18 and times a response back, and uses this time as an indication of server load which can then be downloaded to the client 18.
  • a test image for example a logo
  • Clearly increased response time reflects an increased load on resources used to transmit from the server to the IP capable terminal.
  • This increased load may reflect a general increased load on the Internet 12 , or an increased load on the particular server 10. It is to be understood that there are many ways of implementing this test image approach.
  • a flowchart for one approach is shown in Figure 2.
  • the server 10 sends the client 18 (customer's browser) an HTML page containing instructions, such as Javascript and/or dHTML code for example.
  • the client's machine 14 is instructed by the code to start a timer and then request a file such as a jpeg (image file) . Once the file has finished downloading, the timer stops and the value is stored either on the client side or on the server side as a reference. This reference value is then used as the load indicator which determines which files will be downloaded over the network, ensuring in most cases that the customer does not have to wait too long.
  • a file such as a jpeg (image file)
  • the server 10 may be equipped to maintain performance statistics which include some measurement of load which can be used as the load indicator and be downloaded to the client 18 automatically or upon request.
  • performance statistics which include some measurement of load which can be used as the load indicator and be downloaded to the client 18 automatically or upon request.
  • FIG 3. A flowchart for an example of implementing this approach is shown in Figure 3.
  • the server 10 directly reads how busy the router is with which it connects to the Internet 12. This value is sent to the client 18 (customer's browser) in an HTML page as a header (a value in the page) . The value is then used as the load indicator.
  • the server 10 maintains a count of how many requests it is serving and how large each of the requests are. Based on this information it calculates its capacity/load indicator. This value is sent to the client 18 (customer's browser) in an HTML page as a header (a value in the page) . The value is then used as the load indicator which determines which files are downloaded.
  • the load indicator is somewhat real-time in nature, meaning that a fairly current indication of the load is used.
  • the load indicator may simply be some empirical function of time which statistically is indicative of load.
  • the contents of a web site may dynamically change as a function of historical page view hit patterns. For instance every day at noon, the server might be busier, so the content for that period would be decreased. This would be the least accurate (although still effective to some degree) .
  • an independent machine or a number of independent machines distributed geographically have timers which are started when they make requests to a company's web server. Once the requests have been finished, the timer is stopped and a value is recorded by the server 10. This process can be repeated many times an hour.
  • the server 10 receives a request for a web page from a client, the web server identifies the customer's location based on the IP address.
  • the server 10 sends the client 18 an HTML page with the value from the independent machine that is physically closest to the customer's location.
  • the server 10 sends the client 18 an HTML page with instructions to request the value from the machine that is physically closest to the customer's location. This value is then used as the load indicator. Additional Factors
  • load indicator is always • somehow indicative of load
  • additional factors may be considered in deciding which version of the display element to request. For example, a probe of the client's connection speed (determined by the modem at the IP capable terminal) may be made, and this speed factored into the decision. The connection speed is then considered in addition to the load indicator to determine which version of the display element to request.
  • FIG. 6 A flowchart for one method of measuring the customer's connection speed is shown in Figure 6.
  • the server 10 sends the client 18 an HTML page which contains code (for example Javascript and/or dHTML code) which instructs the client's browser 15 to read the connection speed directly from the machine's 14 operating system's settings.
  • the connection speed reading is saved as a value either locally on the client side or on the server side.
  • the value is then used together with the load indicator to determine which files will be downloaded over the network.
  • a customer adjustment control mechanism is provided through which a user of the IP capable terminal 14 may select a level of content .
  • a level of content This might for example be provided in the form of a slider mechanism.
  • the level of content selected by the user is then considered in addition to the load indicator to determine which version of the display element to request.
  • FIG. 7 A flowchart for such a customer adjustment measurement mechanism is shown in Figure 7.
  • the server 10 sends the client 18 a page containing code which causes a page to be displayed which contains a popup menu, slider, or some other mechanism which allows the customer to set a desired content value.
  • the value entered/set by the customer will be saved locally on the client side or on the server. This value is then used together with the load indicator to determine which files will be downloaded over the networ .
  • the dynamic content module is responsible for determining the content which is to be downloaded as a function of the load indicator. As indicated below, additional "content criteria" may be applied in determining the content which is to be downloaded. Any appropriate technology may be used to implement this function. It may for example be implemented in Javascript, Java applet, dynamic HTML, XML, another tags program or version, or an integrated browser mechanism.
  • FIG. 8 A flowchart for the dynamic content module's processing for a particular display element is shown in Figure 8.
  • the dynamic content module is preferably downloaded to the client 18 from the server 10.
  • the dynamic content module obtains the load indicator and any other applicable content criteria and determines which version to be downloaded on the basis of the load indicator and the content criteria.
  • the dynamic content module requests the appropriate object files to be downloaded from the server 10. The page is then displayed on the browser.
  • An object editor is preferably provided for a web page designer to select a page object and create an object substitution list. It is launched for example upon selection of a particular object/object location in a web page under construction. It allows a web page designer to set predetermined variants of a page object which may vary in size and or quality. Each variant is set to be activated under certain load conditions.
  • GUI graphical user interface
  • Figure 9A An example of a GUI (graphical user interface) screen through which a designer may interact with the object editor is shown in Figure 9A, and is generally indicated by 30.
  • a sample web page 32 under construction is shown behind the GUI screen 30 where it has been assumed that a user has selected the image 34 of Big Ben to be modified to have load dependent content.
  • the GUI 30 provides a top portion 31 containing version identifier fields 36,38,40,42 for the identification of a number of different versions of a display element of which four are shown in the illustrated example.
  • a standard file hierarchy browsing mechanism is provided to facilitate selection of the desired files as indicated by file folder icons 44. As each object file is selected, preferably it is displayed and previewed on the web page 32.
  • each version identifier field 36,38,40,42 there is a mechanism provided to select a range of load conditions under which to display the version identified. This is preferably selected in accordance with a percentage of maximum load as indicated by the load indicator above which a particular version is to be displayed.
  • 95+ has been selected as a threshold condition 46 for the display of the version blank.jpg 36. This means that only when the server condition is at S5% or above will the version blank.jpg be displayed.
  • the threshold 65+ has been entered as the threshold condition 48 for the display of the version lowben.gif 38. This means that when the server condition is between 65% and 95%, the version lowben.gif will be displayed.
  • thresholds of 45+ and 0+ have been entered as the threshold conditions 50,52 for bigben.jpg 40, and aniben.mov 42 respectively. "Add” and “Remove” buttons may be provided to add an additional version identifier field or to remove an existing one. While "server condition" is used to indicate the load indicator thresholds, any suitable load indicator thresholds may be employed.
  • the middle portion 60 of the GUI 30 displays information respecting a selected one of the versions identified in the version identifier fields. Selecting which version to have its information displayed may be accomplished by highlighting one of the circles 56 adjacent to the version name, for example by executing a mouse click on the circle. In the illustrated example, the bottom 42 of the four versions has been selected.
  • the information displayed in the middle portion 60 consists of the size of the object, the object type 64, and an estimated download time 62 for a particular selectable modem speed 68.
  • a bottom portion 70 of the GUI 30 may be provided to display further information, for example the selected object's width 72, height 74 and border 76, in selectable units 78.
  • Other standard HTML editor functions may also be included (not shown) .
  • the object editor After completion of the fields in the GUI 30, the object editor generates appropriate code for inclusion as part of the HTML page which will be downloaded to the client 18.
  • This code will depend upon the particular language used in the page .
  • the code that will be generated will preferably be "javascript" which is read and executed by the browser (in the current instantiation of the invention) .
  • the javascript code generated could be completely unique to the given page, or it could be the same every time with only some parameters which are changed and acted on for each page .
  • the object editor may generate XML tags, (or some other tags) which would be read by the browser, a Java applet, or a javascript routine which would know how to interpreted the tags and execute code that is necessary to display the appropriate content .
  • tags are simply parameters (for instance: when the server is busy show a blank image for this object, when the server is not busy show the colour image) .
  • varying content can be selected for images with the above exemplified table of substitutions.
  • varying content can be selected for links which appear in a web page by providing a table of link substitutions, and varying content can be selected for text which appears in a web page by providing a table of text block substitutions. For each of these tables of substitutions, criteria may be selected to determine which individual objects are to be displayed for which ranges of the load indicator.
  • Figure 9B is an example of a GUI screen through which a designer may interact with a link editor function, generally indicated by 150.
  • a sample web page 32 under construction is shown behind the GUI screen 150 where it has been assumed that a user has selected the link object 152 to be modified to have load dependent content.
  • the GUI 150 has multiple server condition points 154,156 (only two shovm) which allow the designer to define various server load ranges under which particular links will be displayed. For each server condition, there is a field 158,160 for entering the text which is to be displayed on the page, and at field 162,164 for specifying the URL of the link.
  • a remove link button 166 is provided for removing such a link
  • a browse files button 168 is provided to assist in the selection of the link.
  • the upper portion of the display 150 relates to a server condition of 95+, while the lower portion of the display relates to a server condition of 0+.
  • the link identified by the lower portion will be displayed for conditions in which the server load is between 0 and 95 percent.
  • One of the two portions of the GUI 150 can be selected by clicking in the appropriate circle 174,176 for example and then removed or added using remove and add buttons 178,180 respectively.
  • the background display 32 is updated to show how this would affect the display.
  • the GUI is capable of presenting a page hierarchy of the web site as a function of the busyness of the server and the links which have been selected for each different load condition.
  • An example of this is shown at Figure 16 where for a first server condition point there is a first page hierarchy 200 for when the server is busy and as such there are less pages involved in the link hierarchy.
  • a second hierarchy 202 is shown for the case in which the server is calm and as such there are more web pages for each section of the web site.
  • Such a hierarchy would be constructed from the links embedded in each page.
  • ranges may be selected for application to a common content level . For example, there may be three content levels which are commonly defined for all objects which have load dependent content.
  • a completely different layout can be displayed depending upon the load indicator.
  • Another embodiment of the invention provides a tool for observing the appearance and performance of a web page designed using load dependent content.
  • the tool preferably determines the total web page size as a function of load by adding up the size of all the objects and text to be displayed for different values of load. For instance, when the server is 95% busy the object sizes on the page might add up to 10K, but when the server is 25% busy, the object sizes on the page might add up to 200K.
  • the object sizes for a given server condition are known.
  • it calculates an approximate download time for the entire page at a respective load, and for a selectable modem rate. It also calculates the number of objects on the web page as a function of load, and determines the total number of objects available.
  • the overview tool knows the page size by having added up ail the objects on the page at each server condition, it can then roughly predict how ma y simultaneous page views by customers can be handled by a given amount of bandwidth. Inversely, it can roughly predict how much bandwidth is needed to deliver a set number of pages of a given size simultaneously. These numbers are essentially guide lines for the web page designer to work with.
  • an interface is preferably provided for accessing page view hit rate information.
  • the hit rate information typically indicates the number of page views which have occurred at different times of the day.
  • An example of this is provided in Figure 14 where page view hit rate information is shown on a daily basis for a portion of a particular month. Preferably, such information would selectably be displayed on an hourly, daily, weekly, monthly or even yearly basis.
  • the information computed and/or made available through the performance overview tool may be presented in a GUI screen 100 such as illustrated by way of example in Figure 10 which is shown overlaying the web page 32 being observed.
  • the top portion 101 of the GUI screen 100 prevents a slider 102 which may be moved, for example with a mouse, between the two extremes in load, namely 100% busy 104, and 0% busy 106.
  • a preview of the entire web page 32 which would be displayed for that load condition is presented.
  • the slider 102 simulates different server conditions and the web page's 32 corresponding look and feel .
  • the total page size 110 and a range of page sizes 111, estimated download time 112, total number of objects on the page 114, total number of objects available 116 are displayed in a middle portion 109 of the GUI screen 100.
  • GUI screen 100 the number of page views supported by a given capacity is shown 122, and the bandwidth 124 to serve a selectable number 126 of page views/day is displayed.
  • the "show me” button 130 is preferably provided as an interface to the hit rate information.
  • a mechanism for logging which versions of the web page are loaded by the customers and how often.
  • a report may be generated informing the provider of the web page whether or not they should purchase more bandwidth to serve richer content more often.
  • the reporting mechanism preferably answers questions such as how effective are the media messages in converting browsers to buyers, how many extra customers are served because load dependent content was employed, is the web site over designed or is more bandwidth required.
  • these approaches may be applied to dynamically vary page content with several web servers . This is applicable when several servers mirror the same web site content or when a web site is divided up into sections to be served by several servers .
  • the reports generated by those embodiments of the invention would report on which content would be delivered by each and/or all of the servers (if need be, consolidating the reports into one) .
  • a mechanism is provided to override the server condition points for selected customers.
  • groups of customers are categorized together to receive the same treatment .
  • Customers might for example be categorized in groups labeled “gold” , “silver” , “bronze” and “unknown” with one of the above overrides being optionally applied to each customer group.
  • An example of a GUI screen 122 for controlling the override applied to different groups is shown in Figure 11.
  • the customers screen 122 and the previously discussed priorities screen 30 are accessible by two selectable tabs 121,31 labeled "customers” and "priorities”.
  • an override selection entry field 123 is provided which when selected results in a pulldown menu 124 with each of the above identified above six options listed. A user can then select one of the options for the particular group.
  • a Sequential Loading Editor function is provided which allows the web page designer to specify which object is the most important on the web page, which would be loaded first before any other object is loaded.
  • the tool consists of a mechanism which would let the designer pick the object (such as drag and drop, or simply by typing the name of the object) .
  • a mechanism which allows a customer to set which version of the web site they would like to see.
  • This could be provided instead of the above discussed automated load based content provision, or in addition thereto.
  • a user might be capable of selecting between three content levels, these being streamlined, standard, and full experience.
  • HTML code downloaded to the user's machine will then proceed with requesting the appropriate level of content from the server.
  • This option could be provided each time a customer visits a particular web site, the first time they ever visit the web site, or for only certain pages. This would be specifiable by the web site designer.
  • FIG. 15 An example of a display mechanism which could be used to implement this is shown in Figure 15 in which a screen portion has three separate areas labeled streamlined 150, standard 152, and full experience 156. By selecting one of the three with a mouse for example the user will be able to control what content is downloaded for the particular page.
  • FIG. 12 Another embodiment of the invention provides a mechanism for controlling access to the above-described load- dependent methods and systems.
  • a version of Figure 1 is shown in which an additional component, namely a registry 19, is shown.
  • the registry 19 identifies web pages or internet service providers which are allowed to provide the load-dependent functionality, for example by maintaining or storing credit for such web pages or internet service providers.
  • FIG. 13 A flowchart of a method provided by an embodiment of the invention in the presence of the above referenced registry 19 is shown in Figure 13.
  • the client browser 15 requests an HTML page from the server 10.
  • the server downloads an HTML page which contains instructions, for example in javascript.
  • the page may also contain a load indicator, although this may alternatively be obtained using any mechanism whatsoever, including any of the mechanisms described previously.
  • the instructions send the load indicator and the server identity to the registry 19.
  • the registry stores in its database the load indicator for the server identified.
  • the registry 19 verifies to see that the particular server or web page has permission to provide load- dependent content. If there is permission, then the registry 19 returns to the client browser 15 a value that allows the remainder of the instructions to work. Alternatively, if there is no permission, the registry 19 returns a value to the browser 15 that prohibits the remainder of the instructions from executing.
  • it is client software which is downloaded to the user's IP capable terminal 14 which determines which versions of various objects to request for download on the basis of a load indicator.
  • the contents of the web page downloaded to each user are determined at the server side.
  • Database-driven web pages are well known. When a customer accesses a web page, the web page is built in real time by accessing a database of objects.
  • the database itself is adapted to provide one of several versions of an object on the basis of a load indicator.
  • the server accesses a different database object dependent upon the load indicator and builds a web page containing these obi ect ⁇ .

Abstract

Methods and systems are provided for controlling the content of what (11) is downloaded from a server (10) as a function of a load indicator. Advantageously, this allows a larger number of users (18) to be served in a timely manner when there is congestion, either at the server itself, and/or on the network (12). The selection of what to download may be made at the server (10), or at a client terminal (14) which either initially has the functionality to make this selection, or which is downloaded code which gives it this functionality. The load indicator (8-1) may be indicative of server load, network load, or some other suitable load, and may be obtained using any suitable mechanism. For example, a test image may be downloaded (2-2) to a client computer (14), and the time taken to download the test image measured (2-3). This time can be used as measure of load. Alternatively, the load indicator may be obtained by reading directly how busy a router is (3-1), by monitoring how many requests are being served and how large each request is (4-1), and based upon this determining the load indicator, or by having a plurality of independent machines timing a download (5-1), and determining the load indicator on the basis of the timing for one of the independent machines physically closest to the customer's location.

Description

METHODS AND SYSTEMS FOR PROVIDING
LOAD DEPENDENT CONTENT
FIELD OF THE INVENTION
The invention relates to systems and methods for improving the performance of servers and/or web content delivery during periods of increased load.
BACKGROUND OF THE INVENTION
Servers on the Internet experience peak load periods at certain times of the day, such as during the lunch hour, after dinner, or immediately after a television commercial for a web site provided by a given server. The contents of a given web page are traditionally thought of as being static with everyone getting the same page.
Unacceptable delays may result for Internet users during these peak load periods . This is a recognized problem, and there are several existing approaches to dealing with it. One common approach is to simply purchase more bandwidth and/or more servers thereby providing excess capacity which goes unused the majority of the time. Another approach is to place a group of highly valued customers on special servers with more resources. This reduces the cost to a company paying for the Internet resources for customers which are of lesser value, for example customers which use the web site more, but make fewer purchases. In yet another approach, attempts are made to predict when peak usage will occur and then more bandwidth is purchased for those periods only. All of these approaches attack the problem by making modifications to the network, and of course this necessarily increases the cost of providing a web page. These approaches are not always even applicable. For example, an individual web page provider may not be interested in the problems of the network as a whole, and may not be in a position to purchase more bandwidth or equipment. There is a need for a more flexible approach to dealing with the problem of peak load periods .
Yet another common solution is to reduce the web page sizes to 3 OK or less. The problem with this is that the resulting web pages are boring.
SUMMARY OF THE INVENTION
It is an object of the invention to obviate or mitigate one or more of the above-identified disadvantages.
Various embodiments of the invention provide methods and systems for controlling the content of what is downloaded from a server as a function of a load indicator. Advantageously, this allows a larger number of users to be served in a timely manner when there is congestion, either at the server itself, and/or on the network. The selection of what to download may be made at the server, or at a client terminal which either initially has the functionality to make this selection, or which is downloaded code which gives it this functionality.
The load indicator may be indicative of server load, network load, or some other suitable load, and may be obtained using any suitable mechanism. For example, a test image may be downloaded to a client computer, and the time taken to download the rest image measured. This time can be used as a measure or load. Alternatively, the load indicator may be obtained by reading directly how busy a router is, by monitoring how many requests are being served and how large each request is, and based upon this determining the load indicator, or by having a plurality of independent machines timing a download, and determining the load indicator on the basis of the timing for one of the independent machines physically closest to the customer's location.
Embodiments of the invention also provide an article of manufacture having a computer usable medium having computer readable program code means embodied therein for providing load dependent content, the computer readable code means in said article of manufacture being for controlling functionality of a server and/or a client computer to implement methods described above.
Preferably, a customer adjustment mechanism is provided by which a customer can select a preferred content level, and the content to be downloaded is then selected as a function of one or both of the load indicator and the preferred content level. Furthermore, preferably a reading of a customer's connection speed is also made and factored into the selection of what content to download.
Preferably a reporting mechanism is provided for logging which versions of the web page was loaded by the customers and how often. A report may be generated informing the provider of the web page whether or not they should purchase more bandwidth to serve richer content more often.
Preferably, these approaches may be applied to dynamically vary page content with several web servers. This is applicable when several servers mirror the same web site content or when a web site is divided up into sections to be served by several servers .
Another embodiment of the invention provides a web page design tool which has an input mechanism for selecting multiple versions of a downloadable object forming part of a web page; and an input mechanism for selecting load dependent circumstances under which each of the multiple versions of the downloadable object are to be downloaded. Preferably, a performance evaluation mechanism is also provided which displays the web page as a function of a user selectable simulated load. The size of the web page may also be displayed as a function of the user selectable simulated load. Furthermore, preferably the tool determines a number of users of the web page which could be serviced given its current design, and for the user selectable simulated load.
The web page design tool may also include a selection mechanism for selecting different content for different customer categories.
Other embodiments of the invention provide a server, a browser, articles of manufacture having computer readable code embodied therein for providing a load-dependent browsing capability, a memory for storing data for access by an application program being executed on a data processing system, to facilitate the provision of load-dependent content, and a computer data signal embodied in a transmission medium carrying a source code segment for obtaining a load indicator and a source code segment for controlling subsequently downloaded material as a function of the load indicator. Preferably, a mechanism is also provided for controlling access to the load-dependent content capability, for example by providing a registry which identifies which servers or web pages have permission to use the capability.
BRIEF DESCRIPTION OF THE DRAWINGS
Preferred embodiments of the invention will now be described with reference to the attached drawings in which:
Figure 1 is a schematic diagram of an example network within which embodiments of the invention may be applied;
Figure 2 is a flowchart for the use of a test file for determining a load indicator;
Figure 3 is a flowchart for the use of a router measurement for determining a load indicator;
Figure 4 is a flowchart for using page hit rate information for determining a load indicator;
Figure 5 is a flowchart for using independent measurements for determining a load indicator;
Figure 6 is a flowchart for a method of incorporating a customer's connection speed measurement into determining what load dependent content to download;
Figure 7 is a flowchart for a method of incorporating a customer adjustment measurement into determining what load dependent content to download;
Figure 8 is a high level flowchart for determining what load dependent content to download; Figures 9A and 9B are examples of GUI screens for selecting load dependent content;
Figure 10 is an example of a GUI screen for providing performance overview tools;
Figure 11 is an example of a GUI screen for selecting customer dependent content ;
Figure 12 is a schematic of another network featuring a registry according to an embodiment of the invention;
Figure 13 is a flowchart for a method of using the registry of Figure 12 to control access by servers or web pages to the load dependent content features;
Figure 14 is an example of a GUI screen for providing page view hit rate information;
Figure 15 is an example of a screen-based mechanism for allowing a customer to control the level of content displayed;
Figure 16 is an example of web page tree displays for different loads; and
Figures 17 and 18 are flowcharts for embodiments in which the server controls load dependent content read from a database .
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
Referring firstly to Figure 1, shown is a server 10 on which is located a web site 11 which has been implemented in accordance with the invention to contain and/or provide load dependent content. The server 10 is accessible through the Internet 12 by IP capable network terminals, one 14 of which is shown. The IP capable terminal 14 might access the Internet 12 through an access point 16 such as an Internet service provider or a proxy server for example. The IP capable terminal 14 is equipped with an Internet browser 15, and operating system software. While the description will focus on embodiments which provides load dependent content in the context of an IP capable terminal connected to the internet, more generally it is applicable to any packet based terminal connected through a packet network to a server.
In a first embodiment, the web site 11 contains more than one version of a display element, and these different versions are of varying complexity, but importantly, take a different amount of time to be downloaded. A display element is any individually downloaded portion of a web page. A typical web page is comprised of a group of display elements . A display element might be an image for example, and the different versions might be, in increasing order of complexity, a low-resolution jpeg image, a high resolution jpeg image, and a . avi or .mov video clip.
The web site 11 contains a downloadable HTML page which when downloaded to the IP capable terminal 14 transform the IP capable terminal into a client 18 of the web site 11. The HTML page either contains a load indicator or instructions (for example javascript or Java applet) to obtain a load indicator as discussed in detail below. The load indicator is somehow indicative of load. For example, this load indicator might be indicative of server load, network load, load over a path between the server 10 and the IP capable terminal 14. or a representative load previously recorded for a location in the vicinity of the IP capable terminal 14. A load reader is provided to determine the load indicator. The HTML page may contain the load reader per se, or instructions to obtain the load indicator from the load reader running on the server.
The HTML page also contains a "dynamic content module" which requests the download of the display element, and more particularly requests different versions of the display element from the web site 11 as a function of the load indicator.
For web pages having audio content which is downloaded to the client 18 of the web site 11, preferably different versions of the audio are also provided in increasing order of data size. The data size might, for example, vary with compression, duration and sampling rate. The various versions of the audio are downloaded dependent upon the load indicator as is the case for any other type of display element .
Load Indicator
The load indicator is any quantity which may be used to indicate load. Preferably, the client 18 makes a request for the load indicator. However, alternatively the load indicator may be included in the content initially downloaded to the client 18.
In one embodiment, the server 10 downloads a test image (for example a logo) to the client 18 and times a response back, and uses this time as an indication of server load which can then be downloaded to the client 18. Clearly increased response time reflects an increased load on resources used to transmit from the server to the IP capable terminal. This increased load may reflect a general increased load on the Internet 12 , or an increased load on the particular server 10. It is to be understood that there are many ways of implementing this test image approach. A flowchart for one approach is shown in Figure 2. First, the server 10 sends the client 18 (customer's browser) an HTML page containing instructions, such as Javascript and/or dHTML code for example. The client's machine 14 is instructed by the code to start a timer and then request a file such as a jpeg (image file) . Once the file has finished downloading, the timer stops and the value is stored either on the client side or on the server side as a reference. This reference value is then used as the load indicator which determines which files will be downloaded over the network, ensuring in most cases that the customer does not have to wait too long.
In another embodiment, the server 10 may be equipped to maintain performance statistics which include some measurement of load which can be used as the load indicator and be downloaded to the client 18 automatically or upon request. A flowchart for an example of implementing this approach is shown in Figure 3. First, the server 10 directly reads how busy the router is with which it connects to the Internet 12. This value is sent to the client 18 (customer's browser) in an HTML page as a header (a value in the page) . The value is then used as the load indicator.
In another example depicted in Figure 4 of a performance statistic available directly at the server 10, the server 10 maintains a count of how many requests it is serving and how large each of the requests are. Based on this information it calculates its capacity/load indicator. This value is sent to the client 18 (customer's browser) in an HTML page as a header (a value in the page) . The value is then used as the load indicator which determines which files are downloaded.
Preferably, as in each of the above examples, the load indicator is somewhat real-time in nature, meaning that a fairly current indication of the load is used. However, in another embodiment, the load indicator may simply be some empirical function of time which statistically is indicative of load. For example, the contents of a web site may dynamically change as a function of historical page view hit patterns. For instance every day at noon, the server might be busier, so the content for that period would be decreased. This would be the least accurate (although still effective to some degree) .
In another embodiment depicted in the flowchart of Figure 5, an independent machine or a number of independent machines distributed geographically have timers which are started when they make requests to a company's web server. Once the requests have been finished, the timer is stopped and a value is recorded by the server 10. This process can be repeated many times an hour. When the server 10 receives a request for a web page from a client, the web server identifies the customer's location based on the IP address. In one alternative, the server 10 sends the client 18 an HTML page with the value from the independent machine that is physically closest to the customer's location. Alternatively, the server 10 sends the client 18 an HTML page with instructions to request the value from the machine that is physically closest to the customer's location. This value is then used as the load indicator. Additional Factors
While the load indicator is always somehow indicative of load, additional factors may be considered in deciding which version of the display element to request. For example, a probe of the client's connection speed (determined by the modem at the IP capable terminal) may be made, and this speed factored into the decision. The connection speed is then considered in addition to the load indicator to determine which version of the display element to request.
A flowchart for one method of measuring the customer's connection speed is shown in Figure 6. First, the server 10 sends the client 18 an HTML page which contains code (for example Javascript and/or dHTML code) which instructs the client's browser 15 to read the connection speed directly from the machine's 14 operating system's settings. The connection speed reading is saved as a value either locally on the client side or on the server side. The value is then used together with the load indicator to determine which files will be downloaded over the network.
In another embodiment, a customer adjustment control mechanism is provided through which a user of the IP capable terminal 14 may select a level of content . This might for example be provided in the form of a slider mechanism. The level of content selected by the user is then considered in addition to the load indicator to determine which version of the display element to request.
A flowchart for such a customer adjustment measurement mechanism is shown in Figure 7. To begin, the server 10 sends the client 18 a page containing code which causes a page to be displayed which contains a popup menu, slider, or some other mechanism which allows the customer to set a desired content value. The value entered/set by the customer will be saved locally on the client side or on the server. This value is then used together with the load indicator to determine which files will be downloaded over the networ .
Dynamic Content Module
The dynamic content module is responsible for determining the content which is to be downloaded as a function of the load indicator. As indicated below, additional "content criteria" may be applied in determining the content which is to be downloaded. Any appropriate technology may be used to implement this function. It may for example be implemented in Javascript, Java applet, dynamic HTML, XML, another tags program or version, or an integrated browser mechanism.
A flowchart for the dynamic content module's processing for a particular display element is shown in Figure 8. The dynamic content module is preferably downloaded to the client 18 from the server 10.
First the dynamic content module obtains the load indicator and any other applicable content criteria and determines which version to be downloaded on the basis of the load indicator and the content criteria. Next the dynamic content module requests the appropriate object files to be downloaded from the server 10. The page is then displayed on the browser.
Object Editor
An object editor is preferably provided for a web page designer to select a page object and create an object substitution list. It is launched for example upon selection of a particular object/object location in a web page under construction. It allows a web page designer to set predetermined variants of a page object which may vary in size and or quality. Each variant is set to be activated under certain load conditions.
An example of a GUI (graphical user interface) screen through which a designer may interact with the object editor is shown in Figure 9A, and is generally indicated by 30. A sample web page 32 under construction is shown behind the GUI screen 30 where it has been assumed that a user has selected the image 34 of Big Ben to be modified to have load dependent content. The GUI 30 provides a top portion 31 containing version identifier fields 36,38,40,42 for the identification of a number of different versions of a display element of which four are shown in the illustrated example. Preferably, a standard file hierarchy browsing mechanism is provided to facilitate selection of the desired files as indicated by file folder icons 44. As each object file is selected, preferably it is displayed and previewed on the web page 32. For each version identifier field 36,38,40,42, there is a mechanism provided to select a range of load conditions under which to display the version identified. This is preferably selected in accordance with a percentage of maximum load as indicated by the load indicator above which a particular version is to be displayed.
In the illustrated example, 95+ has been selected as a threshold condition 46 for the display of the version blank.jpg 36. This means that only when the server condition is at S5% or above will the version blank.jpg be displayed. The threshold 65+ has been entered as the threshold condition 48 for the display of the version lowben.gif 38. This means that when the server condition is between 65% and 95%, the version lowben.gif will be displayed. Similarly, thresholds of 45+ and 0+ have been entered as the threshold conditions 50,52 for bigben.jpg 40, and aniben.mov 42 respectively. "Add" and "Remove" buttons may be provided to add an additional version identifier field or to remove an existing one. While "server condition" is used to indicate the load indicator thresholds, any suitable load indicator thresholds may be employed.
The middle portion 60 of the GUI 30 displays information respecting a selected one of the versions identified in the version identifier fields. Selecting which version to have its information displayed may be accomplished by highlighting one of the circles 56 adjacent to the version name, for example by executing a mouse click on the circle. In the illustrated example, the bottom 42 of the four versions has been selected. The information displayed in the middle portion 60 consists of the size of the object, the object type 64, and an estimated download time 62 for a particular selectable modem speed 68.
A bottom portion 70 of the GUI 30 may be provided to display further information, for example the selected object's width 72, height 74 and border 76, in selectable units 78. Other standard HTML editor functions may also be included (not shown) .
After completion of the fields in the GUI 30, the object editor generates appropriate code for inclusion as part of the HTML page which will be downloaded to the client 18. This code of course will depend upon the particular language used in the page . The code that will be generated will preferably be "javascript" which is read and executed by the browser (in the current instantiation of the invention) . The javascript code generated could be completely unique to the given page, or it could be the same every time with only some parameters which are changed and acted on for each page .
In another embodiment, the object editor may generate XML tags, (or some other tags) which would be read by the browser, a Java applet, or a javascript routine which would know how to interpreted the tags and execute code that is necessary to display the appropriate content . These tags are simply parameters (for instance: when the server is busy show a blank image for this object, when the server is not busy show the colour image) .
In this manner, varying content can be selected for images with the above exemplified table of substitutions. In a similar manner, varying content can be selected for links which appear in a web page by providing a table of link substitutions, and varying content can be selected for text which appears in a web page by providing a table of text block substitutions. For each of these tables of substitutions, criteria may be selected to determine which individual objects are to be displayed for which ranges of the load indicator.
Figure 9B is an example of a GUI screen through which a designer may interact with a link editor function, generally indicated by 150. Once again, a sample web page 32 under construction is shown behind the GUI screen 150 where it has been assumed that a user has selected the link object 152 to be modified to have load dependent content. The GUI 150 has multiple server condition points 154,156 (only two shovm) which allow the designer to define various server load ranges under which particular links will be displayed. For each server condition, there is a field 158,160 for entering the text which is to be displayed on the page, and at field 162,164 for specifying the URL of the link. Preferably, a remove link button 166 is provided for removing such a link, and a browse files button 168 is provided to assist in the selection of the link. There may also be fields for identifying target frames and/or extra HTML 170,172. In the illustrated example, the upper portion of the display 150 relates to a server condition of 95+, while the lower portion of the display relates to a server condition of 0+. Thus the link identified by the lower portion will be displayed for conditions in which the server load is between 0 and 95 percent. One of the two portions of the GUI 150 can be selected by clicking in the appropriate circle 174,176 for example and then removed or added using remove and add buttons 178,180 respectively.
This allows the selection of both the text and URL to vary as a function of the load indicator. Preferably, as the user changes the text for the link, the background display 32 is updated to show how this would affect the display.
Preferably, the GUI is capable of presenting a page hierarchy of the web site as a function of the busyness of the server and the links which have been selected for each different load condition. An example of this is shown at Figure 16 where for a first server condition point there is a first page hierarchy 200 for when the server is busy and as such there are less pages involved in the link hierarchy. A second hierarchy 202 is shown for the case in which the server is calm and as such there are more web pages for each section of the web site. Such a hierarchy would be constructed from the links embedded in each page. In another embodiment, rather than providing selectable ranges for each individual object, ranges may be selected for application to a common content level . For example, there may be three content levels which are commonly defined for all objects which have load dependent content.
This eliminates the need to reset the load indicator range for each and every object.
In yet another embodiment, a completely different layout can be displayed depending upon the load indicator.
Performance Overview Tool
Another embodiment of the invention provides a tool for observing the appearance and performance of a web page designed using load dependent content. The tool preferably determines the total web page size as a function of load by adding up the size of all the objects and text to be displayed for different values of load. For instance, when the server is 95% busy the object sizes on the page might add up to 10K, but when the server is 25% busy, the object sizes on the page might add up to 200K. The object sizes for a given server condition are known. Preferably, it calculates an approximate download time for the entire page at a respective load, and for a selectable modem rate. It also calculates the number of objects on the web page as a function of load, and determines the total number of objects available.
Since the overview tool knows the page size by having added up ail the objects on the page at each server condition, it can then roughly predict how ma y simultaneous page views by customers can be handled by a given amount of bandwidth. Inversely, it can roughly predict how much bandwidth is needed to deliver a set number of pages of a given size simultaneously. These numbers are essentially guide lines for the web page designer to work with.
Finally, an interface is preferably provided for accessing page view hit rate information. Here it is assumed that the web page has been in operation for some time so that hit rate information has been compiled. The hit rate information typically indicates the number of page views which have occurred at different times of the day. An example of this is provided in Figure 14 where page view hit rate information is shown on a daily basis for a portion of a particular month. Preferably, such information would selectably be displayed on an hourly, daily, weekly, monthly or even yearly basis.
The information computed and/or made available through the performance overview tool may be presented in a GUI screen 100 such as illustrated by way of example in Figure 10 which is shown overlaying the web page 32 being observed. The top portion 101 of the GUI screen 100 prevents a slider 102 which may be moved, for example with a mouse, between the two extremes in load, namely 100% busy 104, and 0% busy 106. Depending upon the position of the slider 102, a preview of the entire web page 32 which would be displayed for that load condition is presented. Thus the slider 102 simulates different server conditions and the web page's 32 corresponding look and feel .
The total page size 110 and a range of page sizes 111, estimated download time 112, total number of objects on the page 114, total number of objects available 116 are displayed in a middle portion 109 of the GUI screen 100.
Finally in the lower portion 120 of GUI screen 100, the number of page views supported by a given capacity is shown 122, and the bandwidth 124 to serve a selectable number 126 of page views/day is displayed. The "show me" button 130 is preferably provided as an interface to the hit rate information.
Preferably, a mechanism is provided for logging which versions of the web page are loaded by the customers and how often. A report may be generated informing the provider of the web page whether or not they should purchase more bandwidth to serve richer content more often. The reporting mechanism preferably answers questions such as how effective are the media messages in converting browsers to buyers, how many extra customers are served because load dependent content was employed, is the web site over designed or is more bandwidth required.
Preferably, these approaches may be applied to dynamically vary page content with several web servers . This is applicable when several servers mirror the same web site content or when a web site is divided up into sections to be served by several servers .
The reports generated by those embodiments of the invention would report on which content would be delivered by each and/or all of the servers (if need be, consolidating the reports into one) .
Customer Specific Content
Preferably, a mechanism is provided to override the server condition points for selected customers. Preferably, groups of customers are categorized together to receive the same treatment . The following are examples of overrides which might be applied to different groups of customers:
1) Unchanged or default setting - use normal server condition points
2) Maximum content - this has the effect of displaying only the largest possible object
3) increased content always - this means that after the content for the user as a function of load is determined, it is increased if possible. This may be realized for example by setting all of the trigger points to decrease by a percentage (10 to 20) . Thus, if an image was going to load once the trigger value was 50, it will now load when the trigger value is 40 or 30. This means more image content will be downloaded by the customer browser even if there are lots of pages being served.
4) decreased content always - this means that after the content for the user as a function of load is determined, it is decreased if possible. This may be realized for example by setting all of the trigger points to increase (10 to 20) . If an image was going to load once the trigger value was 50, it will now load when the trigger value is 60 or 70.
5) decreased content when required - this has the affect of setting all of the trigger points to increase (10 to 20) only on values over a threshold, for example 50. This has the effect of loading less images then normal would, but only when the server is becoming busy. 6) minimum content - this has the affect of displaying only the smallest possible object
Customers might for example be categorized in groups labeled "gold" , "silver" , "bronze" and "unknown" with one of the above overrides being optionally applied to each customer group. An example of a GUI screen 122 for controlling the override applied to different groups is shown in Figure 11. Preferably, the customers screen 122 and the previously discussed priorities screen 30 are accessible by two selectable tabs 121,31 labeled "customers" and "priorities". Here, for each of the categories or "access levels" 120, in this case the above exemplified gold, silver, bronze and unknown, an override selection entry field 123 is provided which when selected results in a pulldown menu 124 with each of the above identified above six options listed. A user can then select one of the options for the particular group.
There are many established methods of identifying a particular customer, for example through the use of cookies, and the methods of achieving this will not be described in further detail.
In another embodiment, a Sequential Loading Editor function is provided which allows the web page designer to specify which object is the most important on the web page, which would be loaded first before any other object is loaded. The tool consists of a mechanism which would let the designer pick the object (such as drag and drop, or simply by typing the name of the object) .
In another embodiment of the invention, preferably a mechanism is provided which allows a customer to set which version of the web site they would like to see. This could be provided instead of the above discussed automated load based content provision, or in addition thereto. For example, a user might be capable of selecting between three content levels, these being streamlined, standard, and full experience. Depending upon the selection made by a user, HTML code downloaded to the user's machine will then proceed with requesting the appropriate level of content from the server. This option could be provided each time a customer visits a particular web site, the first time they ever visit the web site, or for only certain pages. This would be specifiable by the web site designer. An example of a display mechanism which could be used to implement this is shown in Figure 15 in which a screen portion has three separate areas labeled streamlined 150, standard 152, and full experience 156. By selecting one of the three with a mouse for example the user will be able to control what content is downloaded for the particular page.
Another embodiment of the invention provides a mechanism for controlling access to the above-described load- dependent methods and systems. Referring to Figure 12, a version of Figure 1 is shown in which an additional component, namely a registry 19, is shown. The registry 19 identifies web pages or internet service providers which are allowed to provide the load-dependent functionality, for example by maintaining or storing credit for such web pages or internet service providers.
A flowchart of a method provided by an embodiment of the invention in the presence of the above referenced registry 19 is shown in Figure 13. To begin, the client browser 15 requests an HTML page from the server 10. The server downloads an HTML page which contains instructions, for example in javascript. The page may also contain a load indicator, although this may alternatively be obtained using any mechanism whatsoever, including any of the mechanisms described previously. The instructions send the load indicator and the server identity to the registry 19. Preferably, the registry stores in its database the load indicator for the server identified. The registry 19 then verifies to see that the particular server or web page has permission to provide load- dependent content. If there is permission, then the registry 19 returns to the client browser 15 a value that allows the remainder of the instructions to work. Alternatively, if there is no permission, the registry 19 returns a value to the browser 15 that prohibits the remainder of the instructions from executing.
Database embodiment
In the above described embodiments, it is client software which is downloaded to the user's IP capable terminal 14 which determines which versions of various objects to request for download on the basis of a load indicator. In another embodiment of the invention, the contents of the web page downloaded to each user are determined at the server side.
Database-driven web pages are well known. When a customer accesses a web page, the web page is built in real time by accessing a database of objects.
According to a first variant of this embodiment of the invention shown in flowchart form in Figure 17, the database itself is adapted to provide one of several versions of an object on the basis of a load indicator. In a second variant of this embodiment shown in flowchart form in Figure 18, the server accesses a different database object dependent upon the load indicator and builds a web page containing these obi ectε . Numerous modifications and variations of the present invention are possible in light of the above teachings . It is therefore to be understood that within the scope of the appended claims, the invention may be practised otherwise than as specifically described herein.

Claims

WE CLAIM :
1. A processor implemented method comprising obtaining a load indicator and then selecting content to download as a function of the load indicator.
2. A method according to claim 1 wherein obtaining the load indicator comprises :
measuring a time taken to download a test object.
3. A method according to claim 1 wherein obtaining the load indicator comprises :
reading directly how busy a router is.
4. A method according to claim 1 wherein obtaining the load indicator comprises :
monitoring how many requests are being served and how large each request is, and based upon this determining the load indicator.
5. A method according to claim 1 wherein obtaining the load indicator comprises :
a plurality of independent machines timing a download;
determining the load indicator on the basis of the timing for one of the independent machines physically closest to the customer's location.
6. A method according to claim 1 wherein obtaining the load indicator comprises maintaining a historical statistical page view hit distribution as a function of time, and basing the load indicator on this distribution.
7. A method according to claim 1 further comprising:
providing a customer adjustment mechanism by which a customer can select a preferred content level;
selecting content to download as a function of both the load indicator and the preferred content level .
8. A method according to claim 1 further comprising:
making a reading of a customer's connection speed;
selecting content to download as a function of both the customer's connection speed and the load indicator.
9. A method according to claim 1 wherein the load dependent content comprises different versions of images.
10. A method according to claim 1 wherein the load dependent content comprises different versions of text.
11. A method according to claim 1 wherein the load dependent content comprises different versions of sound.
12. A method according to claim 1 wherein the load dependent content comprises different versions of links.
13. A method according to claim 1 further comprising controlling access to the load-dependent content capability by requiring a client machine request from a registry a code which either permits or prevents the capability from working.
14. A method of operating a web server comprising downloading content to a user terminal as a function of a load indicator .
15. A method of operating a user terminal comprising requesting content for download from a server as a function of a load indicator.
16. An article of manufacture comprising:
a computer usable medium having computer readable program code means embodied therein for providing load dependent content, the computer readable code means in said article of manufacture comprising:
computer readable code means operable to obtain a load indicator;
computer readable code means operable to select content to download as a function of the load indicator.
17. A server comprising:
a plurality of downloadable objects;
means for obtaining a load indicator;
means for instructing a client program to download particular ones of said plurality of downloadable objects as a function of the load indicator.
18. An article of manufacture comprising:
a computer usable medium having computer readable program code means embodied therein for providing a load- dependent browsing capability, the computer readable code means in said article of manufacture comprising:
computer readable code means operable to obtain a load indicator; computer readable code means operable to request content for download as a function of the load indicator.
19. A memory for storing data for access by an application program being executed on a data processing system, comprising:
a data structure stored in said memory, the data structure including information resident in a database used by said application program and including:
a plurality of objects;
a plurality of conditions indicating for each object under what circumstances it is to be selected for download.
20. A computer data signal embodied in a transmission medium comprising:
a source code segment for obtaining a load indicator;
a source code segment for controlling subsequently downloaded material as a function of the load indicator.
21. A web page design tool comprising:
an input mechanism for selecting multiple versions of a downloadable object forming part of a web page; and
an input mechanism for selecting load dependent circumstances under which each of said multiple versions of the downloadable object are to be downloaded.
22. A web page design tool according to claim 21 further comprising providing a performance evaluation mechanism which displays the web page as a function of a user selectable simulated load.
23. A web page design tool according to claim 22 further comprising :
calculating and displaying a size of the web page as a function of the user selectable simulated load.
24. A web page design tool according to claim 22 further comprising determining a number of users of the web page which could be serviced given its current design, and for the user selectable simulated load.
25. A web page design tool according to claim 21 further comprising a selection mechanism for selecting different content for different customer categories .
26. A web page design tool according to claim 21 further comprising a mechanism for logging which versions of a web page are loaded by users and how often, thereby allowing a provider of the web page to determine whether or not they should purchase more bandwidth to serve richer content more often.
27. A network implemented method comprising:
maintaining different versions of downloadable objects for each of at least two different content levels;
obtaining a requested content level from a user;
downloading versions of the objects as a function of the requested content level.
PCT/CA2000/001100 1999-10-20 2000-09-22 Methods and systems for providing load dependent content WO2001029701A2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020027005134A KR20020043231A (en) 1999-10-20 2000-09-22 Methods and systems for providing load defendent content
AU73994/00A AU7399400A (en) 1999-10-20 2000-09-22 Methods and systems for providing load dependent content
CA002388311A CA2388311A1 (en) 1999-10-20 2000-09-22 Methods and systems for providing load dependent content

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US42155799A 1999-10-20 1999-10-20
US09/421,557 1999-10-20

Publications (2)

Publication Number Publication Date
WO2001029701A2 true WO2001029701A2 (en) 2001-04-26
WO2001029701A3 WO2001029701A3 (en) 2003-07-03

Family

ID=23671044

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CA2000/001100 WO2001029701A2 (en) 1999-10-20 2000-09-22 Methods and systems for providing load dependent content

Country Status (5)

Country Link
KR (1) KR20020043231A (en)
CN (1) CN1618065A (en)
AU (1) AU7399400A (en)
CA (1) CA2388311A1 (en)
WO (1) WO2001029701A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2487883A1 (en) * 2009-11-04 2012-08-15 ZTE Corporation Browser adjusting method and mobile terminal

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100461758C (en) * 2005-12-08 2009-02-11 华为技术有限公司 Multi-interface flow-balance controlling method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0811939A2 (en) * 1996-06-03 1997-12-10 Webtv Networks, Inc. Method and apparatus for providing proxying and transcoding of documents in a distributed metwork
US5724514A (en) * 1994-11-25 1998-03-03 Netmanage System, method and apparatus for controlling the transfer of data objects over a communications link
US5913041A (en) * 1996-12-09 1999-06-15 Hewlett-Packard Company System for determining data transfer rates in accordance with log information relates to history of data transfer activities that independently stored in content servers
EP0947935A2 (en) * 1998-03-30 1999-10-06 International Business Machines Corporation System and method for ascertaining and displaying connection-related performance data in networks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724514A (en) * 1994-11-25 1998-03-03 Netmanage System, method and apparatus for controlling the transfer of data objects over a communications link
EP0811939A2 (en) * 1996-06-03 1997-12-10 Webtv Networks, Inc. Method and apparatus for providing proxying and transcoding of documents in a distributed metwork
US5913041A (en) * 1996-12-09 1999-06-15 Hewlett-Packard Company System for determining data transfer rates in accordance with log information relates to history of data transfer activities that independently stored in content servers
EP0947935A2 (en) * 1998-03-30 1999-10-06 International Business Machines Corporation System and method for ascertaining and displaying connection-related performance data in networks

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ABDELZAHER T F ET AL: "Web server QoS management by adaptive content delivery" QUALITY OF SERVICE, 1999. IWQOS '99. 1999 SEVENTH INTERNATIONAL WORKSHOP ON LONDON, UK 31 MAY-4 JUNE 1999, PISCATAWAY, NJ, USA,IEEE, US, 31 May 1999 (1999-05-31), pages 216-225, XP010335409 ISBN: 0-7803-5671-3 *
FOX A ET AL: "Reducing WWW Latency and Bandwidth Requirements by Real-Time Distillation" PROCEEDINGS OF THE 5TH. INTERNATIONAL WORLD WIDE WEB CONFERENCE, 6 - 10 May 1996, XP002134599 Paris, France *
LOON T S ET AL: "Alleviating the latency and bandwidth problems in WWW browsing" PROCEEDINGS OF THE USENIX SYMPOSIUM ON INTERNET TECHNOLOGIES AND SYSTEMS, XX, XX, 8 December 1997 (1997-12-08), pages 219-230, XP002109263 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2487883A1 (en) * 2009-11-04 2012-08-15 ZTE Corporation Browser adjusting method and mobile terminal
EP2487883A4 (en) * 2009-11-04 2013-11-27 Zte Corp Browser adjusting method and mobile terminal
US8745180B2 (en) 2009-11-04 2014-06-03 Zte Corporation Method for dynamically adjusting network parameters of a mobile terminal browser and mobile terminal

Also Published As

Publication number Publication date
WO2001029701A3 (en) 2003-07-03
AU7399400A (en) 2001-04-30
CA2388311A1 (en) 2001-04-26
CN1618065A (en) 2005-05-18
KR20020043231A (en) 2002-06-08

Similar Documents

Publication Publication Date Title
US7631035B2 (en) Path-analysis toolbar
US6438592B1 (en) Systems for monitoring and improving performance on the world wide web
US6785717B1 (en) Method of incorporating user reaction measurement software into particular web pages of a website
US8914736B2 (en) On-page manipulation and real-time replacement of content
DE69834807T2 (en) SYSTEM AND METHOD FOR SELECTING AND LOADING VARIOUS TYPES OF VIDEO DATA IN A COMPUTER NETWORK
US7085820B1 (en) System and method for reporting to a website owner user reactions to particular web pages of a website
US8527504B1 (en) Data network content filtering using categorized filtering parameters
US6606581B1 (en) System and method for measuring and reporting user reactions to particular web pages of a website
US8510425B2 (en) Methods and apparatus for interactive specification of context-sensitive service level agreements; for provisioning of resources required during service delivery events regulated by service level agreements; and for monitoring compliance with service level agreements during service delivery events
US6895437B1 (en) System for monitoring browsing activity of a visitor and decrementing a reference count upon a web page change for automatic unloading a client program
US20070206584A1 (en) Systems and methods for providing a dynamic interaction router
US20140223005A1 (en) Method and system for constructing a customized web analytics application
US20030131097A1 (en) Interactive path analysis
US8041805B2 (en) System and method for reporting to a website owner user reactions to particular web pages of a website
EP1341089A2 (en) On-line web traffic sampling
CN108334525A (en) A kind of method for exhibiting data and device
JP2002528819A (en) Automatic aggregation device and method, device and method for delivering electronic personal information or data, and transaction involving electronic personal information or data
CA2504118A1 (en) Using software incorporated into a web page to collect page-specific user feedback concerning a document embedded in the web page
CN107463641A (en) System and method for improving the access to search result
US10861081B2 (en) Aggregation of operational data for merchandizing of network accessible services
US20020198781A1 (en) Reward allocation in information-access system
US10725747B1 (en) Dynamically customizable portal
WO2001029701A2 (en) Methods and systems for providing load dependent content
US20020082854A1 (en) Profits sharing system for agency service, method thereof, and computer readable recording medium
WO2001016841A2 (en) System and method for measuring and reporting user reactions to particular web pages of a website

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES 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 MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ 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)
WWE Wipo information: entry into national phase

Ref document number: 1020027005134

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 2388311

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 2000962137

Country of ref document: EP

Ref document number: 73994/00

Country of ref document: AU

WWP Wipo information: published in national office

Ref document number: 1020027005134

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 008173222

Country of ref document: CN

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWW Wipo information: withdrawn in national office

Ref document number: 2000962137

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: JP