US20010034814A1 - Caching web resources using varied replacement sttrategies and storage - Google Patents

Caching web resources using varied replacement sttrategies and storage Download PDF

Info

Publication number
US20010034814A1
US20010034814A1 US08/918,726 US91872697A US2001034814A1 US 20010034814 A1 US20010034814 A1 US 20010034814A1 US 91872697 A US91872697 A US 91872697A US 2001034814 A1 US2001034814 A1 US 2001034814A1
Authority
US
United States
Prior art keywords
web
web resource
accessed
resource
caching
Prior art date
Legal status (The legal status 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 status listed.)
Abandoned
Application number
US08/918,726
Inventor
Michael D. Rosenzweig
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Priority to US08/918,726 priority Critical patent/US20010034814A1/en
Assigned to INTEL CORPORATION reassignment INTEL CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ROSENZWEIG, MICHAEL D.
Priority to US09/860,969 priority patent/US6526479B2/en
Publication of US20010034814A1 publication Critical patent/US20010034814A1/en
Abandoned legal-status Critical Current

Links

Images

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/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

Definitions

  • This invention relates to the field of computers.
  • this invention is drawn to caching web resources obtained from the Internet.
  • the Internet is a worldwide network of computers and computer resources sharing a common communication protocol to facilitate the communication of information between computers that may have different hardware and software architectures including different operating systems and file systems.
  • the Internet uses a client/server architecture for exchanging information.
  • a client computer requests resources from one or more host computers somewhere on the Internet. These resources may include files or services such as information retrieval services, search services, communication services, and recreational services.
  • a subset of Internet host computers provide multimedia information services. This subset of host computers support a protocol which permits sharing hypermedia documents between computers having different architectures, operating systems, and file systems. These hypermedia documents can be viewed or accessed using a “browser” application program on the client computers.
  • the World Wide Web is a wide-area hypermedia information retrieval initiative aiming to give universal access to a large universe of information stored in computers that use different hardware and software architectures.
  • Hypermedia is similar to multimedia except that hypermedia contains “hyperlinks” or simply “links” to other information including text, sounds, images, movies, etc.
  • the information may be embodied in the form of a document.
  • the “web” is virtually formed by these hyperlinks.
  • the “web” refers to a body of information or abstract space of knowledge. Physical access to this body of information is frequently accomplished using the Internet.
  • a hypermedia document viewed using a browser is often referred to as a “web page.”
  • Web pages often contain links to other web resources.
  • a web page may contain a link to another position within the same web page, another web page located somewhere else on the Internet, or links to initiate other services such as searching or file retrieval.
  • These other web resources can be files designed to produce sounds or movies.
  • the link destination is identified by a Uniform Resource Locator (URL). Every WWW resource located anywhere on the Internet can be identified by a URL.
  • URL Uniform Resource Locator
  • a user may navigate to various web pages located throughout the Internet by following a chain of links. After following a chain of links, a user may need to return to a common page to select another chain of links to follow. This may be the case when exploring a web site or when searching the World Wide Web for sites related to a given topic.
  • the host may respond by creating a web page containing links to sites containing information relevant to the user's query. This web page is referred to as the common page.
  • the user may choose to follow a given link from the common page.
  • the user can typically return to the common page to pursue another link. For example, the user may return to the common page in order to pursue links to other web pages that were indicated as being relevant to a search request.
  • One disadvantage of current browsers is the lack of sophisticated heuristics for caching web pages and other resources.
  • the browser caches web pages on a first-in-first out basis.
  • the number of web pages cached is dependent upon the resources (i.e., storage requirements) of each web page as well as the amount of storage set aside for caching web pages. If the common page is not cached, the web browser must access the host's search engine again in order to regenerate the common page.
  • This caching technique has a number of disadvantages.
  • One disadvantage of this technique is the inefficient use of the host machine resources.
  • the client computer wastes host computer time by requesting the host computer to regenerate the common web page each time it is accessed.
  • Another disadvantage of regenerating the common page is the time wasted by the client waiting for regeneration and retrieval of the common web page.
  • Yet another disadvantage is the increased Internet traffic associated with reissuing the saved URL and retrieving the generated common page from the host machine's search engine.
  • a method of caching web resources includes the step of accessing a first web resource.
  • the first web resource is cached, if no other web resource is accessed after a pre-determined period of time.
  • Another method of caching web resources includes the step of accessing a first web resource.
  • the first web resource is cached, if the first web resource is subsequently accessed more than a pre-determined number of times.
  • Another method of caching web resources includes the step of accessing a plurality of web resources.
  • the accessed web resources are cached as cached web resources in accordance with at least one of a number of times accessed, a frequency of access, or a duration of access.
  • An apparatus includes storage media containing caching logic for caching web resources.
  • the caching logic includes instructions to cache selected web resources as cached web resources in accordance with at least one of a number of times accessed, a frequency of access, or a duration of access.
  • the selected web resources correspond to a subset of a plurality of accessed web resources.
  • FIG. 1 illustrates a client-server architecture networked computer environment.
  • FIG. 2 illustrates one embodiment of a client computer.
  • FIG. 3 illustrates a web page and hyperlinks to other web resources.
  • FIG. 4 illustrates navigation within a web page having hyperlinks to itself.
  • FIG. 5 illustrates one embodiment of a method of caching web resources such as a web page.
  • FIG. 6 illustrates an embodiment of another method of caching web resources such as a web page.
  • FIG. 7 illustrates a method of caching a first web resource such as a web page after a request to access a second web resource is received.
  • FIG. 8 illustrates retrieval of cached web resources such as web pages.
  • FIG. 1 illustrates a network environment 100 including a communication network commonly referred to as the Internet 150 .
  • the Internet includes a combination of routers, repeaters, gateways, bridges, and communications links with computers spread throughout the world.
  • the Internet facilitates communication between computers or other devices connected to the Internet.
  • Some of the computers are referred to as host computers because they provide services upon request.
  • the computers issuing the requests are referred to as client computers.
  • Network environment 100 includes multiple (N) client computers ( 110 thru 120 ) and multiple (M) host computers ( 130 thru 140 ).
  • computers may use an Internet Service Provider (ISP) to gain access to the Internet.
  • ISP Internet Service Provider
  • clients 110 and 112 use ISP( 1 ) 160 to access the Internet.
  • client 120 uses ISP(X) 170 to access the Internet.
  • Host computers such as hosts 132 and 140 , for example, can be directly connected to the Internet.
  • a host computer e.g., 130
  • an ISP e.g., 162
  • the host computers (e.g., 130 ) and client computers (e.g., 110 ) can be entirely different architectures, however, they can communicate by using a common communication protocol.
  • this protocol is the Transmission Control Protocol/Internet Protocol (TCP/IP).
  • FIG. 2 illustrates one embodiment of a client computer architecture.
  • Client computer 200 includes processor 210 .
  • Input devices such as mouse 220 and keyboard 230 permit the user to input data to client computer 200 .
  • Information generated by the processor is provided to an output device such as display 240 .
  • Client computer 200 typically includes random access memory (RAM) 260 which is used by the processor for executing application programs.
  • RAM random access memory
  • client computer 200 includes nonvolatile memory 270 .
  • Nonvolatile memory 270 is used to retain programs and data even when the client computer is powered down.
  • nonvolatile memory 270 is an electro-mechanical hard drive.
  • nonvolatile memory 270 might be a solid state disk drive or a flash electrically erasable programmable read only memory (flash EEPROM).
  • Mouse 220 , keyboard 230 , RAM 260 , and nonvolatile memory 270 are typically communicatively coupled to processor 210 through one or more address and data buses such as bus 250 .
  • the client computer can request services from a host computer.
  • Hosts typically provide services such as file retrieval services, search services, communication services, and recreational services.
  • Gopher provides information retrieval services.
  • Popular search services include Archie.
  • Veronica is the name of another search service typically used in conjunction with Wide Area Information Servers (WAIS).
  • Communication services include electronic mail, UseNet, Telnet, and Internet Relay Chat (IRC).
  • IRC Internet Relay Chat
  • An example of a recreational service is a Multi-User Dungeon (MUD).
  • a subset of Internet host computers provide multimedia information services. This subset of host computers permit physical access to the abstract body of information referred to as the World Wide Web (WWW) and are referred to as WWW hosts or WWW servers.
  • WWW hosts World Wide Web hosts or WWW servers.
  • World Wide Web host computers support a protocol which permits users having computers with different architectures, operating systems, and application programs to share multimedia enhanced documents.
  • this protocol is the Hypertext Transport Protocol (“HTTP”).
  • HTTP Hypertext Transport Protocol
  • the multimedia enhanced documents are often referred to as “web pages.”
  • the application specific to a given hardware platform that permits viewing the web pages is often referred to as a browser.
  • Hypermedia enhanced documents typically provide links (i.e., hyperlinks) to other resources in response to selection of an anchor.
  • the anchor is typically a word, group of words, image, or some demarcated area of the document.
  • the anchor is generally activated by pointing to the anchor and clicking a selection button of a pointing device such as a mouse.
  • the anchor is generally activated by using cursor-control keys to select the anchor and pressing another key (e.g., ⁇ ENTER>).
  • These anchors and links are defined using a language such as hypertext markup language (“HTML”).
  • HTML hypertext markup language
  • the browser interprets an HTML file to display the web page.
  • the HTML file also determines what resource is accessed in response to activation of a given anchor.
  • Uniform Resource Locators provide a standard way of referencing Internet resources including web resources regardless of whether the resource is a document, an image, a movie, a sound, or another web page.
  • a browser for example, can access a host machine identified by the URL and then retrieve the resource specified by the URL.
  • a uniform resource locator is a description of an item including the location of the item that is to be retrieved. For example, the location might be the local disk drive or another file at another Internet site.
  • the URL is not limited to other World Wide Web sites and may in fact refer to other Internet protocols and services such as Gopher, WAIS, UseNet news, Telnet, or anonymous FTP (file transfer protocol).
  • a URL identifies the protocol as well as the location of the item to be retrieved. For example, consider the following URL:
  • the portion “www.intel.com” is an Internet host address or symbolic representation of an Internet host address. Thus “www.intel.com” identifies a specific host. The portion of the URL identifying the specific host is often referred to as a web site.
  • a user may simply provide the protocol and Internet host address such as “http://www.intel.com” without explicitly identifying a specific resource.
  • the server software executing on the host machine provides a default resource in response to such a request.
  • this might be a file named “index.html” or “index.htm” for machines having file systems that do not support longer filename extensions.
  • the use of the web site alone implicitly identifies a default resource.
  • this default resource is often referred to as the “home page.”
  • the home page may be explicitly defined.
  • the URL either explicitly or implicitly identifies a specific resource, protocol, and host machine on the Internet.
  • a given web page may be formed from a number of resources identified within the web page's html file.
  • “index.html” contains instructions for generating a hypermedia document for the client.
  • the client's browser interprets the html file in order to produce the corresponding web page.
  • the html file may instruct the client's browser to access any number of other web resources located on the host or elsewhere including bitmap files, files for producing animated video or sound, etc. Each of these resources is identified either explicitly or implicitly by a URL.
  • FIG. 3 illustrates one example of using URLs to access other Internet resources.
  • Web page 300 includes anchors 302 and 304 for accessing other web resources. Anchors are often identified by highlighted text, an icon, or an image on the web page.
  • the web page is defined using hypertext markup language (“HTML”) to describe the text, icons, images, etc. of the web page.
  • HTML hypertext markup language
  • anchor 302 is equivalent to “link 302 ,” or “hyperlink 302 .”
  • Selecting an anchor effectively selects and follows the hyperlink to the resource identified by the associated URL. Selecting anchors 302 or 304 , for example, will access other Internet resources that may be physically located in various host computers throughout the Internet. The selection is typically accomplished with a pointing device such as a mouse.
  • the user may have used an Internet search engine to generate a web page containing the results of a search.
  • This resulting web page may contain a number of links to other web pages.
  • Users typically select links one at a time from the resulting web page. After following a given link, the user returns to the resulting web page in order to follow another link suggested by the search engine.
  • the web page resulting from the search may be visited a number of times.
  • web page 300 provides hyperlinks generated as a result of a search.
  • Web page 310 is accessed by selecting hyperlink 302 .
  • the user can access web page 320 by selecting anchors 314 or 312 .
  • Anchor 312 is an example of using an image or an icon as an anchor.
  • the user can select anchor 322 to return to web page 310 .
  • the user can follow or navigate a chain of links by selecting the anchors.
  • the user can return to web page 300 in order to follow another link identified by the search results. For example, the user can return to the search results web page 300 in order to follow the chain of links starting with hyperlink 304 .
  • Selection of anchor 304 accesses web page 330 . From web page 330 , the user can access web page 340 by selecting anchor 336 . The user can return to web page 330 by selecting anchor 342 on web page 340 . Web page 330 also contains hyperlinks to web page 310 . Thus the user can access web page 310 by selecting anchor 332 .
  • Web page 300 may be referred to as the “common page.” Web page 300 is the common link to all of the other links contained within web page 300 . For example, web page 300 provides access to the chain of links beginning with link 302 and the chain of links beginning with 304 regardless of whether or how those chains might subsequently intersect.
  • browsers In order to facilitate following links, browsers typically save the URL of the most recently accessed web pages.
  • the user can navigate “forward” and “backward” among their most recently selected web pages even if the web pages do not contain specific links to each other.
  • web page 330 provides a link to web page 310 , but the converse is not true.
  • the browser provides means to navigate “backward” and “forward” among the most recently selected web pages.
  • web page 310 was accessed from web page 330
  • the user can return to web page 330 by navigating backward using features of the browser. This type of approach may be necessary in order to return to search page 300 after following a chain of links.
  • FIG. 4 illustrates an example of following hyperlinks to another location within the same web page.
  • Web page 400 can only be viewed a portion at a time due to the actual size of the display as indicated by outline 420 .
  • web page 400 includes anchors 440 and 450 to other resources.
  • anchor 440 is an icon that indicates that selection of anchor 440 will access a movie.
  • the selection of anchor 440 accesses a file identified by an associated URL.
  • the browser recognizes the file as containing data for generating a movie.
  • the browser either plays the movie in accordance with the data or provides the file to another application in order to play the movie.
  • Anchor 450 is an icon that indicates that selection of anchor 450 will access a sound.
  • the selection of anchor 450 accesses a file identified by an associated URL.
  • the browser recognizes the file as containing data for generating sound.
  • the browser either interprets the data to generate the sound or provides the file to another application in order to generate the sound.
  • Web page 400 also provides an index to other locations within the same web page. Selecting anchor 410 , for example, repositions the web page 400 within the viewing area of the display so that the user might see view 460 . Due to the physical limitations of the displayable area, the browser typically provides a method of scrolling (e.g., scroll bars) so that the user may navigate within the same web page by scrolling.
  • a method of scrolling e.g., scroll bars
  • One caching mechanism attempts to cache every web page accessed. Web pages are cached on a first-in-first-out basis so that the most recently accessed non-cached web page can be cached.
  • One disadvantage of this method is inefficient usage of the cache may result in excessive storage set aside for the cache. For example, web pages that are not likely to be re-visited are cached. Due to size constraints of the cache, frequently re-visited web pages or web pages with a high likelihood of being re-visited, such as common pages, might be flushed from the cache in order to permit caching the most recently accessed web page. In order to provide a greater likelihood that frequently visited web pages remain within the cache, the cache size may be increased. Increasing the cache size, however, consumes computer resources that could otherwise be allocated for other purposes.
  • FIG. 5 illustrates a method of caching web resources based on the length of time spent browsing the web resource.
  • the web resource is a web page.
  • the method of caching web resources begins with step 510 .
  • a first web page is accessed in step 520 . If no other web page is selected after a pre-determined period of time as determined in step 530 , then the first web page is cached. Otherwise the first web page is not cached and processing is completed in step 590 .
  • the first web page is automatically cached after the pre-determined time period has elapsed, if no other web page is selected.
  • the first web page is cached only when a second web page has been selected after a pre-determined time period.
  • FIG. 6 illustrates another method for caching web resources based on the number of visits to a given web resource.
  • the web resource is a web page.
  • the method of caching web pages begins with step 610 .
  • a first web page is accessed in step 620 . If the same web page was previously accessed a pre-determined number of times as determined by step 630 , then the web page is cached in step 640 and processing is completed in step 690 . Thus after the initial access, the first web page is cached if it is subsequently accessed more than a pre-determined number of times.
  • a table may be used.
  • the table entries are indexed by a unique key such as the complete, explicit URL for each web resource.
  • the table is scanned to determine if that web resource already has a corresponding entry in the table by searching for that web resource's URL in the table. If the web resource has not previously been accessed, then a new entry in the table is created using that web resource's URL. If the web resource has previously been accessed (as determined by scanning the table) then a count field associated with that web resource's URL in the table is incremented to reflect another access has been made.
  • a resource such as an html file might instruct the browser to generate a web page from a number of other resources.
  • an entry is created in the table for each web resource accessed.
  • the count field is incremented only if the subsequent accesses are interleaved with accesses to other web resources.
  • the web resource being tracked is a web page
  • consecutive accesses that merely reposition the web page within the display do not increase the count.
  • Visiting another web page and subsequently returning to the first web page will, however, increase the count.
  • the table and cache are erased and re-initialized upon starting the browser application.
  • web resources are cached based upon the number of times accessed within a given browsing session. If this is the case, then the table is effectively a frequency table.
  • the web resource is cached if the same resource is accessed more than a pre-determined number of times within a given browsing session.
  • the web resource is cached based upon frequency of access.
  • the table and cache are erased and re-initialized when requested by the user.
  • web resources may be cached based upon the total number of times accessed independent of the number of browsing sessions.
  • the table provides for tracking the relative age of the cached web resource. If the resource has remained in the cache beyond a pre-determined period of time, then the table entry for that resource may be invalidated and the resource may be flushed from the cache.
  • the relative age may be tracked in the table by providing an additional field and storing the date and time that the corresponding resource was cached. Alternatively, the field stores a value that permits determining in what order the resources were cached.
  • Some browsers “cache” resources as they are being downloaded from a host.
  • the methods described above may be applied to determine when and if resources should be flushed from the cache as opposed to whether they are cached. In other words, the methods described above can be used to determine the persistence of resources stored in the cache.
  • a triggering event is when the browser starts. In another embodiment, exiting the browser application is a triggering event. In another embodiment, flushing of at least a portion of the cache is initiated when the cache reaches a pre-determined size. In yet another embodiment, flushing of at least a portion of the cache is initiated whenever the cache has less than a pre-determined percentage of available space left.
  • cache persistence in the context of cache persistence means allowing the resource to stay in the cache.
  • Application of the methods described above to cache persistence permits applying the rules described above across multiple browser sessions.
  • a resource that is accessed infrequently during a given browser session may persist in the cache under the total number of accesses rule, if a sufficient number of accesses occur before a triggering event flushes the resource, even if the accesses are accumulated over more than one browser session.
  • the count field associated with the URL of a given resource is incremented each time the given resource is accessed. If the value in the count field is less than a pre-determined value when the triggering event occurs, then the resource is flushed from the cache.
  • one method of persistence caching includes the step of caching at least one web resource of a plurality of web resources accessed during a plurality of browser sessions. A count of the number of accesses to each cached web resource is computed. Selected cached web resources are flushed in response to a triggering event, if the corresponding count is less than a pre-determined value.
  • the table may include a “session” field to aid in tracking an average frequency of access across multiple browser sessions.
  • the session field is incremented for all URL entries.
  • the count field is incremented for a given URL whenever access is made to the resource identified by the given URL.
  • the average frequency of access can be calculated ( e . g . , count sessions )
  • each URL determines if the resource identified by the given URL should remain in the cache or be flushed. If the average frequency of access for a given URL is less than a pre-determined value at the time a triggering event occurs, then the identified resource is flushed.
  • another method of persistence caching includes the step of caching at least one web resource of a plurality of web resources accessed during a plurality of browser sessions. An access count of the number of accesses to each cached web resource is computed. A session count of the number of sessions a selected web resource is accessed is computed. Selected cached web resource are flushed in response to a triggering event, if the corresponding average frequency of access determined by dividing the corresponding access count by the corresponding session count is less than a pre-determined value.
  • the duration of access rule may also be used in the cache persistence context.
  • the table may be modified to include a “duration” field.
  • the length of time spent without accessing any other resource is measured. This length of time is then added to the duration field.
  • the duration field thus indicates the accumulated time spent on the given resource.
  • the given resource is flushed unless the accumulated time in the duration field exceeds a pre-determined value.
  • a duration of access for persistence caching includes the step of caching at least one web resource of a plurality of web resources accessed during a plurality of browser sessions. A length of time spent without accessing any other resource is accumulated for each cached web resource. Selected cached web resource are flushed in response to a triggering event, if the corresponding accumulated length of time is less than a pre-determined value.
  • the table entry identifying a given resource is deleted or marked invalid once the given resource is flushed.
  • various storage media may be used for caching the web resources.
  • the web resource is cached in RAM 260 .
  • nonvolatile memory 270 is a solid state disk.
  • nonvolatile memory 270 is flash electrically erasable programmable read only memory.
  • the full URL is expressed as a property of the file.
  • the file can be renamed to avoid name collisions, but identified for subsequent retrieval by examining the file properties of the cached files.
  • each entry of the caching table includes a field to identify the name of the resource as cached.
  • the name as cached is readily available from the same table that indicates whether the resource was cached.
  • mapping table can be used to map files as cached to their corresponding full URLs.
  • the web resource need not be cached locally on the client computer.
  • client 136 residing on local area network 140 may cache the web resources on local area network server 144 .
  • FIGS. 5 and 6 effectively indicate conditions that determine if an accessed web resource should be cached, but not when the accessed web resource should be flushed.
  • Accessed web resources can be flushed as the need arises, if they are not cached or have not been selected for caching. Eventually, even cached web resources may need to be flushed in order to permit caching additional web resources.
  • cached web resources are flushed on a first-in, first-out basis.
  • the use of a relative age field permits tracking the order in which web resources were cached for purposes of determining the order in which they should be flushed.
  • the browser may be configured to apply caching rules in accordance with the type of resource. For example, image files may be associated with one caching rule. Text files might be associated with a different caching rule.
  • the resource may be cached at that time or in response to a request to access another resource.
  • FIG. 7 for example, combines the methods presented above for determining if a web resource is selected for caching.
  • the web resource is not cached, however, until a request to access another web resource is received.
  • the method begins with step 710 using web pages as examples of web resources.
  • step 720 a first web page is accessed. In the embodiment illustrated in FIG. 7, this first web resource or web page is not presently being cached.
  • step 730 a request to access a second web page is received.
  • the second web page is a web resource other than the first web page.
  • selecting an anchor on the first web page in order to reposition the first web within the display is not considered to be receiving a request to access another web resource or a “second” web page.
  • the method makes the determination of whether the first web resource should be cached in steps 740 and 750 . In particular, if the first web page was previously accessed a pre-determined number of times, as determined in step 740 , then the first web page is cached in step 760 . Alternatively, if a pre-determined time period has elapsed since accessing the first web page as determined in step 750 , then the first web page is cached in step 760 .
  • the requested resource (i.e., the second web page) is not accessed until step 770 .
  • the second web page is not accessed until either 1) a decision is made not to cache the first web page, or 2) a determination is made to cache the first web page and the first web page is cached.
  • FIG. 7 thus combines the methods of caching based on a duration of access and a number of times the resource is requested. The resource is not cached until a request to access another resource is received.
  • FIG. 8 illustrates one embodiment of a method of retrieving a cached web resource.
  • a request is made to access a web resource, in particular a web page.
  • Step 820 determines if the requested web page is in the cache. If the web page is not in the cache, then the web resource is retrieved from the Internet in step 840 . If, however, the web page is cached, then the browser retrieves the cached version of the web page instead of the actual web resource in step 830 .
  • Various embodiments may permit the user to “refresh” the web page by retrieving it again from the host computer instead of retrieving the cached version of the resource.
  • the methods described above are implemented as a series of instructions within a program.
  • the program may be implemented in software, firmware, or hardware.
  • the firmware or hardware implementations may be particularly suited for systems designed specifically to support Internet tools and applications, and communication protocols. These machines are referred to as NC (“network computer”) machines.
  • NC machines manufactured by Oracle Corporation, Redwood Shores, Calif.
  • the NC machines achieve hardware costs lower than that of a typical personal computer by offering few capabilities other than the ability to “browse” the Internet.
  • the machines typically do not have standard peripherals such as floppy disk drives, hard disk drives, or optical disk drives, etc.
  • Other resources such as memory may be somewhat less than that found on a more versatile typical personal computer.
  • the methods described above may be particularly suited for machines with such limited resources.
  • the instructions for implementing the methods described above may be stored within ROM, flash memory, or some other nonvolatile memory within the NC hardware.
  • the software implementation may be incorporated within another application program.
  • the instructions may be included as part of the browser.
  • the instructions may be part of the operating system.
  • the software itself may be stored or distributed on any variety of storage media including optical disks, magnetic disks, tapes, etc.
  • intranets An intranet is typically considered to be a network used within a business entity such as a corporation. Although the intranet is usually intended for internal use only, the business organization may permit the outside Internet community to access all or a part of the intranet.
  • An intranet uses the same communication protocols and tools as the Internet.
  • an intranet supports TCP/IP and Internet tools on an organization's local area network (LAN) or wide-area network (WAN).
  • LAN 180 is an intranet in one embodiment.
  • the intranet offers the ability to leverage the availability all of the tools and applications available for the Internet for the business organization's exclusive use with its own network system.
  • the intranet web page might provide a front-end interface to other information systems within the organization. This could permit, for example, a finance or accounting division to retrieve accounting information stored in a mainframe by using the web page as a front-end for accessing a mainframe database.
  • the use of the caching methods described above may tend to improve response time at each client computer. In addition, caching at each client computer tends to reduce overall intranet traffic, thus leaving even more resources available for handling additional clients or further improving the responsiveness to intranet client requests.

