Caching dynamic content

Electrical computers and digital processing systems: multicomput – Distributed data processing – Client/server

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C719S311000, C707S793000

Reexamination Certificate

active

06757708

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a computer system, and deals more particularly with a method, system, and computer program product for caching dynamically generated content (including, but not limited to, dynamically generated Web pages), as well as determining when the cached content should be invalidated or purged.
2. Description of the Related Art
Techniques are well known for caching static content of files, Web pages, and so forth in order to improve the speed and efficiency of information retrieval. For example, when a user in an Internet environment requests delivery of a static Web page, the page may be initially retrieved from a remote server and then stored in a data store that is locally accessible to the requester's computing device. (Or, in some cases the retrieved page may be stored in a data store of an intermediate server.) Subsequent requests by this user for the same page may be intercepted by a caching system which retrieves the page from this local (or intermediate) data store. In this manner, the system overhead of the round trip to the remote server is avoided, thereby improving the system performance and reducing the response time to the user. On the other hand, subsequent requests for a previously cached Web page may require retrieval of a new version of the page from the remote server, based on the results of a cache invalidation algorithm or process that determines whether the currently cached version has become out of date or stale. The Hypertext Transfer Protocol (“HTTP”), which is commonly used to request and deliver Web pages, provides one such cache invalidation technique wherein the creator of the page content may include a header field value that specifies the date and time when the content expires (that is, when it should no longer be considered valid). File modification timestamps are commonly used for cache invalidation (also referred to as cache refreshing), where a newer timestamp implies that the content of a file has changed and thus should supersede a previously cached version thereof.
With dynamically generated content, the caching of data and the cache invalidation issues are more complex than with static content. At the same time, generation of dynamic content is typically a much slower and more expensive operation (in terms of computing resources used) than retrieval of static content, and thus there are significant performance improvements to be realized with a well-designed dynamic content caching technique.
Dynamically generated Web page content is becoming more prevalent in the Internet environment. One common, simple use of dynamic page content is the “visitor counts” which are often displayed on Web pages, with text such as “You are the 123rd visitor to this site since Jan. 1, 1999” (where the count of visitors is accumulated at the server and inserted into the page syntax before returning the page to the user). Other simple uses of dynamic content include displaying the current date and time on the dynamically generated page. More advanced techniques for dynamic content allow servers to provide Web pages that are tailored to the user's identification and other available information about the user. For example, servers providing travel reservation services commonly store information about the travel preferences of each of their users and then use this information when responding to inquiries from a particular user. Dynamic content may also be based upon user classes or categories, where one category of users will see one version of a Web page and where users in another category will see a different version—even though all users provided the same URL (“Uniform Resource Locator”) to request the Web page from the same server. For example, some Web server sites provide different services to users who have registered in some manner (such as filling out an on-line questionnaire) or users who have a membership of some type (which may involve paying a fee in order to get enhanced services, or more detailed information). The difference in dynamically generated content from one generation to another may be as simple as including the user's name in the page, as a personalized electronic greeting; or, the differences may be more significant (such as dynamic content that changes based upon each particular user's past activities at this site). On-line shopping sites, for example, may include a recognition for repeat shoppers, such as thanking them for their previous order placed on some specific day or offering a special limited-availability discount.
A number of techniques exist for providing dynamic Web page content in response to a user request. An early technique is CGI (“Common Gateway Interface”) scripts. Application programming interfaces (APIs) for writing plugins were developed to provide efficiency improvements for Web servers. Examples include the NSAPI from Netscape and the ISAPI for the Internet Information Server, or “IIS”. Active Server Pages (“ASPs”) and JavaServer Pages (“JSPs”) were developed to provide even higher-level abstractions for writing logic to generate dynamic content, building on the plugin technology. ASPs are used on Microsoft Web servers to create ActiveX Controls, invoke their methods, and access their properties to generate dynamic content. JSPs may be used to create dynamic content using JavaBeans and in-line Java scripting in a page. (“Java”, “JavaServer”, and “JavaBeans” are trademarks of Sun Microsystems, Inc.) Another technique is the use of servlets, which are executable code objects that can be dynamically invoked by the Web server to process a user request. Servlets typically perform some specialized function, such as creating page content based on dynamic factors.
Dynamically generated content may reflect the result of extracting information from a backend data store (for example, by issuing complex queries against a database, by invoking a legacy host application, etc.). The Host Publisher software product available from the International Business Machines Corporation (“IBM”) is an example of software that may be invoked in response to receiving a user request for Web content, where that content requires invoking a legacy host application or accessing a relational database. The data extracted using the legacy application may then be used to populate the properties of a Java bean, which can subsequently be used to generate dynamic HTML using JSP technology. The generated HTML page may then be transmitted to a user's computer, where it will typically be rendered with a user agent such as a browser. Or, the populated bean may be accessed from a standalone application (e.g. using an Enterprise JavaBean, or “EJB”). Generation of dynamic content in this manner involves a significant amount of processing overhead. Processing the user's content request involves making a connection to the legacy host system, completing a log-on process, navigating among various host screens to extract the pertinent information, and logging off. Similarly, generating content using complex database queries or other legacy data sources is also an expensive, high-overhead process. Retrieving previously-generated information from a cache, rather than generating the dynamic content anew, would make responding to these high-overhead content requests much more efficient.
Content that is dynamically generated may have a different result when the data used in the content creation changes, and/or when any of the application logic used in the creation process changes. On the other hand, depending on the particular data and application logic, such changes might not affect the resulting content. In addition to result differences caused by underlying data and logic changes, other factors may cause the generated content to vary from one invocation to another. One example of this situation is content that is time- or date-sensitive, such as a Web page that contains a time or date value. Another example is content that is designed to vary from one invocat

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Caching dynamic content does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Caching dynamic content, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Caching dynamic content will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3302352

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.