I wanted to mention a couple of tools for working with SIRI data that I've been hacking on lately. Maybe you'll find them useful.
First, there has been an official release of the OneBusAway SIRI library, which has a couple of neat features:
1) a Java library that removes much of the burden of implementing a SIRI client or server, especially when it comes to subscription management
2) a command-line app for querying and performing operations on SIRI endpoints
3) a SIRI repeater application for filtering / combining multiple SIRI data-streams and proxying client access
I think the SIRI repeater application is worth a little bit more discussion. It's useful for a couple different scenarios:
1) You've got a SIRI endpoint (eg. an AVL system producing a SIRI-VM stream). You've only got one license to access the endpoint, but you have multiple back-end systems that need to listen to the data. You can use the SIRI repeater app to proxy access. The repeater serves as the primary connection to the SIRI endpoint, at which point an unlimited clients can connect to the repeater, receiving pub-sub data forwarded from the repeater.
2) You've got multiple SIRI data-streams that you'd like to combine into one (eg. a legacy AVL system and a new AVL system, both producing SIRI-VM data). You can use the SIRI repeater app to subscribe to both SIRI endpoints and republish them as one combined feed to clients.
3) You'd like to share SIRI data with an outside developer, but you want to filter some sensitive information out of the feed first (eg. operator ids). The SIRI repeater app can clear or change values in the data-stream on the fly using flexible filter rules.
4) ...
Note that the repeater is primarily designed for pub-sub data at this point. It will not help with proxying / load-balancing SIRI-SM requests , for example. For more info on the SIRI repeater app, check out:
Also note that there is an RPM + Linux service distribution of the repeater available as well:
http://developer.onebusaway.org/modules/onebusaway-siri-repeater-rpm/current/
Thanks,
Brian