VOEvent II summary, part 3
Rob Seaman
seaman at noao.edu
Mon Dec 19 07:04:11 PST 2005
Hi Andrew,
>> Pull:
>> RSS 2 with enclosures. We'll undoubtedly have more to say about
>> this choice after we gain more experience.
>
> Although I like the idea of enclosures I intend to use both links
> and enclosures as most rss feed readers do not fully support
> enclosures. For instance the rss reader that I currently use. I
> expect many people will already have their favorite rss readers set
> to receive various feeds and may be reluctant to change.
The other guys can comment, but the whole tenor of the conversation
was to allow freedom of transport - at least for the near to medium
term. If you don't want to use enclosures, nobody is going to force
you to. The packets themselves may be riddled with external
references, or may be replaced completely through indirection.
Enclosures are more in the nature of a goal to pursue. I probably
didn't emphasize the point enough, but several groups will continue
to investigate other transport protocols. Ultimately we're simply
going to need reliable messaging.
We should also continue to distinguish between communication
protocols extending outward to our users (authors and readers) and
those used internally between brokers. Since the summer school I've
tried to infect the discussion with the "SEAP" meme. What language/
interface/protocol is used to provide "Simple Event Access"? But
this effort has proven pretty unsuccessful. We need to bootstrap a
broadly based functional network before we have an opportunity to
standardize the technology. Even then it may not be obvious that we
will want to do so - as that neo-Bolshevik Alasdair says, the market
will decide.
>> 1) An ack message:
>> Upon successful receipt of a packet, the receiving component will
>> return an ack packet to the sender. At its simplest, this will be
>> an empty VOEvent element:>
>> <VOEvent id=<same as original packet> role="ack" version=... />
>> An ack packet might also contain normal VOEvent content, but this
>> is discouraged until we come up with a good reason for doing so.
>>
>> 2) An "I am alive" packet:
>> On an arbitrary schedule(s), each broker emits role="iamalive"
>> packets to other brokers (meaning other VOEvent participants,
>> perhaps including individual subscribers). Subsequent discussions
>> have clarified the format of these packets to include a timestamp
>> and explicit publisher ID:
>>
>> <?xml version = '1.0' encoding='UTF-8'?>
>> <VOEvent role = "iamalive" id = "ivo://talons.lanl/001" version =
>> "1.1">
>> <Who>
>> <PublisherID>ivo://talons.lanl</PublisherID>
>> <Date>2005-12-11T01:10:03</Date>
>> </Who>
>> </VOEvent>
>
> I take it that we are sending the first line here to make even the
> imalives valid xml docs (this must be in the acks too then).
Right - sorry for the omission. Expect the attendees will find other
garbled examples. Doubt we have to belabor the desirability of
exchanging conforming XML.
> I would be in favor of keep imalive packets as short as possible
> since we are sending equally long replies to every connection in
> this scheme. It seems to me, as we are keep the connections open,
> most of this information can be obtained straight from the
> connection without any <Who> element.
The best argument for encoding the timestamp(s) within the packets is
to minimize the state that each broker is required to keep track of.
One could use an ack to serve both purposes, but then the receiving
broker needs to determine why a particular ack is arriving. Is it a
response to a prior transmission or is it simply a joyous assertion
of life from a colleague? On the other hand, one could argue for
including a timestamp within an ack, but the case for minimizing the
size of each ack is much stronger. Ideally we will reach levels of
usage in which acks occur orders of magnitude more frequently than
iamalive packets.
We chose to embed each packet's timestamp within <Who> to benefit
from the RM efforts. I suspect few of us would want to revisit that
decision at this point. The <Who> element also conveys the
<PublisherID>. This permits distinguishing packets derived from
external brokers from self-packets, for instance.
I'd be interested in any details you have of obtaining timing
information "straight from the connection". We definitely need to
look at prior art here before settling on the next version of the spec.
It also seems likely that the iamalive mechanism will find use under
more robust transport mechanisms, too. We've run into the need for
similar end-to-end delivery confirmation within archival data
transport streams. An ack is likely a detail of a particular
transport mechanism. An iamalive is a reality check on the health of
the endpoints of the conversation - a means for building confidence
that when an alert does occur that the message will be heard.
> I thought we were changing the id element in VOEvents, but I'm
> probably mistaken.
No, simply haven't had a second to think about what to call the new
attribute.
Thanks for playing the home game!
Rob
More information about the voevent
mailing list