Abstract

Various methods of caching web resources include caching in accordance with a number of times accessed, a frequency of access, or a duration of access. One method of caching web resources includes the step of accessing a first web resource. The first web resource is cached, if no other web resource is accessed after a pre-determined period of time. Another method of caching web resources includes the step of accessing a first web resource. The first web resource is cached, if the first web resource is subsequently accessed more than a pre-determined number of times. Another method of caching web resources includes the step of accessing a plurality of web resources. The accessed web resources are cached as cached web resources in accordance with at least one of a number of times accessed, a frequency of access, or a duration of access. An apparatus comprises storage media containing caching logic for caching web resources. The caching logic includes instructions to cache selected web resources as cached web resources in accordance with at least one of a number of times accessed, a frequency of access, or a duration of access. The selected web resources correspond to a subset of a plurality of accessed web resources.

Description

    FIELD OF THE INVENTION
  • This invention relates to the field of computers. In particular, this invention is drawn to caching web resources obtained from the Internet. [0001]
  • BACKGROUND OF THE INVENTION
  • The Internet is a worldwide network of computers and computer resources sharing a common communication protocol to facilitate the communication of information between computers that may have different hardware and software architectures including different operating systems and file systems. [0002]
  • The Internet uses a client/server architecture for exchanging information. A client computer requests resources from one or more host computers somewhere on the Internet. These resources may include files or services such as information retrieval services, search services, communication services, and recreational services. [0003]
  • A subset of Internet host computers provide multimedia information services. This subset of host computers support a protocol which permits sharing hypermedia documents between computers having different architectures, operating systems, and file systems. These hypermedia documents can be viewed or accessed using a “browser” application program on the client computers. [0004]
  • The World Wide Web is a wide-area hypermedia information retrieval initiative aiming to give universal access to a large universe of information stored in computers that use different hardware and software architectures. Hypermedia is similar to multimedia except that hypermedia contains “hyperlinks” or simply “links” to other information including text, sounds, images, movies, etc. The information may be embodied in the form of a document. The “web” is virtually formed by these hyperlinks. Thus the “web” refers to a body of information or abstract space of knowledge. Physical access to this body of information is frequently accomplished using the Internet. A hypermedia document viewed using a browser is often referred to as a “web page.” [0005]
  • Web pages often contain links to other web resources. For example, a web page may contain a link to another position within the same web page, another web page located somewhere else on the Internet, or links to initiate other services such as searching or file retrieval. These other web resources, for example, can be files designed to produce sounds or movies. The link destination is identified by a Uniform Resource Locator (URL). Every WWW resource located anywhere on the Internet can be identified by a URL. [0006]
  • Using these links within documents, a user may navigate to various web pages located throughout the Internet by following a chain of links. After following a chain of links, a user may need to return to a common page to select another chain of links to follow. This may be the case when exploring a web site or when searching the World Wide Web for sites related to a given topic. [0007]
  • For example, when a client computer issues a search request to a host computer, the host may respond by creating a web page containing links to sites containing information relevant to the user's query. This web page is referred to as the common page. The user may choose to follow a given link from the common page. After reviewing the web page associated with the selected link, the user can typically return to the common page to pursue another link. For example, the user may return to the common page in order to pursue links to other web pages that were indicated as being relevant to a search request. [0008]
  • One disadvantage of current browsers is the lack of sophisticated heuristics for caching web pages and other resources. In one caching scheme the browser caches web pages on a first-in-first out basis. The number of web pages cached is dependent upon the resources (i.e., storage requirements) of each web page as well as the amount of storage set aside for caching web pages. If the common page is not cached, the web browser must access the host's search engine again in order to regenerate the common page. [0009]
  • This caching technique has a number of disadvantages. One disadvantage of this technique is the inefficient use of the host machine resources. In particular, the client computer wastes host computer time by requesting the host computer to regenerate the common web page each time it is accessed. Another disadvantage of regenerating the common page is the time wasted by the client waiting for regeneration and retrieval of the common web page. Yet another disadvantage is the increased Internet traffic associated with reissuing the saved URL and retrieving the generated common page from the host machine's search engine. press Mail Label: EM 531554887 US 3 Attorney Docket No: 42390.P4101 [0010]
  • SUMMARY OF THE INVENTION
  • A method of caching web resources includes the step of accessing a first web resource. The first web resource is cached, if no other web resource is accessed after a pre-determined period of time. [0011]
  • Another method of caching web resources includes the step of accessing a first web resource. The first web resource is cached, if the first web resource is subsequently accessed more than a pre-determined number of times. [0012]
  • Another method of caching web resources includes the step of accessing a plurality of web resources. The accessed web resources are cached as cached web resources in accordance with at least one of a number of times accessed, a frequency of access, or a duration of access. [0013]
  • An apparatus includes storage media containing caching logic for caching web resources. The caching logic includes instructions to cache selected web resources as cached web resources in accordance with at least one of a number of times accessed, a frequency of access, or a duration of access. The selected web resources correspond to a subset of a plurality of accessed web resources.[0014]
  • Other features and advantages of the present invention will be apparent from the accompanying drawings and from the detailed description that follows below. [0015]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which: [0016]
  • FIG. 1 illustrates a client-server architecture networked computer environment. [0017]
  • FIG. 2 illustrates one embodiment of a client computer. [0018]
  • FIG. 3 illustrates a web page and hyperlinks to other web resources. [0019]
  • FIG. 4 illustrates navigation within a web page having hyperlinks to itself. [0020]
  • FIG. 5 illustrates one embodiment of a method of caching web resources such as a web page. [0021]
  • FIG. 6 illustrates an embodiment of another method of caching web resources such as a web page. [0022]
  • FIG. 7 illustrates a method of caching a first web resource such as a web page after a request to access a second web resource is received. [0023]
  • FIG. 8 illustrates retrieval of cached web resources such as web pages. [0024]
  • DETAILED DESCRIPTION
  • FIG. 1 illustrates a [0025] network environment 100 including a communication network commonly referred to as the Internet 150. The Internet includes a combination of routers, repeaters, gateways, bridges, and communications links with computers spread throughout the world. The Internet facilitates communication between computers or other devices connected to the Internet.
  • Some of the computers are referred to as host computers because they provide services upon request. The computers issuing the requests are referred to as client computers. [0026]
  • [0027] Network environment 100 includes multiple (N) client computers (110 thru 120) and multiple (M) host computers (130 thru 140).
  • In one embodiment, computers may use an Internet Service Provider (ISP) to gain access to the Internet. For example, [0028] clients 110 and 112 use ISP(1) 160 to access the Internet. Client 120 uses ISP(X) 170 to access the Internet.
  • Host computers such as [0029] hosts 132 and 140, for example, can be directly connected to the Internet. Alternatively, a host computer (e.g., 130) may use an ISP (e.g., 162) to gain access to the Internet.
  • The host computers (e.g., [0030] 130) and client computers (e.g., 110) can be entirely different architectures, however, they can communicate by using a common communication protocol. In one embodiment, this protocol is the Transmission Control Protocol/Internet Protocol (TCP/IP).
  • FIG. 2 illustrates one embodiment of a client computer architecture. [0031] Client computer 200 includes processor 210. Input devices such as mouse 220 and keyboard 230 permit the user to input data to client computer 200. Information generated by the processor is provided to an output device such as display 240. Client computer 200 typically includes random access memory (RAM) 260 which is used by the processor for executing application programs.
  • In one embodiment, [0032] client computer 200 includes nonvolatile memory 270. Nonvolatile memory 270 is used to retain programs and data even when the client computer is powered down. In one embodiment nonvolatile memory 270 is an electro-mechanical hard drive. In other embodiments, nonvolatile memory 270 might be a solid state disk drive or a flash electrically erasable programmable read only memory (flash EEPROM).
  • [0033] Mouse 220, keyboard 230, RAM 260, and nonvolatile memory 270 are typically communicatively coupled to processor 210 through one or more address and data buses such as bus 250.
  • The client computer can request services from a host computer. Hosts typically provide services such as file retrieval services, search services, communication services, and recreational services. [0034]
  • For example, Gopher provides information retrieval services. Popular search services include Archie. Veronica is the name of another search service typically used in conjunction with Wide Area Information Servers (WAIS). Communication services include electronic mail, UseNet, Telnet, and Internet Relay Chat (IRC). An example of a recreational service is a Multi-User Dungeon (MUD). [0035]
  • A subset of Internet host computers provide multimedia information services. This subset of host computers permit physical access to the abstract body of information referred to as the World Wide Web (WWW) and are referred to as WWW hosts or WWW servers. [0036]
  • World Wide Web host computers support a protocol which permits users having computers with different architectures, operating systems, and application programs to share multimedia enhanced documents. In one embodiment, this protocol is the Hypertext Transport Protocol (“HTTP”). The multimedia enhanced documents are often referred to as “web pages.” The application specific to a given hardware platform that permits viewing the web pages is often referred to as a browser. [0037]
  • Hypermedia enhanced documents typically provide links (i.e., hyperlinks) to other resources in response to selection of an anchor. The anchor is typically a word, group of words, image, or some demarcated area of the document. For graphical-based browsers, the anchor is generally activated by pointing to the anchor and clicking a selection button of a pointing device such as a mouse. For text-based browsers, the anchor is generally activated by using cursor-control keys to select the anchor and pressing another key (e.g., <ENTER>). These anchors and links are defined using a language such as hypertext markup language (“HTML”). The browser interprets an HTML file to display the web page. The HTML file also determines what resource is accessed in response to activation of a given anchor. [0038]
  • Uniform Resource Locators (URLs) provide a standard way of referencing Internet resources including web resources regardless of whether the resource is a document, an image, a movie, a sound, or another web page. A browser, for example, can access a host machine identified by the URL and then retrieve the resource specified by the URL. A uniform resource locator (URL) is a description of an item including the location of the item that is to be retrieved. For example, the location might be the local disk drive or another file at another Internet site. The URL is not limited to other World Wide Web sites and may in fact refer to other Internet protocols and services such as Gopher, WAIS, UseNet news, Telnet, or anonymous FTP (file transfer protocol). [0039]
  • A URL identifies the protocol as well as the location of the item to be retrieved. For example, consider the following URL: [0040]
  • http://www.intel.com/intel/product/index.html This URL identifies the protocol as “http” (“Hypertext Transport Protocol”). Other protocols include “gopher” (to initiate a Gopher session), “ftp” (to initiate a file transfer), “file” (to retrieve a local file), “wais” (for accessing a WAIS server), “news” (for reading UseNet newsgroups), and “telnet” for initiating a Telnet session. [0041]
  • The portion “www.intel.com” is an Internet host address or symbolic representation of an Internet host address. Thus “www.intel.com” identifies a specific host. The portion of the URL identifying the specific host is often referred to as a web site. [0042]
  • The remainder is a UNIX-style path for the resource that is being accessed. Thus “intel/product/index.html” instructs a browser to retrieve the file index.html from the directory path “intel/product” on the Internet host. [0043]
  • Often a user may simply provide the protocol and Internet host address such as “http://www.intel.com” without explicitly identifying a specific resource. The server software executing on the host machine, however, provides a default resource in response to such a request. In one embodiment, this might be a file named “index.html” or “index.htm” for machines having file systems that do not support longer filename extensions. Thus the use of the web site alone implicitly identifies a default resource. For web pages, this default resource is often referred to as the “home page.” Alternatively, the home page may be explicitly defined. Thus the URL either explicitly or implicitly identifies a specific resource, protocol, and host machine on the Internet. [0044]
  • A given web page may be formed from a number of resources identified within the web page's html file. For example, “index.html” contains instructions for generating a hypermedia document for the client. The client's browser interprets the html file in order to produce the corresponding web page. The html file may instruct the client's browser to access any number of other web resources located on the host or elsewhere including bitmap files, files for producing animated video or sound, etc. Each of these resources is identified either explicitly or implicitly by a URL. [0045]
  • FIG. 3 illustrates one example of using URLs to access other Internet resources. [0046] Web page 300 includes anchors 302 and 304 for accessing other web resources. Anchors are often identified by highlighted text, an icon, or an image on the web page. In one embodiment, the web page is defined using hypertext markup language (“HTML”) to describe the text, icons, images, etc. of the web page.
  • The highlighted text, icon, or image is associated with a URL. This association is the hyperlink. Often the terms “hyperlink” or “link” are used synonymously with the term “anchor.” Thus “[0047] anchor 302” is equivalent to “link 302,” or “hyperlink 302.”
  • Selecting an anchor effectively selects and follows the hyperlink to the resource identified by the associated URL. Selecting [0048] anchors 302 or 304, for example, will access other Internet resources that may be physically located in various host computers throughout the Internet. The selection is typically accomplished with a pointing device such as a mouse.
  • For some applications (i.e., searching) users often re-visit web pages previously visited. For example, the user may have used an Internet search engine to generate a web page containing the results of a search. This resulting web page may contain a number of links to other web pages. Users typically select links one at a time from the resulting web page. After following a given link, the user returns to the resulting web page in order to follow another link suggested by the search engine. Thus the web page resulting from the search may be visited a number of times. [0049]
  • Referring to FIG. 3, [0050] web page 300 provides hyperlinks generated as a result of a search. Web page 310 is accessed by selecting hyperlink 302. From web page 310, the user can access web page 320 by selecting anchors 314 or 312. Anchor 312 is an example of using an image or an icon as an anchor. From web page 320, the user can select anchor 322 to return to web page 310. Thus the user can follow or navigate a chain of links by selecting the anchors.
  • After perusing [0051] web pages 310 and 320, the user can return to web page 300 in order to follow another link identified by the search results. For example, the user can return to the search results web page 300 in order to follow the chain of links starting with hyperlink 304. Selection of anchor 304 accesses web page 330. From web page 330, the user can access web page 340 by selecting anchor 336. The user can return to web page 330 by selecting anchor 342 on web page 340. Web page 330 also contains hyperlinks to web page 310. Thus the user can access web page 310 by selecting anchor 332.
  • [0052] Web page 300 may be referred to as the “common page.” Web page 300 is the common link to all of the other links contained within web page 300. For example, web page 300 provides access to the chain of links beginning with link 302 and the chain of links beginning with 304 regardless of whether or how those chains might subsequently intersect.
  • In order to facilitate following links, browsers typically save the URL of the most recently accessed web pages. The user can navigate “forward” and “backward” among their most recently selected web pages even if the web pages do not contain specific links to each other. Thus for example, [0053] web page 330 provides a link to web page 310, but the converse is not true. The browser provides means to navigate “backward” and “forward” among the most recently selected web pages. Thus, for example, if web page 310 was accessed from web page 330, the user can return to web page 330 by navigating backward using features of the browser. This type of approach may be necessary in order to return to search page 300 after following a chain of links.
  • FIG. 4 illustrates an example of following hyperlinks to another location within the same web page. [0054] Web page 400 can only be viewed a portion at a time due to the actual size of the display as indicated by outline 420. In addition to text, web page 400 includes anchors 440 and 450 to other resources.
  • In the illustrated embodiment, [0055] anchor 440 is an icon that indicates that selection of anchor 440 will access a movie. In one embodiment, the selection of anchor 440 accesses a file identified by an associated URL. The browser recognizes the file as containing data for generating a movie. The browser either plays the movie in accordance with the data or provides the file to another application in order to play the movie.
  • [0056] Anchor 450 is an icon that indicates that selection of anchor 450 will access a sound. In one embodiment, the selection of anchor 450 accesses a file identified by an associated URL. The browser recognizes the file as containing data for generating sound. The browser either interprets the data to generate the sound or provides the file to another application in order to generate the sound.
  • [0057] Web page 400 also provides an index to other locations within the same web page. Selecting anchor 410, for example, repositions the web page 400 within the viewing area of the display so that the user might see view 460. Due to the physical limitations of the displayable area, the browser typically provides a method of scrolling (e.g., scroll bars) so that the user may navigate within the same web page by scrolling.
  • The process of accessing a host machine and retrieving the specified resource in accordance with the URL may take a considerable amount of time. In an effort to decrease the time spent waiting to download web pages, browsers typically have a cache feature for caching web pages. When a URL specifies a web page that has previously been cached, the browser may retrieve the cached version of the web page instead of accessing the host machine again when re-visiting the web page. [0058]
  • One caching mechanism attempts to cache every web page accessed. Web pages are cached on a first-in-first-out basis so that the most recently accessed non-cached web page can be cached. [0059]
  • One disadvantage of this method is inefficient usage of the cache may result in excessive storage set aside for the cache. For example, web pages that are not likely to be re-visited are cached. Due to size constraints of the cache, frequently re-visited web pages or web pages with a high likelihood of being re-visited, such as common pages, might be flushed from the cache in order to permit caching the most recently accessed web page. In order to provide a greater likelihood that frequently visited web pages remain within the cache, the cache size may be increased. Increasing the cache size, however, consumes computer resources that could otherwise be allocated for other purposes. [0060]
  • FIG. 5 illustrates a method of caching web resources based on the length of time spent browsing the web resource. In the embodiment illustrated in FIG. 5, the web resource is a web page. [0061]
  • The method of caching web resources begins with [0062] step 510. A first web page is accessed in step 520. If no other web page is selected after a pre-determined period of time as determined in step 530, then the first web page is cached. Otherwise the first web page is not cached and processing is completed in step 590.
  • In one embodiment, the first web page is automatically cached after the pre-determined time period has elapsed, if no other web page is selected. [0063]
  • In an alternative embodiment, the first web page is cached only when a second web page has been selected after a pre-determined time period. [0064]
  • FIG. 6 illustrates another method for caching web resources based on the number of visits to a given web resource. In this embodiment the web resource is a web page. [0065]
  • The method of caching web pages begins with [0066] step 610. A first web page is accessed in step 620. If the same web page was previously accessed a pre-determined number of times as determined by step 630, then the web page is cached in step 640 and processing is completed in step 690. Thus after the initial access, the first web page is cached if it is subsequently accessed more than a pre-determined number of times.
  • Various techniques may be used to track the number of times a particular web resource is accessed. For example, a table may be used. The table entries are indexed by a unique key such as the complete, explicit URL for each web resource. When a web resource is accessed, the table is scanned to determine if that web resource already has a corresponding entry in the table by searching for that web resource's URL in the table. If the web resource has not previously been accessed, then a new entry in the table is created using that web resource's URL. If the web resource has previously been accessed (as determined by scanning the table) then a count field associated with that web resource's URL in the table is incremented to reflect another access has been made. [0067]
  • In one embodiment, a resource such as an html file might instruct the browser to generate a web page from a number of other resources. In such a case, an entry is created in the table for each web resource accessed. [0068]
  • In one embodiment, the count field is incremented only if the subsequent accesses are interleaved with accesses to other web resources. Thus if the web resource being tracked is a web page, consecutive accesses that merely reposition the web page within the display do not increase the count. Visiting another web page and subsequently returning to the first web page will, however, increase the count. [0069]
  • In one embodiment, the table and cache are erased and re-initialized upon starting the browser application. Thus web resources are cached based upon the number of times accessed within a given browsing session. If this is the case, then the table is effectively a frequency table. In other words, the web resource is cached if the same resource is accessed more than a pre-determined number of times within a given browsing session. Thus the web resource is cached based upon frequency of access. [0070]
  • In an alternative embodiment, the table and cache are erased and re-initialized when requested by the user. Thus web resources may be cached based upon the total number of times accessed independent of the number of browsing sessions. [0071]
  • In yet another embodiment, the table provides for tracking the relative age of the cached web resource. If the resource has remained in the cache beyond a pre-determined period of time, then the table entry for that resource may be invalidated and the resource may be flushed from the cache. The relative age may be tracked in the table by providing an additional field and storing the date and time that the corresponding resource was cached. Alternatively, the field stores a value that permits determining in what order the resources were cached. [0072]
  • Some browsers “cache” resources as they are being downloaded from a host. The methods described above may be applied to determine when and if resources should be flushed from the cache as opposed to whether they are cached. In other words, the methods described above can be used to determine the persistence of resources stored in the cache. [0073]
  • For example, consider a browser that caches resources as they are downloaded. In one embodiment, the methods described above are applied to determine which resources should remain in the cache when a triggering event initiates flushing of at least a portion of the cache. [0074]
  • In one embodiment, a triggering event is when the browser starts. In another embodiment, exiting the browser application is a triggering event. In another embodiment, flushing of at least a portion of the cache is initiated when the cache reaches a pre-determined size. In yet another embodiment, flushing of at least a portion of the cache is initiated whenever the cache has less than a pre-determined percentage of available space left. [0075]
  • Thus “caching” in the context of cache persistence means allowing the resource to stay in the cache. Application of the methods described above to cache persistence permits applying the rules described above across multiple browser sessions. [0076]
  • For example, a resource that is accessed infrequently during a given browser session may persist in the cache under the total number of accesses rule, if a sufficient number of accesses occur before a triggering event flushes the resource, even if the accesses are accumulated over more than one browser session. In one embodiment, the count field associated with the URL of a given resource is incremented each time the given resource is accessed. If the value in the count field is less than a pre-determined value when the triggering event occurs, then the resource is flushed from the cache. [0077]
  • Thus one method of persistence caching includes the step of caching at least one web resource of a plurality of web resources accessed during a plurality of browser sessions. A count of the number of accesses to each cached web resource is computed. Selected cached web resources are flushed in response to a triggering event, if the corresponding count is less than a pre-determined value. [0078]
  • Similarly, the table may include a “session” field to aid in tracking an average frequency of access across multiple browser sessions. Thus each time the browser is started up, the session field is incremented for all URL entries. The count field is incremented for a given URL whenever access is made to the resource identified by the given URL. When a triggering event occurs, the average frequency of access can be calculated [0079] ( e . g . , count sessions )
    Figure US20010034814A1-20011025-M00001
  • for each URL to determine if the resource identified by the given URL should remain in the cache or be flushed. If the average frequency of access for a given URL is less than a pre-determined value at the time a triggering event occurs, then the identified resource is flushed. [0080]
  • Thus another method of persistence caching includes the step of caching at least one web resource of a plurality of web resources accessed during a plurality of browser sessions. An access count of the number of accesses to each cached web resource is computed. A session count of the number of sessions a selected web resource is accessed is computed. Selected cached web resource are flushed in response to a triggering event, if the corresponding average frequency of access determined by dividing the corresponding access count by the corresponding session count is less than a pre-determined value. [0081]
  • The duration of access rule may also be used in the cache persistence context. The table may be modified to include a “duration” field. When accessing a given resource, the length of time spent without accessing any other resource is measured. This length of time is then added to the duration field. The duration field thus indicates the accumulated time spent on the given resource. When a triggering event occurs, the given resource is flushed unless the accumulated time in the duration field exceeds a pre-determined value. [0082]
  • Thus a duration of access for persistence caching includes the step of caching at least one web resource of a plurality of web resources accessed during a plurality of browser sessions. A length of time spent without accessing any other resource is accumulated for each cached web resource. Selected cached web resource are flushed in response to a triggering event, if the corresponding accumulated length of time is less than a pre-determined value. [0083]
  • In one embodiment, regardless of the caching rule applied, the table entry identifying a given resource is deleted or marked invalid once the given resource is flushed. [0084]
  • Referring to the client computer architecture illustrated in FIG. 2, various storage media may be used for caching the web resources. For example, in one embodiment, the web resource is cached in [0085] RAM 260.
  • In an alternative embodiment, the web resource is cached using nonvolatile storage such as [0086] nonvolatile memory 270. In one embodiment, nonvolatile memory 270 is a solid state disk. In another embodiment, nonvolatile memory 270 is flash electrically erasable programmable read only memory.
  • When a web resource is cached it must be mapped to its corresponding full URL. Otherwise a “name collision” may occur, for example, if resources with the same name (e.g., “index.html”) are downloaded from different sites. [0087]
  • This can be accomplished by caching the web resource and identifying it directly by its full URL. In one embodiment, the full URL is expressed as a property of the file. Thus the file can be renamed to avoid name collisions, but identified for subsequent retrieval by examining the file properties of the cached files. [0088]
  • In another embodiment, each entry of the caching table includes a field to identify the name of the resource as cached. Thus if the resource must be renamed due to a name collision, the name as cached is readily available from the same table that indicates whether the resource was cached. [0089]
  • In another embodiment, a separate mapping table can be used to map files as cached to their corresponding full URLs. [0090]
  • The web resource need not be cached locally on the client computer. Referring to FIG. 2, for example, client [0091] 136 residing on local area network 140 may cache the web resources on local area network server 144.
  • FIGS. 5 and 6 effectively indicate conditions that determine if an accessed web resource should be cached, but not when the accessed web resource should be flushed. Accessed web resources can be flushed as the need arises, if they are not cached or have not been selected for caching. Eventually, even cached web resources may need to be flushed in order to permit caching additional web resources. In one embodiment, cached web resources are flushed on a first-in, first-out basis. In this embodiment, the use of a relative age field, as described above, permits tracking the order in which web resources were cached for purposes of determining the order in which they should be flushed. [0092]
  • Thus methods of caching web resources based on duration of access, number of times accessed, and frequency of access have been described. Various embodiments may combine these methods of caching. In particular, the browser may be configured to apply caching rules in accordance with the type of resource. For example, image files may be associated with one caching rule. Text files might be associated with a different caching rule. In addition, once the determination is made whether a resource should be cached, the resource may be cached at that time or in response to a request to access another resource. [0093]
  • FIG. 7, for example, combines the methods presented above for determining if a web resource is selected for caching. The web resource is not cached, however, until a request to access another web resource is received. The method begins with [0094] step 710 using web pages as examples of web resources.
  • In [0095] step 720, a first web page is accessed. In the embodiment illustrated in FIG. 7, this first web resource or web page is not presently being cached.
  • In [0096] step 730, a request to access a second web page is received. In this context, the second web page is a web resource other than the first web page. Thus selecting an anchor on the first web page in order to reposition the first web within the display is not considered to be receiving a request to access another web resource or a “second” web page.
  • After a request to access a second web page is received, the method makes the determination of whether the first web resource should be cached in [0097] steps 740 and 750. In particular, if the first web page was previously accessed a pre-determined number of times, as determined in step 740, then the first web page is cached in step 760. Alternatively, if a pre-determined time period has elapsed since accessing the first web page as determined in step 750, then the first web page is cached in step 760.
  • The requested resource, (i.e., the second web page) is not accessed until [0098] step 770. Thus the second web page is not accessed until either 1) a decision is made not to cache the first web page, or 2) a determination is made to cache the first web page and the first web page is cached.
  • FIG. 7 thus combines the methods of caching based on a duration of access and a number of times the resource is requested. The resource is not cached until a request to access another resource is received. [0099]
  • FIG. 8 illustrates one embodiment of a method of retrieving a cached web resource. In step [0100] 810 a request is made to access a web resource, in particular a web page. Step 820 determines if the requested web page is in the cache. If the web page is not in the cache, then the web resource is retrieved from the Internet in step 840. If, however, the web page is cached, then the browser retrieves the cached version of the web page instead of the actual web resource in step 830. Various embodiments may permit the user to “refresh” the web page by retrieving it again from the host computer instead of retrieving the cached version of the resource.
  • In one embodiment, the methods described above are implemented as a series of instructions within a program. The program may be implemented in software, firmware, or hardware. [0101]
  • The firmware or hardware implementations may be particularly suited for systems designed specifically to support Internet tools and applications, and communication protocols. These machines are referred to as NC (“network computer”) machines. [0102]
  • One example of such a machine is the NC manufactured by Oracle Corporation, Redwood Shores, Calif. The NC machines achieve hardware costs lower than that of a typical personal computer by offering few capabilities other than the ability to “browse” the Internet. As a result, the machines typically do not have standard peripherals such as floppy disk drives, hard disk drives, or optical disk drives, etc. Other resources such as memory may be somewhat less than that found on a more versatile typical personal computer. [0103]
  • The methods described above may be particularly suited for machines with such limited resources. The instructions for implementing the methods described above may be stored within ROM, flash memory, or some other nonvolatile memory within the NC hardware. [0104]
  • The software implementation may be incorporated within another application program. In one embodiment, for example, the instructions may be included as part of the browser. In another embodiment, the instructions may be part of the operating system. The software itself may be stored or distributed on any variety of storage media including optical disks, magnetic disks, tapes, etc. [0105]
  • The methods described above are also applicable to “intranets.” An intranet is typically considered to be a network used within a business entity such as a corporation. Although the intranet is usually intended for internal use only, the business organization may permit the outside Internet community to access all or a part of the intranet. [0106]
  • An intranet uses the same communication protocols and tools as the Internet. Thus in one embodiment an intranet supports TCP/IP and Internet tools on an organization's local area network (LAN) or wide-area network (WAN). With reference to FIG. 1, [0107] LAN 180 is an intranet in one embodiment. The intranet offers the ability to leverage the availability all of the tools and applications available for the Internet for the business organization's exclusive use with its own network system.
  • Thus, for example, different divisions within a corporate entity can create their own web pages to announce employment opportunities, new product offerings, etc. The intranet web page might provide a front-end interface to other information systems within the organization. This could permit, for example, a finance or accounting division to retrieve accounting information stored in a mainframe by using the web page as a front-end for accessing a mainframe database. The use of the caching methods described above may tend to improve response time at each client computer. In addition, caching at each client computer tends to reduce overall intranet traffic, thus leaving even more resources available for handling additional clients or further improving the responsiveness to intranet client requests. [0108]
  • In the preceding detailed description, the invention is described with reference to specific exemplary embodiments thereof. Various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention as set forth in the claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. [0109]

