Connect public, paid and private patent data with Google Patents Public Datasets

Distributed dynamic web page caching system

Info

Publication number
WO2001088762A2
WO2001088762A2 PCT/US2001/015621 US0115621W WO2001088762A2 WO 2001088762 A2 WO2001088762 A2 WO 2001088762A2 US 0115621 W US0115621 W US 0115621W WO 2001088762 A2 WO2001088762 A2 WO 2001088762A2
Authority
WO
Grant status
Application
Patent type
Prior art keywords
page
web
server
component
tags
Prior art date
Application number
PCT/US2001/015621
Other languages
French (fr)
Other versions
WO2001088762A9 (en )
WO2001088762A3 (en )
Inventor
Julie Melbin
B. C. Krishna
Clark Wright
Original Assignee
Open Market, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/30Information retrieval; Database structures therefor ; File system structures therefor
    • G06F17/30861Retrieval from the Internet, e.g. browsers
    • G06F17/30899Browsing optimisation
    • G06F17/30902Browsing optimisation of access to content, e.g. by caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/28Network-specific arrangements or communication protocols supporting networked applications for the provision of proxy services, e.g. intermediate processing or storage in the network
    • H04L67/2842Network-specific arrangements or communication protocols supporting networked applications for the provision of proxy services, e.g. intermediate processing or storage in the network for storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Application independent communication protocol aspects or techniques in packet data networks
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32High level architectural aspects of 7-layer open systems interconnection [OSI] type protocol stacks
    • H04L69/322Aspects of intra-layer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Aspects of intra-layer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer, i.e. layer seven

Abstract

A method of generating a dynamic web page includes downloading a page template and page component tags of the dynamic web page into a local cache memory from a server, assembling the web page from the page template and page component tags residing in the local cache memory, and rendering the web page to the client.

Description

DISTRIBUTED DYNAMIC WEB PAGE CACHING SYSTEM

FIELD OF THE INVENTION

This invention relates to distributed dynamic web page caching.

BACKGROUND OF THE INVENTION

Computer networks, such as the internet and private corporate networks, enable users to retrieve information from a wide variety of sources. They also enable publishers, information providers, advertisers and other information sources to supply information to these users. "Servers" are computer systems that are connected to a network and that store and supply information. One type of server on the internet is known as a "web server," which provides access to a web site. Each web site can make available one or more "web pages," which are formatted, tree-structured repositories of information, such as text, images, sounds, animations, and three- dimensional simulations. Many publishers, such as newspapers and journals, as well as corporations, individuals and organizations have established web pages. "Clients" are computer systems, each typically controlled by a user that may be connected to a network and request information from the servers on the network. In particular, clients at various locations can view web pages by "downloading" replicas of the web pages from the servers on which these web pages are stored.

SUMMARY

In an aspect, the invention features a method of dynamic web page caching includes receiving a request for a web page from a client and determining whether a page template and page component tags of the web page reside in a local cache memory. If the page template and page component tags do not reside in the local cache memory, the page template and page component tags are downloaded from a server to the local cache memory. The web page is assembled from the page template and page component tags residing in the local cache memory and the web page rendered to the client.

Embodiments may include one or more of the following. Passing a cookie representing a client session identification (ID) from the server to the local cache memory to may be used to manage a session.

Page component tags may include page location information, parameters to be passed from the server to the page template, and expiration information. They may also include a binary large object (blob) component.

In another aspect, the invention features a network including a server having a collection of data containing web pages and a server link connecting the server to an internet. A cache system link connects a dynamic web page caching system to the internet. The dynamic web page caching system includes an assembly engine that is used to assemble web pages from components found in its local cache and a delivery engine for delivering the web pages to a client.

Embodiments of the invention may have one or more of the following advantages.

Assembly of web pages containing dynamic components is done closer to the requesting client, minimizing or eUrninating the requirement of assembling the requested page at the server and sending the web page over the internet to the client.

Specific details of dynamic page components are cached at the edge of the network, pushing the assembly and delivery of dynamic components away from the server. Caching assembly and delivery of the dynamic page components at the edge of the network results in a greater number of dynamic page views per day because a greater number of dynamic page components can be generated without having to travel through the internet.

If a satellite server and/or server goes down, i.e., off-line, there can be another satellite server to perform the work required to assemble and deliver the page.

No synchronization between satellite servers is required; each is independent and unique, not depending on any other satellite server pier.

The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims. DESCRIPTION OF THE DRAWINGS

