How to publish a real-time VicRoads road closure feed?
Ever seen VicTraffic? It's an interactive map showing roadworks, public events, traffic alerts, natural disasters and other events causing disruption on roads across the state. In addition to this site, VicRoads provides the data to a number of data consumers on a commercial basis, with individual agreements and SLA's. For some consumers, like ESTA (who manage 000 calls), correct, up-to-date information is critical for safe routing of ambulances and other emergency services. For others, like Australia Post, it's a matter of efficient service delivery.
It's easy to see why this data would be useful to an even wider range of consumers: that is, why it should be open data. But let's look at the complexities.
This data comes from several sources, combined:
Planned roadworks
Planned events (such as marathons)
Traffic alerts (some of which are triggered by smart freeway sensors)
Unplanned road closures (eg, due to an accident, landslide or a bushfire)
Unplanned road closures provided by local councils. (For reasons I don't quite understand, councils have to notify VicRoads of unplanned road closures, but not planned ones.)
VicRoads doesn't develop or host many software applications, and VicTraffic is no exception: it's developed and hosted by WaveDigital. The VicTraffic application requests data, in the form of an XML SOAP feed, every couple of minutes, from VicRoads servers, over a secure, IP-controlled link.
So, how can VicRoads release their data in realtime to the world?
Option 1: Remove the IP whitelisting, and publish the URL of their data feed
This is the simplest option, but completely reckless. Their servers are not built to be accessible to the public, and could easily be crippled during an emergency. Lives could easily be at stake.
Option 2: WaveDigital should provide a machine-readable feed of the data
Two problems: first, obviously this would cost money for the change, which could be significant. Secondly, this now makes WaveDigital's servers the single point of failure, and the gateway to a potentially much larger ecosystem than they reckoned on. If the servers became swamped by non-critical needs during an emergency, then critical needs could also be compromised. Clever architecting would perhaps be required.
Option 3: Publish a parallel feed to another location
Perhaps a better solution is to also provide an IP-controlled feed to another server designed to provide just this static content to large numbers of clients. The biggest risk in this solution is that applications could come to depend on this new endpoint, when there is in fact no SLA between VicRoads and the application or its consumers.
Also, since the current XML feed doesn't obey any standards, it's not that easy for any consumer to use. It would be better to publish as a standard like GeoJSON, so it's as easy as possible to mash up into other applications.















