`Hunt
`
`USOO6192398B1
`(10) Patent No.:
`US 6, 192,398 B1
`(45) Date of Patent:
`Feb. 20, 2001
`
`5,878,218 * 3/1999 Maddalozzo, Jr. et al. ......... 709/213
`5,944,780
`8/1999 Chase et al. ......................... 709/201
`OTHER PUBLICATIONS
`C.R. Saravanan, “WWW in DSM' Master's thesis. Univ. of
`Manitoba, 1997. Univ. of Manitoba Tech. Report TR97–05.*
`* cited by examiner
`Primary Examiner Dung C. Dinh
`(74) Attorney, Agent, or Firm Jeffrey S. Labaw, Felsman,
`Bradley, Vaden, Gunter & Dillon, LLP
`(57)
`ABSTRACT
`BrowserS for different clients in an enterprise are configured
`to cache pages at least in part in a common file area in a
`remote, Shared file Server. Duplication or redundancy in
`caching pages is thus eliminate, and a larger body of distinct
`pages may be cached within a given allocation of memory
`Space. Each remote, shared cache includes a shared cache
`contents data Structure including information required to
`References Cited
`"time-out pages and to determine if a page is in the process
`U.S. PATENT DOCUMENTS
`of being loaded or updated by another client Sharing the
`cache. Where multiple caches are supported by the
`4/1984 Fletcher ............................... 364/200
`4,445,174
`S. to: E. et
`- - - - - - - - - - - - - - - - - - - - - - - - - SE browsers, the remote, Shared cache may form part of a
`2 - - -2
`OOWe e a
`- - -
`local/remote cache hierarchy. When accessing a page
`5,727,159 * 3/1998 Kikinis ..............
`395/200.76
`s
`5,784,590 * 7/1998 SN al. .
`... 711/122
`browsers. check each cache in a multiple cache
`5,787,466 * 7/1998 Berliner ........
`... 711/117
`configuration, updating all caches as necessary.
`5,796,973 * 8/1998 Witt et al. ............................ 395/384
`5,796,974 * 8/1998 Goddard et al. ..................... 395/387
`
`(54) REMOTE/SHARED BROWSER CACHE
`
`(75) Inventor: Gary T. Hunt, Austin, TX (US)
`(73) ASSignee: International Business Machines
`Corporation, Armonk, NY (US)
`Under 35 U.S.C. 154(b), the term of this
`patent shall be extended for 0 days.
`
`(*) Notice:
`
`7
`
`(21) Appl. No.: 08/953,348
`(22) Filed:
`Oct. 17, 1997
`(51) Int. Cl." ........................... C06F 15/173; CO6F 17/30
`(52) U.S. Cl. ............................. 709/213; 707/10; 709/218
`(58) Field of Search ......................... 395/200.43, 200.33,
`395/200.57, 200.47, 200.56; 709/213, 217,
`218, 219, 248, 249; 707/10
`
`(56)
`
`
`
`104
`
`User unit
`Browser
`
`30 Claims, 5 Drawing Sheets
`
`102
`
`110
`
`User unit
`Browser
`
`108
`
`114
`
`106
`
`User unit
`Browser
`
`112
`/
`
`Intranet
`
`116
`-
`-
`as
`E
`
`Y 20
`
`122
`
`124
`
`SD
`Cache
`
`128
`
`totai
`
`Internet
`
`130
`
`118
`
`s
`
`126
`
`SD
`Cache
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1011, p. 1
`
`
`
`U.S. Patent
`
`Feb. 20, 2001
`
`Sheet 1 of 5
`
`US 6,192,398 B1
`
`104
`
`
`
`
`
`User unit
`BrOWSer
`
`102
`
`110
`
`User unit
`
`106
`
`
`
`User unit
`
`112
`/
`
`108
`
`114
`
`116
`
`
`
`N
`120
`
`122
`
`/
`Sal CD
`
`E.
`EaE
`
`SD
`
`118
`
`
`
`128
`
`Figure 1
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1011, p. 2
`
`
`
`U.S. Patent
`
`Feb. 20, 2001
`
`Sheet 2 of 5
`
`US 6,192,398 B1
`
`204
`
`P
`
`206
`
`202
`
`214
`
`L2 cache
`
`210 1
`
`Local
`memory
`
`216
`
`I/O bus
`bridge
`
`212
`
`218
`
`220
`
`Displa
`play
`
`222
`
`232
`
`224
`
`
`
`226
`
`NetWork
`adapter
`
`Hard drive
`
`Keyboard/
`mouse adapter
`
`228
`
`230
`
`device
`
`Figure 2
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1011, p. 3
`
`
`
`U.S. Patent
`
`Feb. 20, 2001
`
`Sheet 3 of 5
`
`US 6,192,398 B1
`
`3O2
`A
`www.irs.com\default.html
`
`304 306 308
`A
`O4/15/97 Y
`
`300
`
`
`
`403a
`- A
`WWW.irs.com\default.html
`
`403b
`
`www.irs.com\default.html
`
`405a
`A
`WWW.irs.com\default.html
`
`405b
`.
`www.irs.com.index.html
`- - - -
`
`407a
`www.irs.com\default.html
`
`s
`
`407b
`— 4
`WWW.irs.com\info.html
`
`
`
`SVeN
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1011, p. 4
`
`
`
`U.S. Patent
`
`Feb. 20, 2001
`
`Sheet 4 of 5
`
`US 6,192,398 B1
`
`Load cache Contents
`information
`
`504
`
`Receive load request
`
`506
`
`Check cache Contents
`information
`
`508
`
`
`
`
`
`
`
`Figure 5A
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1011, p. 5
`
`
`
`U.S. Patent
`
`Feb. 20, 2001
`
`Sheet 5 of 5
`
`US 6,192,398 B1
`
`510
`Requested page
`cached?
`
`O
`
`
`
`
`
`
`
`
`
`Update required?
`
`In-progress flag
`Set?
`
`Wait until in-progress K-Wes
`flag is reset
`y
`
`
`
`
`
`Set in-progress flag
`
`512
`
`Load page from cache
`
`
`
`Load/update page from 514
`Source to client and
`Cache
`
`Update cache contents
`information
`(reset in-progress flag)
`
`516
`
`
`
`
`
`
`
`
`
`
`
`
`
`Figure 5B
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1011, p. 6
`
`
`
`1
`REMOTE/SHARED BROWSER CACHE
`
`RELATED APPLICATIONS
`The present invention is related to the subject matter of
`commonly assigned, copending U.S. Patent application Ser.
`No. 08/953,347 (pending) entitled “SHARED WEB PAGE
`CACHING AT BROWSERS FOR AN INTRANET. The
`content of the above-mentioned copending application is
`incorporated herein by reference.
`
`5
`
`BACKGROUND OF THE INVENTION
`
`1. Technical Field
`The present invention relates in general to accessing Web
`pages and in particular to accessing Web pages in environ
`ments including a Server Shared by multiple users. Still more
`particularly, the present invention relates to remote caching
`of Web pages on a file server utilized by multiple users.
`2. Description of the Related Art
`The Internet provides a valuable source of both entertain
`ment and information to all Segments of Society. In addition
`to commercial enterprises utilizing the Internet as an integral
`part of their marketing efforts in promoting their products or
`Services, many federal, State, and local government agencies
`are also employing Internet Sites for informational purposes,
`particularly agencies which must interact with Virtually all
`Segments of Society Such as the Internal Revenue Service
`and Secretaries of State. Operating costs for both commercial
`enterprises and governmental agencies may be reduced by
`providing informational guides and/or Searchable databases
`online.
`Currently, the most commonly employed method of
`accessing and distributing data over the Internet is to employ
`the World Wide Web (WWW) environment, also called
`simply “the Web.” Other Internet resources exist for trans
`ferring information, such as File Transfer Protocol (FTP)
`and Gopher, but have not achieved the popularity of the
`Web. In the Web environment, servers and clients effect data
`transaction using the Hypertext Transfer Protocol (HTTP), a
`known protocol for handling transfer of various data files
`(e.g., text, still graphic images, audio, motion Video, etc.).
`Information is formatted for transfer and presentation to a
`user by a Standard page description language, the Hypertext
`Markup Language (HTML).
`In addition to basic formatting, HTML allows developers
`to specify “links' to other Web resources, identified by a
`Uniform Resource Locator (URL). A URL is a special
`Syntax identifier defining a communications path to an
`Internet Server containing Specific logical blocks of
`information, colloquially called a "page,” accessible to an
`Internet client. Web pages may be of arbitrary size and
`include text, graphics, forms for Submitting queries to data
`bases on the remote Server, and other components. A "page”
`includes all files required to present the information
`requested utilizing the identifying URL, including text/
`HTML files, graphics files, Sound files, etc.
`Retrieval of information on the Web is generally accom
`plished with an HTML-compatible “browser'-an applica
`tion program capable of Submitting a request for information
`identified by a URL-at the client machine. The request is
`Submitted to a Server connected to the client and may be
`handled by a series of servers to effect retrieval of the
`requested information. The information is provided to the
`client formatted according to HTML.
`When Web pages are retrieved under direct user control,
`it is common practice for contemporary Web browsers to
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,192,398 B1
`
`2
`cache pages accessed by the user. Network bandwidth is
`finite, and the time required to retrieve a Web page depends
`in part on the number of servers at the site from which the
`Web page is being retrieved. Furthermore, Web pages often
`include sizable graphics files or other large files requiring a
`Substantial amount of time to transfer from the Source to the
`requesting client. Caching Web pages allows a user to
`repeatedly view the information within a short Span of time
`without retrieving the Web pages each time.
`Large traffic demands to specific Web Sites can make
`access to such sites difficult. To ease the difficulty of
`accessing sites with high traffic demands, Web browsers
`retrieve frequently accessed Web pages by off-line brows
`ing. Off-line browsing allows information at the site to be
`retrieved during off-peak periods without contemporaneous
`user interaction at the client. The pages are typically
`retrieved from the originating Internet Web site by off-peak
`retrieval, or retrieval during periods when traffic to the Site
`is at a minimum. The retrieved pages are cached in a local
`memory, Such as a hard drive, for Subsequent off-line
`viewing by the user without connection to the Web site from
`which those pages originate.
`Where Several users in an enterprise access and cache the
`Same Web page or pages, it is inefficient for each user to
`caches these pages locally. Caching is also currently per
`formed at proxies, but caching at proxies is not Scalable as
`Such and may not provide benefits for multiple users which
`browse the same or Similar pages due to a lack of ability to
`share the cache. It would be desirable, therefore, to improve
`the Storage of frequently accessed Web pages to improve the
`performance of an Intranet, the Internet, and Internet Service
`providers.
`
`SUMMARY OF THE INVENTION
`It is therefore one object of the present invention to
`provide an improved method of and apparatus for accessing
`Web pages.
`It is another object of the present invention to provide an
`improved method of and apparatus for accessing Web pages
`in environments including a Server shared by multiple users.
`It is yet another object of the present invention to provide
`a method and apparatus for remote caching of Web pages on
`a file server utilized by multiple users.
`The foregoing objects are achieved as is now described.
`BrowserS for different clients in an enterprise are configured
`to cache pages at least in part in a common file area in a
`remote, Shared file Server. Duplication or redundancy in
`caching pages is thus reduced or eliminated, and a larger
`body of distinct pages may be cached within the aggregate
`allocation of memory Space for the individual clients. Each
`remote, shared cache includes a shared cache contents data
`Structure including information required to "time-out' pages
`and to determine if a page is in the process of being loaded
`or updated by another client sharing the cache. Where
`multiple caches are Supported by the browsers, the remote,
`shared cache may form part of a local/remote cache hierar
`chy. When accessing a page, browsers check each cache in
`a multiple cache configuration, updating all caches as nec
`eSSary.
`The above as well as additional objects, features, and
`advantages of the present invention will become apparent in
`the following detailed written description.
`BRIEF DESCRIPTION OF THE DRAWINGS
`The novel features believed characteristic of the invention
`are Set forth in the appended claims. The invention itself
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1011, p. 7
`
`
`
`3
`however, as well as a preferred mode of use, further objects
`and advantages thereof, will best be understood by reference
`to the following detailed description of an illustrative
`embodiment when read in conjunction with the accompa
`nying drawings, wherein:
`FIG. 1 depicts a network of data processing Systems in
`which a preferred embodiment of the present invention may
`be implemented;
`FIG. 2 is a data processing System in which a preferred
`embodiment of the present invention may be implemented;
`FIG. 3 depicts a data structure employed in remotely
`caching Web pages at a shared Server in accordance with a
`preferred embodiment of the present invention; and
`FIG. 4 is a block diagram for an arrangement of multiple
`remote/local caches in accordance with a preferred embodi
`ment of the present invention; and
`FIGS. 5A-5B depict a high level flowchart for a process
`of employing a remote, Shared cache in accordance with a
`preferred embodiment of the present invention.
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENT
`With reference now to the figures, and in particular with
`reference to FIG. 1, a network of data processing Systems in
`which a preferred embodiment of the present invention may
`be implemented is depicted. The network depicted in the
`exemplary embodiment includes a plurality of user units
`102-106 connected via respective communications links
`108-112 as part of an intranet 114. An “intranet' is a high
`bandwidth network of workstations connected to (and pro
`tected from) external data processing Systems or networks
`by a firewall and/or proxy. Servers 116-118 are also con
`nected to intranet 114, via communications links 120-122.
`Intranet 114 Supports communications and data transfers
`among various data processing Systems, including user units
`102-106 and servers 116-118, by a network technology
`Such as Ethernet, token ring, fiber distributed data interface
`(FDDI), or asynchronous transfer mode (ATM). Data trans
`mission within intranet 114 may be governed by various
`protocols, Such as frame relay (FR), X.25, integrated Ser
`vices digital network (ISDN), media access control address
`protocol, or transmission convergence protocol/Internet pro
`tocol (TCP/IP).
`Servers 116-118 include storage devices 124-126,
`respectively, providing remote Storage for user units
`102-106. At least one server, server 118 in the depicted
`example, is connected via communications link 130 to the
`Internet 128. Communications link 130 may, for example, be
`provided in the form of access service by an Internet Service
`Provider (ISP), or may be a direct connection to the Internet
`via a firewall and a proxy. Server 118 in the exemplary
`embodiment functions as an Internet or Web server, and thus
`server 118 includes a firewall and a proxy in accordance with
`the known art to provide client Systems. Such as user units
`102-106 access to the Internet. Server 118 supports browser
`applications running on Internet client Systems. Such as user
`units 102-106 in retrieval of Web pages formatted in HTML.
`Such Web pages may be passed via a Series of Servers within
`both Internet 128 and intranet 114 to a particular client
`system within user units 102-106. Thus, intranet 114 may
`include additional servers (not shown) through which data
`transfers from server 118 to user units 102-106 pass, or such
`data transferS may also pass through server 116.
`Additionally, although server 118 in the depicted embodi
`ment provides access to the Internet, a common cache in
`accordance with a preferred embodiment of the present
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,192,398 B1
`
`4
`invention may be maintained within the shared file area of
`a different server, Such as server 116, to which each user unit
`102-106 is connected.
`In accordance with a preferred embodiment of the present
`invention, each user unit 102-106 which includes a browser
`should, because of formatting differences among browser
`caches, utilize the Same browser, or at least browsers
`employing a common or Standardized cache Structure and/or
`format.
`Referring to FIG. 2, a data processing System in which a
`preferred embodiment of the present invention may be
`implemented is illustrated. Data processing System 202 may
`be employed as one of user units 102-106 within the
`network depicted in FIG. 1, or as one of servers 116-118.
`Modifications to the embodiment depicted may be appro
`priate depending on how data processing System 202 is
`utilized.
`Data processing System 202 includes a processor 204
`having internal level one instruction and data caches 206 and
`208. Processor 202 is connected to a level two (L2) cache
`210, which is connected via system bus 212 to system
`memory 214 and to bridge 216. Memory mapped devices,
`Such as graphics adapter 218 connected to display unit 222,
`may also be connected to System buS 212.
`Bridge 216 connects system bus 212 to input/output (I/O)
`bus 222. Various peripherals may be connected to I/O bus
`222, such as hard disk drive 224. Keyboard/mouse adapter
`226 connected to I/O bus 222 allows a keyboard 228 and
`pointing device 230 such as a mouse or trackball to be
`connected to data processing System 202. Network adapter
`232 connected to I/O buS 222 allows data processing System
`202 to be connected to a local area network (LAN) such as
`intranet 114 depicted in FIG. 1, or to the Internet 128.
`The operation of data processing System 202 is well
`known to those skilled in the art. Furthermore, those in the
`art will recognize that the components depicted in the
`exemplary embodiment may be varied for purposes of
`Specific applications. For example, additional peripheral
`devices such as a CD-ROM drive may be incorporated into
`data processing System 202. In accordance with a preferred
`embodiment of the present invention, data processing Sys
`tem 202 includes a browser application with the function
`ality described below Supporting remote caching on a shared
`SCWC.
`With reference now to FIG. 3, one possible example of a
`data Structure employed in remotely caching Web pages at a
`shared Server in accordance with a preferred embodiment of
`the present invention is depicted. It is common practice in
`Virtually all data processing System architectures and oper
`ating Systems that remote file input/output (I/O) Subsystems
`provide access to remote files in a local/remote transparent
`manner, Such that applications requiring access to remote
`files do not distinguish between remote and local files. Given
`this behavior, a client System running a browser application
`may configure the browser cache to reside on a remote file
`SCWC.
`One change required to permit sharing of a browser cache
`residing on a remote file Server arises in the area of main
`taining information on cache contents. While currently
`access to information regarding cache contents is limited to
`each client System/browser, information regarding the con
`tents of a shared browser cache must be shared along with
`the actual Web pages Stored within the cache. A data
`structure 300 such as that depicted in FIG. 3 may be
`maintained in the same remote file area as the Shared cache,
`with each client System sharing the cache having acceSS
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1011, p. 8
`
`
`
`S
`rights to the data structure. Alternatively, data structure 300
`may be maintained within each client System including a
`browser caching at the shared cache, with a mechanism for
`updating data structure 300 when other client systems shar
`ing the common cache add or update Web pages to the
`shared cache.
`In the example depicted, data structure 300 includes
`identifiers 302 of the Web pages maintained in the shared
`cache, such as the URL of the Web page's Internet location,
`together with an associated indicator 304 of the last time the
`cache was updated. Indicator 304 Supports the ability to
`"time-out a cached page in the shared cache, requiring a
`client System Seeking to access that page to load the page
`from the Internet Source and update the cache.
`Each entry in cache contents data structure 300 may also
`include an associated flag 306 for indicating “in progress'
`caching. If one client System is in the process of caching or
`updating a Web page in the shared cache, other client
`Systems Seeking to access the same page should wait for the
`caching or update to be completed instead of accessing the
`page at the Internet source. The “in progress' flag 306 would
`be set by any client System loading or reloading a Web page
`in the shared cache, and checked by any client System before
`accessing a cached page. Once caching or updating of the
`page is complete, in-progreSS flag 306 may be reset.
`Cache contents data structure 300 may also include other
`entry components 308 utilized for other purposes, such as
`indicating an access privilege for cached pages. In addition,
`the present invention may be extended to include multiple
`remote and/or local caches, in either a hierarchical or
`complementary arrangement. Therefore, entry components
`308 may also include an indication (Such as a path and
`filename) of other caches containing the same page, so that
`a client System updating a page as a result of the page being
`“timed out” within the top-level shared cache may update all
`caches in a hierarchy containing that page.
`Referring to FIG. 4, a block diagram for an arrangement
`of multiple remote/local caches in accordance with a pre
`ferred embodiment of the present invention is illustrated.
`The arrangement depicted includes a local cache 402 and
`two remote caches 404 and 406. There are a variety of
`reasons for employing multiple local and remote caches for
`a browser application. For example, a particular client
`System may have access to Web pages which are not
`generally accessible on the Internet. For Security reasons,
`caching of Such Web pages would preferably be maintained
`locally, rather than at a shared, remote cache. Moreover, the
`Size of a shared cache may be So large as to preferably
`require distribution over multiple remote caches on different
`SCWCS.
`Support for multiple browser caches is required for an
`arrangement to include both local and remote caches as
`depicted in FIG. 4. Each cache 402,404, and 406 within the
`arrangement may include a cache contents data Structure as
`described above in connection with FIG.3. The arrangement
`may be hierarchical, with the same page being cached in
`more than one local and/or shared remote cache. The cache
`contents data Structure for each cache would thus reflect the
`Same Web page as being contained within multiple caches,
`as depicted in data structure portions 403a, 405a, and 407a.
`BrowserS Seeking to access a Web page would first Seek the
`page in a local cache before checking any of the remote
`caches. Under a hierarchical arrangement, a browser may
`check a local cache before checking a remote, shared cache
`and/or update a local cache from a remote, Shared cache.
`Alternatively, the arrangement may be complementary,
`with different pages being cached in different local or remote
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,192,398 B1
`
`6
`caches. The respective cache contents data Structures for the
`different caches would thus reflect different pages being
`Stored in different local and/or remote shared caches, as
`depicted by data structure portions 403b, 405b, and 407b.
`BrowserS Seeking to access a Web page would check the
`cache contents of each cache to ascertain the location of a
`cached page within the cache System accessible to the
`browser.
`With reference now to FIGS. 5A-5B, a high level flow
`chart for a process of employing a remote, shared cache in
`accordance with a preferred embodiment of the present
`invention is depicted. The process begins at step 502, which
`depicts a browser application being Started on a client
`system, such as user unit 102 depicted in FIG. 1, having
`access to a shared file area in a Server, Such as Server 116
`depicted in FIG. 1. The process then passes to step 504,
`which illustrates loading the cache contents information. In
`configurations employing multiple local/remote or multiple
`remote caches, the cache contents information for each
`cache is loaded.
`The process next passes to step 506, which depicts a
`request being received to load a specific Web page, identified
`by the URL of the page's location on the Internet. The
`process passes next to Step 508, which illustrates checking
`the cache contents information. Where a multiple cache
`configuration is Supported, the cache contents information
`for each cache in the configuration is checked.
`The process then passes to step 510, which depicts a
`determination of whether an acceptably recent copy of the
`requested page is cached in one or more caches accessible to
`the browser. If a sufficiently recent version of the requested
`page is not cached in a local or remote shared cache
`accessible to the browser, the process proceeds to Step 512,
`which illustrates Setting the in-progreSS flag associated with
`the requested page in the cache contents information for
`each cache which should contain the requested page. The
`process then passes to Step 514, which depicts loading or
`updating the requested page from the Internet Source, and
`caching the requested page. This step may include a lookup
`to a policy for caching at various local and/or remote shared
`caches.
`In a multiple cache configuration, the page may be cached
`in a local cache or a remote shared cache, or both, depending
`on the management algorithm implemented in the browser.
`For example, pages loading under a limited acceSS restric
`tion may be cached only in the local cache, while other pages
`may be cached in both the local and remote shared caches
`and deleted from the local cache Sooner than from the
`remote cache. The process then passes to Step 516, which
`illustrates updating the cache contents information for each
`cache in which the requested page was Stored or updated,
`including resetting the in-progreSS flag.
`Referring again to Step 510, if the requested page is
`cached in a cache accessible to the browser, the process
`proceeds to step 518, which depicts a determination of
`whether an update of the requested page in the cache is
`required. If the requested page has not “timed out' and does
`not require an update (i.e. is not “stale' or “invalid'), the
`process proceeds to Step 520, which illustrates loading the
`requested page from the cache. It should be noted that a
`time-out policy is only one refresh mechanism which may
`be employed in connection with the present invention. An
`alternative is to have the server at the Web site from which
`the Web page was retrieved notify the caching server when
`the page is changed. The particular mechanism employed to
`flush Stale or unusable data from caches may be determined
`
`Petitioners Microsoft Corporation and HP Inc. - Ex. 1011, p. 9
`
`
`
`7
`by the cache management facilities for the browsers
`employed within the intranet.
`For Some applications, a user may wish to have caches
`pages updated more frequently than the default time-out
`employed for the shared remote cache. In fact, Some time
`critical applications (Such as financial applications) may not
`wish to utilize cached Web pages at all since the data within
`the page is dynamic. From Step 520, the process then passes
`to Step 522, which depicts the process becoming idle until a
`load request for another page is received.
`If an update of the requested page is required, the proceSS
`proceeds to step 524, which illustrates a determination of
`whether the in-progreSS flag associated with the requested
`page in the cache contents information is Set. If So, the
`proceSS proceeds to Step 526, which depicts the proceSS
`waiting until the in-progreSS flag is reset. The process then
`passes to Step 520, described above. If the in-progreSS flag
`is not Set, however, the process proceeds to through Steps
`512-516, described above, to step 522.
`The present invention allows browsers for user units
`connected to a remote, shared file Server to leverage the
`ability to Store cached Web pages in a common area on the
`file Server. By caching Web pages in a common file area, the
`present invention allows all users of the shared cache to
`benefit from the first user's access or updating of a Web
`page. Additionally, the maximum size of the cache may be
`larger on a file Server than on a local client System.
`Because the cached Web pages are shared, redundant
`caching is reduced or eliminated Since the same page need
`not be cached twice or more in Separate caches, but need
`only be cached once in a Single, shared cache. Additionally,
`a larger amount of distinctive information may be cached.
`Caching at a Server thus Scale the performance benefits
`obtained in the page browsing of other users. Browser
`applications must be configured to Support remote caches
`shared among multiple browsers, as described above, Scal
`ing beyond caching at a proxy.
`It is noteworthy that existing browserS cache, and that
`existing browsers could, without Source-code level
`modification, cache at a file Server. However, existing
`browsers are not capable of Sharing caches, and thus Sepa
`rate sections of the file server would be employed for each
`browser cache. In the present invention, browsers for dif
`ferent client Systems within an enterprise cache to the same
`Section of a file Server. Additionally, the cache management
`function employed in the present invention requires aware
`neSS of all caches. In the preferred embodiment, the cache
`management function runs on the proxy within an intranet.
`However, it is not necessary that the cache management
`function run on the proxy, but may instead be distributed to
`all browserS. Coordination of cache management activities
`by different browsers may be based on the “in progress' flag
`of the present invention, or Similar flags.
`Although the preferred embodiment employs a Single
`cache in a shared file area of a commonly accessible Server
`for the shared cache, the shared cache may alternatively be
`distributed among user units within the intranet. In Such an
`embodiment, the cache portions in various user units should
`be accessible to other user units within the intranet (i.e.
`Stored within a shared file area of the user units), and the
`shared cache contents information should contain pointers to
`the cache portion(s) containing cached pages.
`The present invention may also be extended for imple
`mentation by an Internet Service provider rather than merely
`within an Intranet for an enterprise. A trust protocol must be
`established between the Subscribers and the service provider
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,192,398 B1
`
`8
`to assure validity of the Web pages cached within a sub
`scriber's user unit. Additionally, availability of the cache
`maintained within a subscriber's user unit (i.e. whether the
`Subscriber's user unit is connected) must be checked within
`implementations of the present invention for an Internet
`Service provider.
`It is noteworthy that the present invention is not limited to
`HTTP requests or Web pages, but may be applied to other
`protocols such as file transfer protocol (FTP) or gopher.
`These Internet facilities are less popular than the Web, but
`are available and may benefit from shared caching in a
`remote location as described above in connection with
`browsers and retrieval of Web pages. In fact, Web pages may
`invoke ftp and/or gopher utilities, as in the case of down
`loading Software demos or graphics from the Internet, and
`thus the embodiments described above may benefit from
`extension to include Support for these protocols.
`It is important to note that while the present invention has
`been described in the context of a fully functional data
`processing System, those skilled in the art will appreciate
`that the mechanism of the present invention is capable of
`being distributed in the form of a computer readable medium
`of instructions in a variety of forms, and that the present
`invention applies equally regardless of the particular type of
`Signal bearing media used to actually carry out the distri
`bution. Examples of computer readable media include:
`recordable type media such as floppy disks and CD-ROMs
`and transmission type media Such as digital and analog
`communication linkS.
`While the invention has been particularly shown and
`described with reference to a preferred embodiment, it will
`be understood by those skilled in the art that various changes
`in form and detail may be made therein without departing
`from the Spirit and Scope of the invention.
`What is claimed is:
`1. A method of Sharing a remote cache within an intranet,
`comprising:
`caching pages requested to be cached by browserS for data
`processing Systems within the intranet in a shared cache
`accessible b