Subject: Re: Taxonomy Term closure needed

From: Joe Touch <[email-masked]>
Date: Thu, 9 Sep 1999 17:40:49 -0700 (PDT)

> 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?

A cache is a system which stores temporary copies of response messages, 
and replays them when prompted. 

(this is nearly the same as the first sentence or two, 
excepting the note of a "TEMPORARY" copy)

> 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.

Hmm - a MIRROR is a server with content identical to that of another
server. (?) Such equality is maintained on a periodic basis. (?)

> 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."

This is the one I find odd. There is nothing reverse about it.
It's just a proxy cache co-located (or nearly-colocated) with the server.

A "REVERSE" proxy would have something __reversed__ -  
it would cache requests rather than responses (what would be the point?)
or would play things backwards :-)

Why not just call it a "server-side, or server-proximal" cache?

> 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"

And which intercepts requests that have associated responses
in its cache.

> 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"

A proxy cache co-lococated (or nearly-so) with a server.
The term "server-side or server-proximal" would be better.

> 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?

These have way too many adjectives to need definition at this time.

Joe

---

From: Ian Cooper <[email-masked]>
Date: Fri, 10 Sep 1999 10:49:50 +0100

>excepting the note of a "TEMPORARY" copy)

I agree with you.  The original text was taken from RFC2616, with the
words ", server load" added.  I would favor reverting to the
definition given in 2616.

The problem is that folks refer to "caching proxies" as caches, just
like they refer to "transparent caches" to mean something else.  We
can document this (indeed, that is the plan).

>server. (?) Such equality is maintained on a periodic basis. (?)

Would that limit us to an environment where www.apache.org.uk is a
mirror for www.apache.org, but
http://sunsite.org.uk/Mirrors/ftp.apache.com/pub/apache/ is not?

"Identical" in what sense and in which direction?

>or would play things backwards :-)

It'd certainly make some sites more interesting.

>Why not just call it a "server-side, or server-proximal" cache?

I thought we agreed on this (and your issues) in Oslo?

The idea was (correct me if I'm wrong) to bundle "accelerators" and
"reverse proxies" under the same general heading and to acknowledge
the various synonyms that are in common usage.

>And which intercepts requests that have associated responses

Good point.

>The term "server-side or server-proximal" would be better.

Hmm.  Is a "caching reverse proxy" the same as a "reverse proxy"?

Ian

---

From: "Oskar Batuner" <[email-masked]>
Date: Fri, 10 Sep 1999 19:19:09 -0400

> -----Original Message-----
> From: Ian Cooper [mailto:[email-masked]]
> Sent: Friday, September 10, 1999 5:50 AM
> To: Joe Touch
> Cc: [email-masked]
> Subject: Re: Taxonomy Term closure needed
> 
> 

I'm afraid the definition "response messages" is somewhat misleading. 
We are interested not in messages but in data entities (or resources)
carried in these messages. Here you get this discussion if we should 
store error replies. Well, we should not store some success replies 
too, like 200 reply to POST or PUT. 

In fact cache operates with data entities, and 
the protocol message is not replayed but generated. 
Reply code in this message reflects resut of the request 
processing in cache, not copy of server reply code. Consider 
partial GET or conditional GET. Given valid entity (resource) 
exists in the cache valid response may be given to such requests, 
and this response does not reproduce some message from 
server - such message may have never existed, entity may 
have arrived in a different message.

I suggest to change terminology to "resources" or "data entities" 
to better reflect this reality.

- Oskar

---

From: Joe Touch <[email-masked]>
Date: Sat, 11 Sep 1999 09:42:44 -0700

> too, like 200 reply to POST or PUT.

Agreed - the response isn't a pure replay, as you indicated later,
either. So the cache:

	- stores responses to earlier requests
	  (it has to be a response, not a resource or anything else.
	   a response is all the cache sees at this point)

	- look for incoming requests for which it can use
	  stored data to generate an appropriate response

		- (define appropriate however you like - it's
		   whatever the cache _wants_ to send in response
		   to the new request)

	- generate that response in deference to forwarding the
	  request, if so indicated

Joe