A method, a system, an apparatus, and a computer program product are presented for a fragment caching methodology. After a message is received at a computing device, a fragment in the message body is cached. Cache ID rules from an origin server accompany a fragment to describe a method for forming a unique cache ID for the fragment such that dynamic content can be cached away from an origin server. A cache ID may be based on a URI and/or query parameters and/or cookies that are associated with a fragment. After user authentication, a cookie containing the user's role may be used in subsequent requests for role-specific fragments and in the cache identifier for role-specific fragments, thereby allowing requests from other users for role-specific fragments to be resolved in the cache when the users have the same role because these users would also have the same cookie.
Drawings
Claims42
A method for processing objects within a data processing system in a network, the method comprising:
storing a content object in a cache using a cache identifier for the content object that is based on a URI (Uniform Resource Identifier) for the content object and a cookie value associated with the content object;
receiving a request containing the URI and an associated cookie having the cookie value;
retrieving the content object from the cache using the URI and the cookie value;
and
returning a response containing the content object.
2 more elements
A method for processing objects within a data processing system in a network, the method comprising:
receiving a first response message at a first computing device, wherein the first response message comprises a fragment and a source identifier for a fragment, wherein the first response message is associated with a first cookie having a cookie value, and wherein the first response message is directed to a first client device;
generating a cache identifier for the fragment based on the source identifier and the cookie value;
storing the fragment in a cache at the first computing device using the cache identifier;
receiving a request message at the first computing device from a second client device, wherein the request message contains the source identifier for the fragment, and wherein the request message is associated with a second cookie having the cookie value;
in response to receiving the request message, generating the cache identifier for the fragment based on the source identifier and the cookie value;
retrieving the fragment from the cache using the cache identifier;
generating a second response message comprising the fragment;
and
sending the second response message to the second client device.
6 more elements
An apparatus for processing objects within a data processing system in a network, the apparatus comprising:
means for storing a content object in a cache using a cache identifier for the content object that is based on a URI (Uniform Resource Identifier) for the content object and a cookie value associated with the content object;
means for receiving a request containing the URI and an associated cookie having the cookie value;
means for retrieving the content object from the cache using the URI and the cookie value;
and
means for returning a response containing the content object.
2 more elements
An apparatus for processing objects within a data processing system in a network, the apparatus comprising:
means for receiving a first response message at a first computing device, wherein the first response message comprises a fragment and a source identifier for a fragment, wherein the first response message is associated with a first cookie having a cookie value, and wherein the first response message is directed to a first client device;
means for generating a cache identifier for the fragment based on the source identifier and the cookie value;
means for storing the fragment in a cache at the first computing device using the cache identifier;
means for receiving a request message at the first computing device from a second client device, wherein the request message contains the source identifier for the fragment, and wherein the request message is associated with a second cookie having the cookie value;
means for generating the cache identifier for the fragment based on the source identifier and the cookie value in response to receiving the request message;
means for retrieving the fragment from the cache using the cache identifier;
means for generating a second response message comprising the fragment;
and
means for sending the second response message to the second client device.
6 more elements
A computer program product in a computer readable medium for use within a data processing system in a network for processing objects, the computer program product comprising:
instructions for storing a content object in a cache using a cache identifier for the content object that is based on a URI (Uniform Resource Identifier) for the content object and a cookie value associated with the content object;
instructions for receiving a request containing the URI and an associated cookie having the cookie value;
instructions for retrieving the content object from the cache using the URI and the cookie value;
and
instructions for returning a response containing the content object.
2 more elements
A computer program product in a computer readable medium for use within a data processing system in a network for processing objects, the computer program product comprising:
instructions for receiving a first response message at a first computing device, wherein the first response message comprises a fragment and a source identifier for a fragment, wherein the first response message is associated with a first cookie having a cookie value, and wherein the first response message is directed to a first client device;
instructions for generating a cache identifier for the fragment based on the source identifier and the cookie value;
instructions for storing the fragment in a cache at the first computing device using the cache identifier;
instructions for receiving a request message at the first computing device from a second client device, wherein the request message contains the source identifier for the fragment, and wherein the request message is associated with a second cookie having the cookie value;
instructions for generating the cache identifier for the fragment based on the source identifier and the cookie value in response to receiving the request message;
instructions for retrieving the fragment from the cache using the cache identifier;
instructions for generating a second response message comprising the fragment;
and
instructions for sending the second response message to the second client device.
#The present invention relates to an improved data processing system and, in particular, to a data processing system with improved network resource allocation. Still more particularly, the present invention provides a method and system for caching data objects within a computer network.
#The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, further objectives, and advantages thereof, will be best understood by reference to the following detailed description when read in conjunction with the accompanying drawings, wherein:
#FIG. 1A depicts a typical distributed data processing system in which the present invention may be implemented;
#FIG. 1B depicts a typical computer architecture that may be used within a data processing system in which the present invention may be implemented;
Detailed description29,324 words
#The present invention is directed to a distributed fragment caching technique. In general, the devices that may comprise or relate to the present invention include a wide variety of data processing technology. Therefore, as background, a typical organization of hardware and software components within a distributed data processing system is described prior to describing the present invention in more detail.
#With reference now to the figures, FIG. 1A depicts a typical network of data processing systems, each of which may implement some aspect of the present invention. Distributed data processing system 100 contains network 101, which is a medium that may be used to provide communications links between various devices and computers connected together within distributed data processing system 100. Network 101 may include permanent connections, such as wire or fiber optic cables, or temporary connections made through telephone or wireless communications. In the depicted example, server 102 and server 103 are connected to network 101 along with storage unit 104. In addition, clients 105-107 also are connected to network 101. Clients 105-107 and servers 102-103 may be represented by a variety of computing devices, such as mainframes, personal computers, personal digital assistants (PDAs), etc. Distributed data processing system 100 may include additional servers, clients, routers, other devices, and peer-to-peer architectures that are not shown. It should be noted that the distributed data processing system shown in FIG. 1A is contemplated as being fully able to support a variety of peer-to-peer subnets and peer-to-peer services.
#In the depicted example, distributed data processing system 100 may include the Internet with network 101 representing a global collection of networks and gateways that use various protocols to communicate with one another, such as Lightweight Directory Access Protocol (LDAP), Transport Control Protocol/Internet Protocol (TCP/IP), Hypertext Transport Protocol (HTTP), Wireless Application Protocol (WAP), etc. Of course, distributed data processing system 100 may also include a number of different types of networks, such as, for example, an intranet, a local area network (LAN), a wireless LAN, or a wide area network (WAN). For example, server 102 directly supports client 109 and network 110, which incorporates wireless communication links. Network-enabled phone 111 connects to network 110 through wireless link 112, and PDA 113 connects to network 110 through wireless link 114. Phone 111 and PDA 113 can also directly transfer data between themselves across wireless link 115 using an appropriate technology, such as Bluetooth™ wireless technology, to create so-called personal area networks (PAN) or personal ad-hoc networks. In a similar manner, PDA 113 can transfer data to PDA 107 via wireless communication link 116.