A reverse cache is not by definition "controlled by a content provider".
In most cases this will be the case. But it does not need to be. Everyone can set up an accelerator everywhere. Just as an example, we usually set up an accelerator (reverse cache) for www.novell.com in technical trainings. Or, yet another example, internally I've setup accelerators for various popular sites on a test server. By using a reverse cache internally Ican improve performance dramatically. All I need to do is "hack" the dns entry, so with my browser I access the reverse cache instead of the origin server on the internet (or I simply access the reverse cache by ip address). I'm doing it for example with my own website, which is hosted at an outside internet service provider, who doesn't even know that the site is reverse cached.
The point is, a reverse cache MAY (and will most likely be), but definitely MUST NOT be under the same administrative control than the origin server that it accelerates. I would define a "reverse cache" as a device that acts on behalf of the origin server. The dns record for the server is modified so that it points to the reverse cache instead of the origin server. The reverse cache will fill the cache from the origin server for any requests coming in. It is using the same algorithms than the forward cache to control object freshness.
Frank
>>> michael rabinovich <misha@research.att.com> 05.09.99 4.11 >>>
Here are my definition drafts. Apologies if wording is sloppy in some
places - this can be corrected at a later time.
Misha Rabinovich.
A cache - a device on the request path from a client to a server
^^^^^^^
such that (1) requests arrive to this device regardless of its state;
and (2) it can store some responses and use them to
satisfy future requests for the same resources.
A typical property of a cache, which distinguishes it from a
mirror or replica, is that it sees both hit and missed requests.
Examples: browser main memory and disk cache; a proxy cache,
an origin server main memory cache.
Note: there is a distinction between a cache and its storage.
One might say that the browser disk cache is not a cache according to
the above definition since missed requests do not touch disk. However,
this cache includes also the code for checking if the requested
object is stored in the disk cache. Thus, missed requests do get
processed by the disk cache.
A forward cache is the cache that is outside the control of any
^^^^^^^^^^^^^^^
content provider. It is the responsibility of the client or
network operators to deliver requests to the forward cache.
Origin servers are typically oblivious to the existence of
forward caches - a forward cache looks just like another client
to them, with the exception of a special HTTP request header that
some forward caches insert.
A reverse cache is the cache that is controlled by a content provider.
^^^^^^^^^^^^^^^
It is the responsibility of the content provider to deliver requests
to the reverse cache. Clients are oblivious to the existence of
reverse caches.
A replica of a Web object is a copy of the object on a
^^^^^^^^^^^^^^^^^^^^^^^^^
server that is not on the request path from a client to
the server where the primary object copy resides.
A mirror is a server that hosts replicas of Web objects.
^^^^^^^
While caches process requests as they fly through, the delivery of
requests to mirrors is done based on the knowledge by the
delivery mechanism that particular mirrors have particular replicas of
particular objects. Thus, mirrors normally do not see missed requests
unless the delivery mechanism uses imperfect or obsolete replica
location information.
There is a variety of mechanisms for delivering requests to mirrors.
Examples include user-based (when a replica receives a separate URL),
DNS-based (where mirrors store replicas of entire sites and the site
DNS server rotates among the mirrors when answering DNS queries for the
site), HTTP-based (when the primary server redirects requests to
a mirror).
> From owner-wrec@cs.utk.edu Fri Aug 27 15:02 EDT 1999
>
> Hello WREC'ers.
>
> We've had a great deal of discussion these past two weeks concerning caching and replication. I propose that we work on getting our core definitions completed now. From these, we can move onto finishing up the taxonomic implementation and deployments based upon these definitions.
>
> First I suggest we break the defintions up into a small base set that are the most fundamental. From the base set come the first and second derivatives that form all the core terms necessary to describe repliacation and caching implementations. Included are a starting point for discussion.
>
> As we move from the terminology to the taxonimc discussions, please keep in mind the following:
>
> Implementation and deployment that is broadly (or hopelessly depended upon) in the Internet today belongs in the taxonomy draft.
>
> Current research and needed research belongs in the research draft. (Joe Touch Editor)
>
> Known problems and implementation shortcomings of current implementation/deployment belong in the known issues draft (John Dilley Editor)
>
> Here are the core terms as they stand today. Feel free to add/subtract the core set.
>
>
> Base Terms:
> Client
> Exactly adopted from RFC2616. Editors View - Consensus
> "A program that establishes connections for the purpose of sending requests."
>
> Proxy
> A derived definition for RFC2616. Editors View - Consensus
> Editors Note: The term has been heavily debated within the WG. Consensus
> is to override the definition in RFC2616.
> "An intermediary system which acts as both a server and a
> client for the purpose of making requests on behalf of
> other clients. Requests are serviced internally or by
> passing them on, with possible translation, to other
> servers. A proxy MUST implement both the client and server
> requirements of this specification. A "transparent proxy"
> is a proxy that does not modify the request or response
> beyond what is required for proxy authentication and
> identification. A "non-transparent proxy" is a proxy that
> modifies the request or response in order to provide some
> added service to the user agent, such as group annotation
> services, media type transformation, protocol reduction,
> or anonymity filtering. Except where either transparent or
> non-transparent behavior is explicitly stated, the HTTP
> proxy requirements apply to both types of proxies.
>
> Note: The term "transparent proxy" given in [6] has different
> meaning within the Web caching community. Further
> unspecified references in this document (including the
> following paragraph) are to the Web caching community
> definition, which is given later.
>
> The condition requiring implementation of both server and
> client requirements of HTTP/1.1 is only appropriate for a
> non-transparent proxy."
>
> Replication
> Not defined. Editors View - Open Disucssion
> Editors Note: Amazingly enough, we can't find any definition for replication
> in any on-line RFC or draft. Is it really intuitive. We think not, since
> there so much debate in the working group surrounding what is replication.
>
> Server
> Exactly adopted from RFC2616. Editors View - Consensus
> "An application program that accepts connections in order to
> service requests by sending back responses. Any given program may
> be capable of being both a client and a server; our use of these
> terms refers only to the role being performed by the program for a
> particular connection, rather than to the program's capabilities
> in general. Likewise, any server may act as an origin server,
> proxy, gateway, or tunnel, switching behavior based on the nature
> of each request."
>
> Surrogate
> Not defined Editors View - Open Discussion
> Editors-Note: A fundemental concept to the web. Surrogates act in behalf of
> content publishers. Examples of surrogates within the taxonomy are: Mirrors
> and accelerators.
>
> First Derivative Terms: (Build upon base terms)
> Cache
> A derived definition for RFC2616. Editors View - Open Disuccsion
> Editor-Notes: The most controversial term in the taxonomy. Is it dervived
> from replication or is it a base term? 3 variants proposed need
> rationalization. There has been so many comments on each of the variant
> definitions, we would like the individuals to supply thier current concise
> definitions for dicussion.
> Current taxonomy definition
> "A program's local store of response messages and the
> subsystem that controls its message storage, retrieval, and
> deletion. A cache stores cacheable responses in order to
> reduce the response time, server load and network
> bandwidth consumption on future, equivalent requests. Any
> client or server may include a cache, though a cache
> cannot be used by a server while it is acting as a tunnel."
>
> Joe Touch's definition
> Joe can you supply your current definition?
>
> Wojtek Sylwestrzak's definition
> Wojtek can you supply your current definition?
>
> Misha Rabinovich's definition
> Misha can you supply your current definition?
>
> Ivan Lovric's definition
> Ivan can you supply your current definition?
>
>
> Mirror
> Not defined. Editors View - Nees Discussion
> Editors-Note: An attempt at taxonomy has been made. It is clear
> from discussion that a definition is in order. The taxonomic variants
> can then be defined from it.
>
> Origin Server
> Exactly adopted from RFC2616. Editors View - Consensus
> "The server on which a given resource resides or is to be created."
>
> Reverse Proxy
> A new defintion. Editors View - Open Discussion
> Editors-Note: Differentiation from proxy is needed.
> "An intermediary system which acts as both a server and a
> client for the purpose of serving requests on behalf of
> origin servers. Requests are serviced internally or by
> passing them on to the origin server they are representing.
> A reverse proxy must interpret and, if necessary, rewrite a
> request message before forwarding it. Reverse proxies are
> often used as server-side portals through network firewalls
> and as helper applications for off loading requests from
> origin servers."
>
> Second Derivative Terms: (Build upon first derivative terms)
> Caching Proxy
> A new defintion. Editors View - Consensus
> "A proxy with a cache, acting as server to clients, and
> a client to servers"
>
> Caching Reverse Proxy (Accelerator)
> Not Defined. Editors View - Needs Discussion
> Editors-Note: Do we need it? Suggested definition
> "A reverse proxy with a cache, acting as server to clients, and
> a client to servers"
>
> Replica Origin Server
> New definition. Editors View - Open Disussion
> Editors-Note: In light of the recent disuccsion, the authoritative
> attribute is quiestionable.
> "origin server storing a persistent replica of a data set
> stored at the authoritative reference"
>
> Surrogate Cache
> Not Defined. Editors View - Needs Discussion
> Editors-Node: Do we need it, or is it a role that is provided by proxies,
> reverse proxies and replica origin servers?
>
> - Gary
>
>
>
This archive was generated by hypermail 2b29 : Thu Nov 18 2004 - 11:21:27 MST