The foregoing features and other aspects of the invention will be described further in detail by the accompanying drawings, in which: FIG. 1 is a block diagram of a web page. FIG. 2 is a block diagram of a network containing a satellite server.

FIG. 3 is a block diagram of the satellite server of FIG. 2. FIG. 4 is a flow diagram of a distributed dynamic web page caching process residing on the computer network of FIG. 2.

Like reference symbols in the various drawings indicate like elements.

■ DETAD ED DESCRD?TΪON

Referring to FIG. 1, a web page 10 defines one or more regions, such as regions 14, 16, 18 and 20. Each of the regions 14, 16, 18 and 20, also referred to as components, are part of a web page template 12. Each of the components 14-20 may contain different types of information, such as text, images, graphics, animation, timers, links and so forth. Each of the components 14 through 20 of the web page template 12 may be further classified as being static or dynamic. A static component remains unchanged over a period of time. A dynamic component is a component that is a result of a computational process executed at the time that the web page 10 is requested. Dynamic components, by their very nature, exist for a discrete period of time, and thus are typically assembled at the time a client requests them from a server. The server, using specific characteristics of the dynamic components, builds the web page and delivers the web page to the requesting client.

An example of a dynamic component is one that contains current weather. The current weather may change between requests and therefore is assembled in response to a user request. Another example of a dynamic component is one that contains a personalized message, such as 'Hi Joe."

The web page 10 typically resides on a server (not shown). A client requests viewing of the web page 10 from the server. The server, having details of each component 14-20 within the web page 10, assembles the web page 10 with its associated components 14-20 and sends the web page 10 to the requesting client. In the event that each of the components 14-20 are static components, the web page 10 may be preassembled and stored on a database associated with the server. Thus, when the web page 10 is requested by a client, the server loads the web page previously stored and delivers it to a browser on the client's system If one or more of the components 14-20 are dynamic, the server assembles the dynamic components in accordance with component details know only to the server prior to delivering the web page 10 to the client.

The server responsible for the web page 10 has detail knowledge of each component 14-20 of the web page template 12. Each component 14-20 is defined by a series of parameters or tags known only to the server system. For example, each component will have an associated web page template 12, tags requesting where to get the information included in the component, what parameters, if any, need to be passed into the component, and duration information. These tags may include page information and blob information. The blob is a Binary Large Object; it may be used to represent, for example, images. Only the server knows each of the parameters. The components are wrapped around each of the components 14-20, enabling the server to assemble and render the web page 10 to the requesting client.

Referring to FIG. 2, a network 40 having a distributed dynamic web page caching process is shown to include a number of internet service providers (ISPs) 42, 44, 46 and 48, connected to an internet 50. The ISPs 42-48 provide client and server computer systems access to the internet 50. The network 40 includes a server 52 connected to the ISP 44. The network 40 also shows a client 54 having a browser 56 connected to the ISP 48. The network 40 includes the placement of a satellite server 58 connected to the ISP 48 and a satellite server 60 connected to the internet 50. In a preferred embodiment, the network 40 would contain either the satellite server 58 connected to the ISP 48 or the satellite server 60 connected to the internet 50. In other embodiments, satellite servers may be placed at other locations at "edges" of the network 40. In general, a network would have one satellite server per domain per port. When the client 54 requests the "rendering" of a web page through its browser 56 from server 52, satellite server 58, for example, in conjunction with server 52, assembles the static and dynamic components of the web page and renders the web page to the browser 56. Referring to FIG. 3, a satellite server 80 is shown to include a content server 82 and a content server 84. The content servers 82 and 84 are linked to a web server 86 and a web server 88 through respective plug-ins 90 and 92. The web servers 86 and 88 are linked to cache memories labeled as 94, 96, 98 and 100, respectively. Each of the cache memories 94-100 are linked to a local director 102. The local director 102 includes a link 104 that provides communication to an ISP or internet.

In operation, when a request to render a web page is received on the link 104, the local director 102 searches the cache memories 94 through 100 to determine whether the requested web page template and component tags are present. If the component tags of the requested web page are contained within one of the cache memories 94-100, the content server 82 or content server 84 assembles the web page from the cached template and component tags and sends the assembled web page though the link 104 to the requesting client.

