ietf-openproxy
[Top] [All Lists]

Re: Draft on Callout Protocol Requirements

2001-11-23 22:22:58

On Fri, Nov 23, 2001 at 11:51:42PM -0500, Mark Baker wrote:

"doing things" encompasses vectoring to a proxylet/servelet; the
responsibility for honoring the semantics of the protocol (e.g.,
HTTP) are entirely the responsibility of the service. (OPES
folks, is this still the case?)

Hmm, not sure I follow that.

My conception of the current OPES approach is that your language
translation service would have the the intermediary figure out when
to vector the message (rule-based), but would not assure protocol
semantics; therefore, the futzing with the entity headers, etc. would
be done by the service, not the intermediary. And we're both saying
that this is a Bad Thing.

This could be wrong; I haven't kept up with OPES recently.


log:forAll :x, :y, :z .
{ :http_request headers:accept_language :x .
  :http_response headers:content_language :y .
}
  log:implies
  { http_response opes:invoke [ :service :lang_trans ; :from :y ; :to :x ] .
    http_response headers:content_language :x .
  } .

I think this is along the lines of what you're talking about. Doing
it as statements gives a nice way to introduce access control, trust,
etc.

For sure.  But that looks more like a script rather than an assertion,
no (calculus vs. algebra)?  Very IRML-like.  For HTTP & the Semantic
Web, I was thinking more along the lines of redirects as statements
about resource identity, 4xx response codes as statements about the
client request, and 2xx as statements about the response.  Headers are
also commonly statements about something.  

Definately; that's where I'm going with it. But you need to do
inference; the above is all completely declarative; it just overlays
logic onto contexts to build rules; then you run them against
statements extracted from messages like

:http_request headers:accept_language ("en", "fr")
:http_request log:uri [ uri:scheme "http" ; uri:authority [ 
  uri:host "www.example.org" ; uri:port "80" ] ; uri:path "/foo" ] .

and so forth. See [2].


Roy Fielding identified three types of headers[1]; two of these
(the ones called "metadata") are statements about things as well.

 [1] 
http://www.ebuilt.com/fielding/pubs/dissertation/rest_arch_style.htm#tab_5_1

But I digress ...

Oh, that's not a digression at all; I think it's a critical
distinction for efforts like OPES. I can see attempts at doing this
in 2616 (entity/general/request/response headers), but Roy's approach
is much clearer, and it would be even nicer if there was a more solid
differentiation, as he suggests.

Cheers,


[2] http://www.w3.org/2000/10/swap/Primer.html

-- 
Mark Nottingham, Research Scientist
Akamai Technologies (San Mateo, CA USA)