Wendy,
while working on our Incremental Update implementation is was thinking
about the 3 solutions and decided to prefer option 1. I also like it for
its simplicity while it still keeps start and stop separated.
However,if I read your mail correctly the stream-id field is only
allowed in stop updates. That means adding resources to an existing
stream is not supported. So, if a client wants to add resources it needs
to create a new stream requesting the existing + the new resource(s)?
Furthermore, I updated our ALTO server
(alto.benocs.berlin:8000/directory) and it now supports the
incremental-updates draft -01. However, since we use the interop network
to generate the maps
there are no changes (yet). Hence, every client will only receive the
start event and the first resource data but no updates since there
aren't any changes in the network.
Due to the lack of updates from our ALTO server I was also thinking
about adding some (optional) incremental update tests to the interop
draft. What do you think?
Hans
On 01.10.2015 17:53, Wendy Roome wrote:
Hans,
Thanks for pointing that out! First, I assumed they were exclusive: a
request can have start-updates or stop-updates, but not both. But the
draft does not say that. My implementation does not support both in
one request, but does not return an error if a request does. (My
server just ignores the stop-updates field. My culpa!)
But I just realized there is a use for having both in one request.
Suppose a client wants to stop a previous update-stream, and replace
it with a new stream. Combining both in the same request is more
efficient. On the other hand, is that going to happen often enough to
matter?
To complicate things, a request with start-updates, stream-id and
stop-updates is ambiguous. The stop-updates part is clear. The
ambiguity is for the new resources in start-updates. Should the server
return updates for those on the new tcp connection? Or should the
server add the start-updates resources to the *other* stream - - the
one with the stream-id?
I see several ways to fix that:
1. Say that start-updates & stop-updates are mutually exclusive. That
is, a request has start-updates, or stop-updates and stream-id, but no
other combination. And say the server must return an error if the
client violates that rule.
2. Allow both in one request. But then we have to decide whether the
start-updates resources are to be added to the existing stream, or to
be returned in a new stream.
3. Define two separate requests: start-new-update-stream and
modify-existing-update-stream. They would have different parameter
types, and hence different accepts media-types. That is unambiguous,
and is very general, and would allow a client to add resources to an
existing update stream. But that approach is more complicated, and I
do not know if the extra complication is worth it.
What do the rest of you think? My vote is for #1, just to keep it simple.
- Wendy Roome
From: Hans Seidel <[email protected]>
Date: Thu, October 1, 2015 at 10:45
To: "Y. Richard Yang" <[email protected] <mailto:[email protected]>>,
Wendy Roome <[email protected]
<mailto:[email protected]>>
Cc: "[email protected]" <[email protected] <mailto:[email protected]>>
Subject: Re: [alto] New Incremental Update draft
Wendy, Richard,
great work.
One question that came up while reading:
1. Is it allowed to use "start-updates" and "stop-updates" in one HTTP
request? I found nothing specific that neither supports nor
contradicts that.
Intuitively, I would say no, it is not allowed to have both in one
request but I am not entirely convinced.
Hans
_______________________________________________
alto mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/alto