Subject: Re: Taxonomy Term closure needed

From: michael rabinovich <[email-masked]>
Date: Sat, 4 Sep 1999 22:11:08 -0400 (EDT)

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 [email-masked] 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
> 
> 
>

---

From: John Martin <[email-masked]>
Date: Mon, 06 Sep 1999 17:51:21 +0200

Misha, Gary,

>satisfy future requests for the same resources.

I think this is the definition of a proxy or a caching proxy, not a 
"cache". I believe the definition of the broad term "cache" was deemed too 
controversial / difficult at one of our previous meetings and I thought 
that we had therefore agreed, in the context of the taxonomy document, to 
define only the term "caching proxy" and derivatives thereof?

John
---------------------------------------------------------------
Network Appliance           Direct / Voicemail: +31 654 308 275
Kruisweg 799                               Fax: +31 23 567 9699
NL-2132 NG Hoofddorp               Main Office: +31 23 567 9600
---------------------------------------------------------------