Claims (30)

What is claimed is:
1. A method of caching web resources, comprising the steps of:
accessing a first web resource; and
caching the first web resource, if no other web resource is accessed after a pre-determined period of time.
2. The method of
claim 1
wherein the first web resource is cached in a random access memory.
3. The method of
claim 1
wherein the first web resource is cached in a nonvolatile memory.
4. The method of
claim 3
wherein the nonvolatile memory is one of a magnetic disk and a flash electrically erasable programmable read only memory (flash EEPROM).
5. The method of
claim 1
further comprising the step of:
accessing a web resource other than the first web resource; and
retrieving the cached first web resource in response to a subsequent request to access the first web resource.
6. The method of
claim 1
wherein the first web resource is a web page.
7. The method of
claim 1
wherein the first web resource is a file for producing at least one of a sound and a movie.
8. A method of caching web resources, comprising the steps of:
accessing a first web resource; and
caching the first web resource, if the first web resource is subsequently accessed more than a pre-determined number of times.
9. The method of
claim 8
wherein the first web resource is cached in a random access memory.
10. The method of
claim 8
wherein the first web resource is cached in nonvolatile memory.
11. The method of
claim 10
wherein the nonvolatile memory is one of a magnetic disk and a flash electrically erasable programmable read only memory (flash EEPROM).
12. The method of
claim 8
further comprising the steps of:
accessing a web resource other than the first web resource; and
retrieving the cached first web resource in response to a subsequent request to access the first web resource.
13. The method of
claim 8
wherein the first web resource is a web page.
14. The method of
claim 8
wherein the first web resource is a file for producing at least one of a sound and a movie.
15. A method of caching web resources, comprising the steps of:
accessing a plurality of web resources; and
caching accessed web resources as cached web resources in accordance with one of a number of times accessed, a frequency of access, or a duration of access.
16. The method of
claim 15
wherein web resources are cached in random access memory.
17. The method of
claim 15
wherein web resources are cached in nonvolatile memory.
18. The method of
claim 15
wherein the nonvolatile memory is at least one of a magnetic disk and a flash electrically erasable programmable read only memory (flash EPROM).
19. The method of
claim 15
further comprising the step of:
retrieving a cached web resource from a cache in response to an access request for a previously accessed web resource, if the cached web resource corresponds to the previously accessed web resource.
20. The method of
claim 15
wherein an accessed web resource is selected for caching if the accessed web resource is accessed a pre-determined number of times within a pre-determined time period.
21. The method of
claim 15
wherein an accessed web resource is selected for caching if the accessed web resource is accessed a pre-determined number of times.
22. The method of
claim 15
wherein an accessed web resource is selected for caching if no other web resource is accessed after a pre-determined period of time.
23. The method of
claim 15
wherein the first web resource is a web page.
24. The method of
claim 15
wherein the first web resource is a file for producing at least one of a sound, an image, and a movie.
25. An apparatus comprising:
storage media containing caching logic for caching web resources, wherein the caching logic includes instructions to cache selected web resources as cached web resources in accordance with at least one of a number of times accessed, a frequency of access, or a duration of access, wherein the selected web resources correspond to a subset of a plurality of accessed web resources.
26. The apparatus of
claim 25
further comprising:
a cache, wherein the caching logic includes instructions to retrieve a cached web resource from the cache in response to an access request for a previously accessed web resource, if the cached web resource corresponds to the previously accessed web resource.
27. The apparatus of
claim 25
wherein an accessed web resource is selected for caching if the accessed web resource is accessed a pre-determined number of times within a pre-determined time period.
28. The method of
claim 25
wherein an accessed web resource is selected for caching if the accessed web resource is accessed a pre-determined number of times.
29. The method of
claim 25
wherein an accessed web resource is selected for caching if no other web resource is accessed after a pre-determined period of time.
30. The apparatus of
claim 25
wherein the instructions form a portion of at least one of an operating system and a browser.
US08/918,726 1997-08-21 1997-08-21 Caching web resources using varied replacement sttrategies and storage Abandoned US20010034814A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US08/918,726 US20010034814A1 (en) 1997-08-21 1997-08-21 Caching web resources using varied replacement sttrategies and storage
US09/860,969 US6526479B2 (en) 1997-08-21 2001-05-18 Method of caching web resources

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/918,726 US20010034814A1 (en) 1997-08-21 1997-08-21 Caching web resources using varied replacement sttrategies and storage

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US09/860,969 Continuation US6526479B2 (en) 1997-08-21 2001-05-18 Method of caching web resources

