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