Referring to FIG. 4, a distributed dynamic web page caching process 120 includes receiving 122 a page request from a client. The process 120 determines 124 whether the page component tags and web page template of the requested web page reside in one of the satellite server caches. If the web page and its associated web page template and page component tags reside within the satellite system server cache, the satellite system assembles 126 the web page according to its web page template and page component tags and delivers 128 the assembled page to the requesting client. If the web page template and component tags of the requested web page do not reside in the satellite server cache, the process 120 obtains 130 the web page template and associated page component tags from the server. When the information needed to assemble the page components are obtained from the server, the server stores 132 the information in one of its cache memories. The process 120 sends 134 the assembled web page along with its web page template and associated page component tags to the satellite server wherein the process 120 stores 136 the web page template and component tags in the satellite server's cache memories and delivers 128 the assembled page to the requesting client. Using the process 120, a second page access finds the required information needed to assemble the requested web page in the satellite server cache memories. This is because the satellite server, from knowledge gained from the server, has knowledge of where to build that web page from the presence of the web page template and associated page component tags in the satellite server cache memory. The satellite server may not have the logic to build the dynamic page components, but the satellite server can obtain the requisite logic from the server. In steady state, the process 120 maintains a replicated cache, i.e., all the cache components are residing in every content server within the network. Thus, if a single satellite server were to fail, another satellite server may perform the necessary work to render the requested web page. No synchronization between satellite servers is required because each is independent and unique, not being dependent on any other satellite server peer.

The process 120 also maintains session information. In an embodiment, session information is contained in cookies that are passed between the client and the satellite server. In this manner, a new session is not generated by a second request for a web page by the same user that had requested a web page from the satellite server. A number of embodiments of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. Accordingly, other embodiments are within the scope of the following claims.

Claims

WHAT IS CLAIMED IS:
1. A computer-implemented method of generating a dynamic web page comprising: receiving a request for a web page from a client; determining whether a page template and page component tags of the web page reside in a local cache memory; in response to the determining, downloading the page template and page component tags of the web page into the local cache memory from a server if the page template and page component tags do not reside in the local cache memory; assembling the web page from the page template and page component tags residing in the local cache memory; and rendering the web page to the client.
2. The computer-implemented method of claim 1 further comprising: passing a cookie representing a client session identification (ID) from the server to the local cache memory to manage a session.
3. The computer-implemented method of claim 1 wherein the page components tags comprise: page location information; parameters to be passed from the server to the page template; and expiration information.
4. The computer-implemented method of claim 3 wherein the page component tags comprise a binary large object (blob) component.
5. A computer program product residing on a computer readable medium comprising instructions for causing the computer to: receive a request for a web page from a client; determine whether a page template and page component tags of the web page reside in a local cache memory; download the page template and page component tags of the web page into the local cache memory from a server if the page template and page component tags do not reside in the local cache memory; assemble the web page from the page template and page component tags residing in the local cache memory; and render the web page to the client.
6. A network comprising: a server having a collection of data containing web pages; a server link, the server link connecting the server to an internet; a dynamic web page caching system connected to the internet and having cache memory containing component tags of the web pages, the dynamic web page caching system comprising: means for assembling the web pages from the component tags; and means for delivering the web pages to a client.
7. The network according to claim 6 further comprising a second dynamic web page caching system
8. The network according to claim 6 wherein the component tags comprise: page location information; parameters to be passed from the server to the page template; and expiration information.
9. The network according to claim 6 wherein the dynamic web page caching system further comprises means for managing cookies between the client and the server.
10. A computer-implemented method of generating a dynamic web page comprising: downloading a page template and page component tags of the dynamic web page into a local cache memory from a server; assembling the web page from the page template and page component tags residing in the local cache memory; and rendering the web page to the client.
11. The computer-implemented method of claim 10 wherein the local cache memory resides in a satellite server.
12. The computer-implemented method of claim 11 wherein the satellite server resides at an edge of a network.
13. The computer-implemented method of claim 10 wherein the page component tags comprise: page location; parameters to be passed from the server to the page template; expiration information; and a binary large object component.
PCT/US2001/015621 2000-05-16 2001-05-15 Distributed dynamic web page caching system WO2001088762A3 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US57268100 true 2000-05-16 2000-05-16
US09/572,681 2000-05-16

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP20010935510 EP1356394A2 (en) 2000-05-16 2001-05-15 Distributed dynamic web page caching system
JP2001585086A JP5465821B2 (en) 2000-05-16 2001-05-15 Delivery dynamic web page caching system

Publications (3)

Publication Number Publication Date
WO2001088762A2 true true WO2001088762A2 (en) 2001-11-22
WO2001088762A9 true WO2001088762A9 (en) 2002-10-10
WO2001088762A3 true WO2001088762A3 (en) 2003-08-07