Publications (1)

Publication Number Publication Date
US20010034814A1 true US20010034814A1 (en) 2001-10-25

Family

ID=25440848

Family Applications (2)

Application Number Title Priority Date Filing Date
US08/918,726 Abandoned US20010034814A1 (en) 1997-08-21 1997-08-21 Caching web resources using varied replacement sttrategies and storage
US09/860,969 Expired - Lifetime US6526479B2 (en) 1997-08-21 2001-05-18 Method of caching web resources

Family Applications After (1)

Application Number Title Priority Date Filing Date
US09/860,969 Expired - Lifetime US6526479B2 (en) 1997-08-21 2001-05-18 Method of caching web resources

Country Status (1)

Country Link
US (2) US20010034814A1 (en)

Cited By (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010013042A1 (en) * 2000-02-08 2001-08-09 Fujitsu Limited Information retrieval system and a computer product
US20020008719A1 (en) * 2000-06-28 2002-01-24 Dai Miyawaki Internet database
WO2002027557A1 (en) * 2000-09-26 2002-04-04 I2 Technologies, Inc. System and method for migrating data in an electronic commerce system
US20020073206A1 (en) * 1998-01-16 2002-06-13 Janardhanan Jawahar Methods and apparatus for enabling dynamic resource collaboration
US20020078300A1 (en) * 1999-08-16 2002-06-20 Chanda Dharap Semantics-based caching policy to minimize latency
US20020082932A1 (en) * 2000-09-26 2002-06-27 I2 Technologies, Inc. System and method for facilitating electronic commerce transactions
US20020107910A1 (en) * 2001-02-02 2002-08-08 Yan Zhao Client/server two-way communication system framework under HTTP protocol
US20020174089A1 (en) * 2001-05-15 2002-11-21 I2 Technologies, Inc. Facilitating electronic commerce transactions using buyer profiles
US20020174022A1 (en) * 2001-05-15 2002-11-21 I2 Technologies, Inc. Pre-qualifying sellers during the matching phase of an electronic commerce transaction
US20030065737A1 (en) * 2000-04-03 2003-04-03 Jannes Aasman Method and a system for retrieving data of a data network
US6633316B1 (en) * 1999-05-13 2003-10-14 International Business Machines Corporation Method and apparatus for implementing direct link selection of cached, previously visited links in nested web pages
US6708161B2 (en) 2000-09-26 2004-03-16 I2 Technologies Us, Inc. System and method for selective database indexing
US6857010B1 (en) * 2000-11-03 2005-02-15 Koninklijke Philips Electronics N.V. System for display information content on a screen having a limited viewing area by using statistics provided by a user history file to display in visible portion of the screen a user-controllable cursor on a most frequently previously selected matching hyperlink
US20050114523A1 (en) * 2003-11-26 2005-05-26 International Business Machines Corporation Computer-implemented method, system and program product for providing real-time access to information on a computer system over a network
US20050198309A1 (en) * 2000-03-20 2005-09-08 Nec Corporation System and method for intelligent web content fetch and delivery of any whole and partial undelivered objects in ascending order of object size
US20050197926A1 (en) * 2000-09-26 2005-09-08 I2 Technologies Us, Inc. System and method for identifying a product
US20060080664A1 (en) * 1998-01-16 2006-04-13 Aspect Communications Corporation Methods and apparatus for enabling dynamic resource collaboration
US7054917B1 (en) * 2002-08-07 2006-05-30 Propel Software Corporation Method for accelerating delivery of content in a computer network
US20060149749A1 (en) * 2001-10-17 2006-07-06 Loureiro Jorge Diniz Q Data management
US20060167979A1 (en) * 2004-12-21 2006-07-27 Harald Fuchs Mapping of a content request for a cache server
US7107517B1 (en) * 1998-10-30 2006-09-12 Fujitsu Limited Method for processing links and device for the same
US20070005887A1 (en) * 2005-06-17 2007-01-04 Larson Tait E Caching resources requested by applications
US7162453B1 (en) 2001-06-29 2007-01-09 I2 Technologies Us, Inc. Protecting content from unauthorized reproduction
US20070011451A1 (en) * 2005-07-07 2007-01-11 Botzum Keys S Workstation application server programming protection via classloader policy based visibility control
US20070106846A1 (en) * 2005-11-04 2007-05-10 Sun Microsystems, Inc. Adaptive replacement cache
US20070150450A1 (en) * 2005-12-28 2007-06-28 Hitachi, Ltd. Apparatus and method for quick retrieval of search data
US7263515B1 (en) 2001-06-18 2007-08-28 I2 Technologies Us, Inc. Content enhancement in an electronic marketplace
US7330829B1 (en) 2001-06-26 2008-02-12 I2 Technologies Us, Inc. Providing market feedback associated with electronic commerce transactions to sellers
US7343412B1 (en) * 1999-06-24 2008-03-11 International Business Machines Corporation Method for maintaining and managing dynamic web pages stored in a system cache and referenced objects cached in other data stores
US7346560B1 (en) 2001-06-29 2008-03-18 I2 Technologies Us, Inc. Protecting content from unauthorized reproduction
US7412424B1 (en) 2002-03-19 2008-08-12 I2 Technologies Us, Inc. Third party certification of content in electronic commerce transactions
US7475030B1 (en) 2001-05-16 2009-01-06 I2 Technologies Us, Inc. Facilitating electronic commerce transactions using a shared product data repository
US7526615B2 (en) 2005-11-04 2009-04-28 Sun Microsystems, Inc. Compressed victim cache
US20090204684A1 (en) * 1998-10-06 2009-08-13 Texas Technology Ventures System and method for creating and navigating a linear hypermedia resource program
US20090249179A1 (en) * 2008-03-28 2009-10-01 Shieh Johnny M Method to display multiple cached webpages related to a bookmark
US7739379B1 (en) * 1997-09-26 2010-06-15 Emc Corporation Network file server sharing local caches of file access information in data processors assigned to respective file systems
US7809672B1 (en) 2001-06-28 2010-10-05 I2 Technologies Us, Inc. Association of data with a product classification schema
US8086643B1 (en) 2001-06-28 2011-12-27 Jda Software Group, Inc. Translation between product classification schemas
US8095642B1 (en) * 2005-11-16 2012-01-10 Sprint Spectrum L.P. Method and apparatus for dynamically adjusting frequency of background-downloads
US20130007235A1 (en) * 2011-06-29 2013-01-03 International Business Machines Corporation Inteligent offline cahcing of non-navigated content based on usage metrics
US20160328485A1 (en) * 2014-07-30 2016-11-10 Yandex Europe Ag Managing web browser cache for offline browsing
CN106611032A (en) * 2015-10-27 2017-05-03 广州市动景计算机科技有限公司 Webpage pre-loading method and device

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6667967B1 (en) 1999-05-14 2003-12-23 Omninet Capital, Llc High-speed network of independently linked nodes
US6823341B1 (en) * 1999-12-06 2004-11-23 International Business Machines Corporation Method, system and program for providing indexed web page contents to a search engine database
WO2001050337A1 (en) * 1999-12-31 2001-07-12 Commonwealth Scientific And Industrial Research Organisation A method and system for communication in the usenet
US20010047404A1 (en) * 2000-05-24 2001-11-29 Takashi Suda Apparatus for managing web site addresses
JP2002207620A (en) * 2001-01-10 2002-07-26 Toshiba Corp File system and data caching method of the same system
US7085891B2 (en) * 2001-04-04 2006-08-01 International Business Machines Corporation Method for managing a cache memory using a predictive modeling engine to select a caching algorithm
US7146409B1 (en) * 2001-07-24 2006-12-05 Brightplanet Corporation System and method for efficient control and capture of dynamic database content
US8045565B1 (en) 2001-11-20 2011-10-25 Brookline Flolmstead Llc Method and apparatus for an environmentally hardened ethernet network system
US20040073604A1 (en) * 2002-10-11 2004-04-15 Kazuhiro Moriya Cache control method of proxy server with white list
US7428644B2 (en) * 2003-06-20 2008-09-23 Micron Technology, Inc. System and method for selective memory module power management
US7765196B2 (en) * 2003-06-23 2010-07-27 Dell Products L.P. Method and apparatus for web cache using database triggers
US7467131B1 (en) * 2003-09-30 2008-12-16 Google Inc. Method and system for query data caching and optimization in a search engine system
US7437364B1 (en) * 2004-06-30 2008-10-14 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
US8676922B1 (en) 2004-06-30 2014-03-18 Google Inc. Automatic proxy setting modification
US8224964B1 (en) 2004-06-30 2012-07-17 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
US9262490B2 (en) * 2004-08-12 2016-02-16 Oracle International Corporation Adaptively routing transactions to servers
US20060058953A1 (en) 2004-09-07 2006-03-16 Cooper Clive W System and method of wireless downloads of map and geographic based data to portable computing devices
US20060224571A1 (en) 2005-03-30 2006-10-05 Jean-Michel Leon Methods and systems to facilitate searching a data resource
GB2431742A (en) * 2005-10-27 2007-05-02 Hewlett Packard Development Co A method of retrieving data from a data repository
US7908260B1 (en) 2006-12-29 2011-03-15 BrightPlanet Corporation II, Inc. Source editing, internationalization, advanced configuration wizard, and summary page selection for information automation systems
US8812651B1 (en) 2007-02-15 2014-08-19 Google Inc. Systems and methods for client cache awareness
US9065793B2 (en) * 2011-02-24 2015-06-23 Cbs Interactive Inc. Rendering web content using pre-caching
US10063650B2 (en) 2014-09-22 2018-08-28 Belkin International, Inc. Intranet distributed caching
US10284299B2 (en) 2014-06-02 2019-05-07 Belkin International, Inc. Optimizing placement of a wireless range extender
US9842148B2 (en) 2015-05-05 2017-12-12 Oracle International Corporation Method for failure-resilient data placement in a distributed query processing system
CN105939208B (en) * 2015-11-26 2019-05-07 杭州迪普科技股份有限公司 The transmission method and device of sampled data
US10474653B2 (en) 2016-09-30 2019-11-12 Oracle International Corporation Flexible in-memory column store placement
US10521090B2 (en) 2017-07-13 2019-12-31 International Business Machines Corporation Dashboard generation based on user interaction
CN110661862A (en) * 2019-09-20 2020-01-07 网宿科技股份有限公司 Method for preheating resource file and central management system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5892917A (en) * 1995-09-27 1999-04-06 Microsoft Corporation System for log record and log expansion with inserted log records representing object request for specified object corresponding to cached object copies
US6012126A (en) * 1996-10-29 2000-01-04 International Business Machines Corporation System and method for caching objects of non-uniform size using multiple LRU stacks partitions into a range of sizes
US5873100A (en) * 1996-12-20 1999-02-16 Intel Corporation Internet browser that includes an enhanced cache for user-controlled document retention
US5889958A (en) * 1996-12-20 1999-03-30 Livingston Enterprises, Inc. Network access control system and process
JP3273497B2 (en) * 1996-12-20 2002-04-08 株式会社リコー Optical recording medium and manufacturing method thereof

Cited By (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7739379B1 (en) * 1997-09-26 2010-06-15 Emc Corporation Network file server sharing local caches of file access information in data processors assigned to respective file systems
US8312146B2 (en) 1998-01-16 2012-11-13 Aspect Software, Inc. Methods and apparatus for enabling dynamic resource collaboration
US20060080664A1 (en) * 1998-01-16 2006-04-13 Aspect Communications Corporation Methods and apparatus for enabling dynamic resource collaboration
US20020073206A1 (en) * 1998-01-16 2002-06-13 Janardhanan Jawahar Methods and apparatus for enabling dynamic resource collaboration
US6981256B2 (en) * 1998-01-16 2005-12-27 Aspect Software, Inc. Methods and apparatus for enabling dynamic resource collaboration
US8250173B2 (en) 1998-10-06 2012-08-21 Tq Alpha, Llc System and method for creating and navigating a linear hypermedia resource program
US9990174B2 (en) 1998-10-06 2018-06-05 Hypermedia Navigation Llc System and method for creating and navigating a linear hypermedia resource program
US9864575B2 (en) 1998-10-06 2018-01-09 Hypermedia Navigation Llc System and method for creating and navigating a linear hypermedia resource program
US20110231761A1 (en) * 1998-10-06 2011-09-22 Tq Alpha, Llc System and method for creating and navigating a linear hypermedia resource program
US8250170B2 (en) 1998-10-06 2012-08-21 Tq Alpha, Llc System and method for creating and navigating a linear hypermedia resource program
US9772814B2 (en) 1998-10-06 2017-09-26 Hypermedia Navigation Llc System and method for creating and navigating a linear hypermedia resource program
US20090204684A1 (en) * 1998-10-06 2009-08-13 Texas Technology Ventures System and method for creating and navigating a linear hypermedia resource program
US7107517B1 (en) * 1998-10-30 2006-09-12 Fujitsu Limited Method for processing links and device for the same
US6633316B1 (en) * 1999-05-13 2003-10-14 International Business Machines Corporation Method and apparatus for implementing direct link selection of cached, previously visited links in nested web pages
US20080155056A1 (en) * 1999-06-24 2008-06-26 International Business Machines Corporation Technique for Maintaining and Managing Dynamic Web Pages Stored in a System Cache and Referenced Objects Cached in Other Data Stores
US7343412B1 (en) * 1999-06-24 2008-03-11 International Business Machines Corporation Method for maintaining and managing dynamic web pages stored in a system cache and referenced objects cached in other data stores
US20020078300A1 (en) * 1999-08-16 2002-06-20 Chanda Dharap Semantics-based caching policy to minimize latency
US6971061B2 (en) * 2000-02-08 2005-11-29 Fujitsu Limited Information retrieval system and a computer product
US20010013042A1 (en) * 2000-02-08 2001-08-09 Fujitsu Limited Information retrieval system and a computer product
US7779068B2 (en) * 2000-03-20 2010-08-17 Nec Corporation System and method for intelligent web content fetch and delivery of any whole and partial undelivered objects in ascending order of object size
US20050198309A1 (en) * 2000-03-20 2005-09-08 Nec Corporation System and method for intelligent web content fetch and delivery of any whole and partial undelivered objects in ascending order of object size
US7281028B2 (en) * 2000-04-03 2007-10-09 Nederlandse Organisatie Voor Toegepast-Natuurwetenschappelijk Onderzoek Tno Method and a system for retrieving data of a data network
US20030065737A1 (en) * 2000-04-03 2003-04-03 Jannes Aasman Method and a system for retrieving data of a data network
US20020008719A1 (en) * 2000-06-28 2002-01-24 Dai Miyawaki Internet database
US6708161B2 (en) 2000-09-26 2004-03-16 I2 Technologies Us, Inc. System and method for selective database indexing
US20020082932A1 (en) * 2000-09-26 2002-06-27 I2 Technologies, Inc. System and method for facilitating electronic commerce transactions
US7590558B2 (en) 2000-09-26 2009-09-15 I2 Technologies Us, Inc. System and method for facilitating electronic commerce transactions
WO2002027557A1 (en) * 2000-09-26 2002-04-04 I2 Technologies, Inc. System and method for migrating data in an electronic commerce system
US7555447B2 (en) 2000-09-26 2009-06-30 I2 Technologies Us, Inc. System and method for identifying a product
US20050197926A1 (en) * 2000-09-26 2005-09-08 I2 Technologies Us, Inc. System and method for identifying a product
US7299255B2 (en) 2000-09-26 2007-11-20 I2 Technologies Us, Inc. System and method for migrating data in an electronic commerce system
US6857010B1 (en) * 2000-11-03 2005-02-15 Koninklijke Philips Electronics N.V. System for display information content on a screen having a limited viewing area by using statistics provided by a user history file to display in visible portion of the screen a user-controllable cursor on a most frequently previously selected matching hyperlink
US20020107910A1 (en) * 2001-02-02 2002-08-08 Yan Zhao Client/server two-way communication system framework under HTTP protocol
US7349868B2 (en) 2001-05-15 2008-03-25 I2 Technologies Us, Inc. Pre-qualifying sellers during the matching phase of an electronic commerce transaction
US20020174089A1 (en) * 2001-05-15 2002-11-21 I2 Technologies, Inc. Facilitating electronic commerce transactions using buyer profiles
US8571945B2 (en) 2001-05-15 2013-10-29 Jda Software Group, Inc. Pre-qualifying sellers during the matching phase of an electronic commerce transaction
US8756116B2 (en) 2001-05-15 2014-06-17 Jda Software Group, Inc. Pre-qualifying sellers during the matching phase of an electronic commerce transaction
US20020174022A1 (en) * 2001-05-15 2002-11-21 I2 Technologies, Inc. Pre-qualifying sellers during the matching phase of an electronic commerce transaction
US6983276B2 (en) 2001-05-15 2006-01-03 I2 Technologies Us, Inc. Facilitating electronic commerce transactions using buyer profiles
US7475030B1 (en) 2001-05-16 2009-01-06 I2 Technologies Us, Inc. Facilitating electronic commerce transactions using a shared product data repository
US7263515B1 (en) 2001-06-18 2007-08-28 I2 Technologies Us, Inc. Content enhancement in an electronic marketplace
US20070276819A1 (en) * 2001-06-18 2007-11-29 Manoel Tenorio Content Enhancement for Analyzing Data in a Database
US7647311B2 (en) 2001-06-18 2010-01-12 I2 Technologies Us, Inc. Content enhancement for analyzing data in a database
US7650334B2 (en) 2001-06-18 2010-01-19 I2 Technologies Us, Inc. Content enhancement for analyzing data in a database
US9990633B2 (en) 2001-06-26 2018-06-05 Jda Software Group, Inc. Providing market feedback associated with electronic commerce transactions to sellers
US7330829B1 (en) 2001-06-26 2008-02-12 I2 Technologies Us, Inc. Providing market feedback associated with electronic commerce transactions to sellers
US8086643B1 (en) 2001-06-28 2011-12-27 Jda Software Group, Inc. Translation between product classification schemas
US7809672B1 (en) 2001-06-28 2010-10-05 I2 Technologies Us, Inc. Association of data with a product classification schema
US7162453B1 (en) 2001-06-29 2007-01-09 I2 Technologies Us, Inc. Protecting content from unauthorized reproduction
US7346560B1 (en) 2001-06-29 2008-03-18 I2 Technologies Us, Inc. Protecting content from unauthorized reproduction
US8892581B2 (en) * 2001-10-17 2014-11-18 Jorge Diniz Queiroga Loureiro Systems and methods for managing data in a database
US20060149749A1 (en) * 2001-10-17 2006-07-06 Loureiro Jorge Diniz Q Data management
US7412424B1 (en) 2002-03-19 2008-08-12 I2 Technologies Us, Inc. Third party certification of content in electronic commerce transactions
US7054917B1 (en) * 2002-08-07 2006-05-30 Propel Software Corporation Method for accelerating delivery of content in a computer network
US20050114523A1 (en) * 2003-11-26 2005-05-26 International Business Machines Corporation Computer-implemented method, system and program product for providing real-time access to information on a computer system over a network
US7640296B2 (en) * 2004-12-21 2009-12-29 Sap Ag Mapping of a content request for a cache server
US20060167979A1 (en) * 2004-12-21 2006-07-27 Harald Fuchs Mapping of a content request for a cache server
US7752625B2 (en) 2005-06-17 2010-07-06 International Business Machines Corporation Caching resources requested by applications
US20070005887A1 (en) * 2005-06-17 2007-01-04 Larson Tait E Caching resources requested by applications
US8447975B2 (en) * 2005-07-07 2013-05-21 International Business Machines Corporation Workstation application server programming protection via classloader policy based visibility control
US20070011451A1 (en) * 2005-07-07 2007-01-11 Botzum Keys S Workstation application server programming protection via classloader policy based visibility control
US20070106846A1 (en) * 2005-11-04 2007-05-10 Sun Microsystems, Inc. Adaptive replacement cache
US7469320B2 (en) * 2005-11-04 2008-12-23 Sun Microsystems, Inc. Adaptive replacement cache
US7526615B2 (en) 2005-11-04 2009-04-28 Sun Microsystems, Inc. Compressed victim cache
US8095642B1 (en) * 2005-11-16 2012-01-10 Sprint Spectrum L.P. Method and apparatus for dynamically adjusting frequency of background-downloads
US20070150450A1 (en) * 2005-12-28 2007-06-28 Hitachi, Ltd. Apparatus and method for quick retrieval of search data
US7558922B2 (en) * 2005-12-28 2009-07-07 Hitachi, Ltd. Apparatus and method for quick retrieval of search data by pre-feteching actual data corresponding to search candidate into cache memory
US20090249179A1 (en) * 2008-03-28 2009-10-01 Shieh Johnny M Method to display multiple cached webpages related to a bookmark
US20130007235A1 (en) * 2011-06-29 2013-01-03 International Business Machines Corporation Inteligent offline cahcing of non-navigated content based on usage metrics
US8769073B2 (en) * 2011-06-29 2014-07-01 International Business Machines Corporation Intelligent offline caching of non-navigated content based on usage metrics
US20160328485A1 (en) * 2014-07-30 2016-11-10 Yandex Europe Ag Managing web browser cache for offline browsing
US9916390B2 (en) * 2014-07-30 2018-03-13 Yandex Europe Ag Managing web browser cache for offline browsing
CN106611032A (en) * 2015-10-27 2017-05-03 广州市动景计算机科技有限公司 Webpage pre-loading method and device

Also Published As

Publication number Publication date
US6526479B2 (en) 2003-02-25
US20010023476A1 (en) 2001-09-20

Similar Documents

Publication Publication Date Title
US6526479B2 (en) Method of caching web resources
EP1546924B1 (en) Method, system, and program for maintaining data in distributed caches
Davison Predicting web actions from html content
US7836261B2 (en) Managing caching of data on a client
US6658462B1 (en) System, method, and program for balancing cache space requirements with retrieval access time for large documents on the internet
US9703885B2 (en) Systems and methods for managing content variations in content delivery cache
US20060294223A1 (en) Pre-fetching and DNS resolution of hyperlinked content
AU2005267394B8 (en) Accelerating user interfaces by predicting user actions
US7725561B2 (en) Method and apparatus for local IP address translation
CN1234086C (en) System and method for high speed buffer storage file information
JP4202129B2 (en) Method and apparatus for prefetching referenced resources
JP2005535944A (en) Method and system for proactively and predictively caching pages to improve navigation within a site
JP2000357120A (en) Cache managing method
WO2001055897A1 (en) Method and apparatus for processing web documents
US6633874B1 (en) Method for improving the performance of a web service by caching the most popular (real-time) information
US6766313B1 (en) System and method for caching and retrieving information
US7277961B1 (en) Method and system for obscuring user access patterns using a buffer memory
JPH11149405A (en) Www cache system and www data lock-ahead method
JP2004513405A (en) System, method and program for ordered and pre-caching linked files in a client / server network
US20030046259A1 (en) Method and system for performing in-line text expansion
KR20020011016A (en) Pre-caching Algorithm to search for website fast
JPH10214217A (en) Network cache device and method therefor
Hussain et al. Intelligent prefetching at a proxy server
JP2004070957A (en) Retrieval system
KR100411890B1 (en) Caching method using prefetched brand-new documents

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTEL CORPORATION, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ROSENZWEIG, MICHAEL D.;REEL/FRAME:008777/0357

Effective date: 19970821

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION