ietf-openproxy
[Top] [All Lists]

FW: comments on draft-dracinschi-opes-callout-requirements-00.txt

2002-03-07 14:14:16
Forgot to copy the list on my response to Hilarie....

-----Original Message-----
From: Penno, Reinaldo [SC9:T327:EXCH] 
Sent: Wednesday, March 06, 2002 11:50 PM
To: 'The Purple Streak (Hilarie Orman)'
Subject: RE: comments on
draft-dracinschi-opes-callout-requirements-00.txt


Hello Hilarie,

I think we are talking about different things. Markus can jump on it
anytime.

In your example let's suppose the content consumer does not want tr1(A) or
tr2(A), and also it's also not okay to send tr1(A) and then tr2(A). What the
content consumer wants is the stream/page/whatever transformed by
tr1(A)+tr2(A).  So, what I was mentioning is that instead of doing
sequentially, we might send a copy to each server to expedite execution, let
them apply their service, get the stream/page/whatever back, decide what is
the final version (possibly a combination of the two) and send to the
content consumer.

Now it can happen that if the modifications that tr1(A) and tr2(A) are going
to do on the stream result in conflicting interests, the intermediary will
have the final judge. The first example that comes to my mind would be when
you send two copies of a page to two callout servers. One will perform some
filtering for malicious code possibly removing ActiveX, another one will
insert reginal news content which might include ActiveX controls code. So,
what would the intermediary do when it receives the these two modified
copies of the page? You can expand this to several other examples...

thanks,

Reinaldo

-----Original Message-----
From: The Purple Streak (Hilarie Orman) 
[mailto:ho(_at_)alum(_dot_)mit(_dot_)edu]
Sent: Wednesday, March 06, 2002 10:45 PM
To: Markus Hofmann
Cc: ietf-openproxy(_at_)imc(_dot_)org
Subject: Re: comments on
draft-dracinschi-opes-callout-requirements-00.txt



The intermediary can certainly keep track of A, tr1(A), and tr2(A),
where A is an object (stream), tr1(A) is A transformed by service type 
1, and tr2(A) is A transformed by service type 2.  The intermediary
might delivery A immediately to satisfy some requests (even forwarding
the stream packet-by-packet as it arrives), serve and cache tr1(A) for
some requests, and cache tr2(A) for a different period of time and
server different requests with that data.  That's the simple case.
It seems relatively straightforward, if we are talking about the
same thing.

Hilarie

Markus Hofmann wrote:


Hi,

I agree that parallel service requests (actually to totally 
different 
call-out server) are very powerful, but the callout server 
would never 
known by its own whether its modifications on the message 
are going to 
affect other services or not. [...]


I agree, and it seems there might be several different approaches to 
solve this problem, but each of them would add some 
complexity to the 
system.

So, a general first question is whether we would like to 
allow parallel 
service requests on the same message or not. What are the expected 
benefits and do they justify added complexity? Any opinions?

-Markus