Family

ID=24288888

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/015621 WO2001088762A3 (en) 2000-05-16 2001-05-15 Distributed dynamic web page caching system

Country Status (3)

Country Link
JP (1) JP5465821B2 (en)
EP (1) EP1356394A2 (en)
WO (1) WO2001088762A3 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1182589A2 (en) * 2000-08-17 2002-02-27 International Business Machines Corporation Provision of electronic documents from cached portions
GB2389201A (en) * 2002-05-29 2003-12-03 Flyingspark Ltd Methods and System for Using Caches
FR2842624A1 (en) * 2002-07-22 2004-01-23 France Telecom Web page caching method, by storing page fragments with different lifetimes in dynamic cache between client terminal and servers
WO2004074960A2 (en) * 2003-02-19 2004-09-02 International Business Machines Corporation Distributed fragment caching and assembly in distributed computing applications
EP1489526A2 (en) * 2003-06-18 2004-12-22 Ricoh Company Ltd. Electronic apparatus and web page generating method
GB2412769A (en) * 2002-05-29 2005-10-05 Flyingspark Ltd System for managing cache updates
US7200645B2 (en) 2002-06-26 2007-04-03 International Business Machines Corporation Running dynamic web pages off-line with a wizard
US7249313B2 (en) 2002-06-26 2007-07-24 International Business Machines Corporation Creating and utilizing a wizard to capture an application's interdependencies between web pages and data accesses for running the application's downloadable dynamic web pages off-line
WO2009082900A1 (en) * 2007-12-29 2009-07-09 Huawei Technologies Co., Ltd. Page component layout method and device

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008269618A (en) * 2008-05-07 2008-11-06 Fujitsu Ltd Web server, and web server having function of java servlet

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061715A (en) * 1998-04-30 2000-05-09 Xerox Corporation Apparatus and method for loading and reloading HTML pages having cacheable and non-cacheable portions

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5928323A (en) * 1996-05-30 1999-07-27 Sun Microsystems, Inc. Apparatus and method for dynamically generating information with server-side software objects
US5892905A (en) 1996-12-23 1999-04-06 International Business Machines Corporation Computer apparatus and method for providing a common user interface for software applications accessed via the world-wide web
US6021426A (en) 1997-07-31 2000-02-01 At&T Corp Method and apparatus for dynamic data transfer on a web page
JPH1165905A (en) * 1997-08-22 1999-03-09 Nec Corp Www service system using homepage update history information
JPH11143910A (en) 1997-11-11 1999-05-28 Nec Corp Extension system for composite object and computer readable recording medium

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061715A (en) * 1998-04-30 2000-05-09 Xerox Corporation Apparatus and method for loading and reloading HTML pages having cacheable and non-cacheable portions

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CHALLENGER J ET AL: "A SCALABLE SYSTEM FOR CONSISTENTLY CACHING DYNAMIC WEB DATA" PROCEEDINGS IEEE INFOCOM '99. THE CONFERENCE ON COMPUTER COMMUNICATIONS. 18TH ANNUAL JOINT CONFERENCE OF THE IEEE COMPUTER AND COMMUNICATIONS SOCIETIES. NEW YORK, NY, MARCH 21 - 25, 1999, PROCEEDINGS IEEE INFOCOM. THE CONFERENCE ON COMPUTER COMMUNICA, vol. 1, 21 March 1999 (1999-03-21), pages 294-303, XP002906260 ISBN: 0-7803-5418-4 *
CRAIG E. WILLS, MIKHAIL MIKHAILOV: "Exploiting Object Relationships for Web Caching" COMPUTER SCIENCE TECHNICAL REPORT SERIES - WORCESTER POLYTECHNIC INSTITUTE, [Online] October 1999 (1999-10), page 1-16 XP002224468 Retrieved from the Internet: <URL:http://www.cs.wpi.edu/~cew/papers/tr99-29.ps.gz. > [retrieved on 2002-12-04] *
DOUGLIS F ET AL: "HPP: HTML macro-preprocessing to support dynamic document caching" PROCEEDINGS OF THE USENIX SYMPOSIUM ON INTERNET TECHNOLOGIES AND SYSTEMS, XX, XX, 8 December 1997 (1997-12-08), pages 83-94, XP002162124 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1182589A2 (en) * 2000-08-17 2002-02-27 International Business Machines Corporation Provision of electronic documents from cached portions
EP1182589A3 (en) * 2000-08-17 2002-07-24 International Business Machines Corporation Provision of electronic documents from cached portions
GB2389201A (en) * 2002-05-29 2003-12-03 Flyingspark Ltd Methods and System for Using Caches
GB2412769B (en) * 2002-05-29 2006-09-13 Flyingspark Ltd Methods and systems for using caches
GB2412771B (en) * 2002-05-29 2006-01-04 Flyingspark Ltd Methods and system for using caches
GB2389201B (en) * 2002-05-29 2005-11-02 Flyingspark Ltd Methods and system for using caches
GB2412769A (en) * 2002-05-29 2005-10-05 Flyingspark Ltd System for managing cache updates
GB2412771A (en) * 2002-05-29 2005-10-05 Flyingspark Ltd System for managing cache updates
US7249313B2 (en) 2002-06-26 2007-07-24 International Business Machines Corporation Creating and utilizing a wizard to capture an application's interdependencies between web pages and data accesses for running the application's downloadable dynamic web pages off-line
US7200645B2 (en) 2002-06-26 2007-04-03 International Business Machines Corporation Running dynamic web pages off-line with a wizard
FR2842624A1 (en) * 2002-07-22 2004-01-23 France Telecom Web page caching method, by storing page fragments with different lifetimes in dynamic cache between client terminal and servers
WO2004074960A3 (en) * 2003-02-19 2004-11-11 Ibm Distributed fragment caching and assembly in distributed computing applications
WO2004074960A2 (en) * 2003-02-19 2004-09-02 International Business Machines Corporation Distributed fragment caching and assembly in distributed computing applications
US7177900B2 (en) 2003-02-19 2007-02-13 International Business Machines Corporation Non-invasive technique for enabling distributed computing applications to exploit distributed fragment caching and assembly
EP1489526A2 (en) * 2003-06-18 2004-12-22 Ricoh Company Ltd. Electronic apparatus and web page generating method
WO2009082900A1 (en) * 2007-12-29 2009-07-09 Huawei Technologies Co., Ltd. Page component layout method and device

