Software delivery via RSS, Atom?
by ZetaGecko | Add Your Comments | Atom/RSS, Technology
From the what is it good for? department: might there be a use for digest formats as a software delivery mechanism, for example, for updating virus definitions, updating SPAM filters, and delivering software patches? The idea sounds useful, but there would be a few requirements to make it work.
First, the vision. Digests could easily be used to deliver software. In RSS, each update/patch/whatever would have a title, a description, and (using RSS 2.0) a link to the actual patch using the enclosure element. In Atom, the same information could go into title, summary and content (which could either be included inline or referenced with the @src attribute.) Info Bite List could do the same using title, summary and either content or media (though one should be chosen as the standard method--I'd vote for media so that content could be used for extended descriptions if desired). A special client would have to be written which would keep track not only of which feeds to subscribe to, but also where the software to be updated or patched resides. It could either apply updates automatically or show the user the title and description/summary and let them decide whether to update. Making that user-configurable on a feed-by-feed basis would be optimal. Installers could be made aware of such tools and automatically register their feeds and installed locations with the tool.
One issue facing such a system is that it begs for an API that allows clients to query for updates since a certain timestamp or version number. Otherwise, you'd never know whether you'd gotten all the updates or had missed some that had fallen off the end of the feed. Especially with software patches, the results of missing a few out of the middle could be disastrous. Querying for a version number, or the id of the last item retrieved would probably be the way to go in order to avoid issues with incorrectly set clocks, timezone differences, etc. At install time, an installer could indicate the id of the last patch already included in the software as the starting point.
Of course, the same could be accomplished without digest formats, but building tools around an existing standard would open up opportunities to leverage existing libraries to handle lots of the nitty gritty work, and would reduce the learning curve for developers already familiar with digests.