Re: about CritLink and annotation systems in general

On Fri, 27 Aug 1999, Adrian Heilbut wrote:
> 
> On proxies vs. mediators: (partly to see if my understanding is correct...)
> 
> A mediator is a more abstract concept than a proxy.

Uh, no.  I think you are confusing the term "mediator" with a more
general definition of "anything that alters the presentation of a
Web page".  A mediator and a proxy are both implementation mechanisms.
They both have a similar structure: some entity -- whether it be on the
client machine, the server machine, or a different third-party machine --
sits between the client and the server, forwarding requests from the
client to the server and forwarding responses from the server to the
client.

The difference is in what they are expected to do.  From the client's
perspective, a proxy is expected to stand in place of the original server
as much as possible.  It is relied upon to produce exactly the same
information that the client would have received directly from the server.

A mediator is expected to do some processing on the information, whatever
it may be.  Hopefully it will do something useful.  (My first mediator,
a pig-latin mediator, and several other early mediators, did not.  But
they were fun.)  A mediator is not required to produce the original page.

The distinction parallels the non-technical meanings of the words "proxy"
and "mediator".  For example, a mediator that translates everything from
English to Swahili might be useful in some situations.  But it wouldn't do 
much good to send that person to vote at a meeting as your proxy!

> A proxy is any software that supports the http proxy protocols.

Okay, so now there is also this matter of the term "HTTP proxy".  Indeed,
as you say, HTTP defines a standard way for clients and proxies to talk
to each other, very similar to the normal way a client would talk to a
server.  But, these protocols are designed to preserve the integrity of
the information all the way through a possibly long chain of proxies.

I am trying to keep the terminology straight so that "proxy" and "HTTP
proxy" both live in the same space of meaning: their purpose and their
mandate is to mimic transparently.

> Local just means that it runs on the same machine as a browser.

Yes.

I suppose that, for "remote", you could make the additional distinction
of whether it runs on the same machine as the server or not.  Perhaps
you could say "server-based" vs. "third-party".

> If an annotation system is going look like a proxy as far as
> the browser is concerned, it remains a proxy, even if it mediates
> by modifying the data passing through.

No!  (Sorry for getting excited, but definitely no!)  If it modifies
the data, it can't be a proxy.  It could pretend to be a proxy by
using the HTTP proxy protocols, but it would in effect be lying.
I very much want to avoid calling such impostors proxies.

HTTP proxies should be proxies.  HTTP proxies should not be mediators:
if you're going to implement a mediator, you should do it some other
way, somehow.

> Muffin, by this definition, is a local proxy.  Thirdvoice is not.  Both,
> however, are local mediators.

So, ThirdVoice is not a mediator; and from your description i would say 
that Muffin is an HTTP proxy implementation which permits you to make
it do the job of a mediator while masquerading as a proxy.

> Crit, a mediator, is not a proxy, but it could be modified to be a "mediating
> remote proxy", which would eliminate the funny URLs.

Yes, it could be modified in such a way, but it shouldn't.

> There is not going to be a single optimal implementation.  A remote mediator
> might well be the optimal solution to annotating pages on a handheld device,
> for example.

Indeed.  That's a good example.

> Proxy implementations suffer from the limitations of a web
> interface, so the slickest software might well be a "client helper" like
> Thirdvoice, or code integrated in Mozilla.

Yes, quite right.



-- ?!ng

        I never dreamt that i would get to be
        The creature that i always meant to be
        But i thought, in spite of dreams,
        You'd be sitting somewhere here with me.

Received on Sunday, 29 August 1999 02:29:51 UTC