Also Published As

Publication number Publication date Type
WO2001088762A9 (en) 2002-10-10 application
WO2001088762A3 (en) 2003-08-07 application
EP1356394A2 (en) 2003-10-29 application
JP5465821B2 (en) 2014-04-09 grant
JP2004501437A (en) 2004-01-15 application

Similar Documents

Publication Publication Date Title
Hofmann et al. Content networking: architecture, protocols, and practice
Johnson et al. The measured performance of content distribution networks
Luotonen et al. World-wide web proxies
US7149809B2 (en) System for reducing server loading during content delivery
US5901287A (en) Information aggregation and synthesization system
US6957398B1 (en) Collaborative screensaver
US6529908B1 (en) Web-updated database with record distribution by email
US7430587B2 (en) Distributed globally accessible information network
US6721780B1 (en) Predictive pre-download of network objects
US6185586B1 (en) Content display during idle time as a user waits for information during an internet transaction
US6480893B2 (en) Web serving system
US6223209B1 (en) Distributed world wide web servers
US6789170B1 (en) System and method for customizing cached data
US6553376B1 (en) Efficient content server using request redirection
US5771355A (en) Transmitting electronic mail by either reference or value at file-replication points to minimize costs
US7647424B2 (en) Multi-level redirection system
US7103714B1 (en) System and method for serving one set of cached data for differing data requests
US6343323B1 (en) Resource retrieval over a source network determined by checking a header of the requested resource for access restrictions
Baentsch et al. World Wide Web caching: The application-level view of the Internet
US9026616B2 (en) Content delivery reconciliation
US6061659A (en) System and method for integrating a message into a graphical environment
US9009286B2 (en) Locality based content distribution
US5870546A (en) Method and apparatus for redirection of server external hyper-link reference
US7103645B2 (en) Method and system for providing content delivery to a set of participating content providers
US7194424B2 (en) User demographic profile driven advertising targeting

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): JP

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR

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

Free format text: PAGES 1/4-4/4, DRAWINGS, REPLACED BY NEW PAGES 1/2-2/2; DUE TO LATE TRANSMITTAL BY THE RECEIVING OFFICE

AK Designated states

Kind code of ref document: C2

Designated state(s): JP

AL Designated countries for regional patents

Kind code of ref document: C2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR

WWE Wipo information: entry into national phase

Ref document number: 2001935510

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2001935510

Country of ref document: EP