>> I started working on a streaming XML output plugin for Osmosis. I was
>> intending to take advantage of PuSH/PubSubHub messaging and maybe even XMPP
>> (so that you get a 1-min delayed IM when someone changes something in your
>> bbox).
>> Anyway, TRAPI could use this same plugin to apply updates to their
>> database.
>
> I've also spent a fair bit of time thinking about this type of thing.  When
> I first started work on the replication diffs I had in mind a server-side
> daemon (using Osmosis internally) that would push changes to all connected
> clients.  It would allow a client to connect, specify which replication
> number it was up to, receive all updates in a single stream, then continue
> to receive live changes as they occurred.

These are things we talked about at the recent FOSSGIS conference. I
planned to do a more detailed write-up but I don't know when I'll get
to that so this is not finished. We too agreed that some kind of
streaming/subscription to changesets would be a good idea. Our focus
though was on the german dev servers so that not everyone would need
to write an .osc parser and download the changeset files etc.

> Several issues preventing this are:
> 1. Writing it.  I don't have much time to do it therefore I went with the
> simplest approach that would work at the time.

I'm spending some time on something like this as part of the OSMdoc rewrite.

> 2. Cacheability.  A push approach is non-cacheable and therefore would
> increase the amount of bandwidth required.  I suspect diff updates are small
> compared with planet downloads though so perhaps this is a non-issue.

I'd just don't care about that. We have enough resources. So I agree
that this is a non-issue.

> But I would really like to see it happen :-)

I currently use AMQP (RabbitMQ) for message processing and it works
very well. It is very flexible and it'd be easy to extend it with a
PubSubHubBub or XMPP output.

Mitja (of OpenStreetBugs) proposed just yesterday a filter that
filters changes by the tags/changes involved so it would be very easy
to subscribe to only the events you are interested in. This can be
implemented in just a few lines of code.

While we only thought about doing this on the german dev servers I've
since gotten multiple requests/questions and suggestions that this
should be integrated into the main OSM site. All that'd be needed
would be a call in the Ruby API that sends a message (asynchronously,
very fast) once a change has been made. This would make the generation
of the diff files a lot easier and everything more flexible. I haven't
yet asked anyone if this would be a possible. I know that this isn't
the right topic (although the TRAPI could also use this system) but I
wanted to take the opportunity to inform about our ideas.

Cheers,
Lars

_______________________________________________
dev mailing list
dev@openstreetmap.org
http://lists.openstreetmap.org/listinfo/dev

Reply via email to