Currently I am not all that happy with the Freevo file system idea, where it just traverses the file system to find music or movies. So I was thinking about adding in support for a database back end. The more I think about it the better ( and more complex the idea becomes). So I am just using this to jot down some initial thinking.
The meat server would use XML-PRC or soap to allow many
applications to access one central repository simply. All files
would be uploaded using this interface and stored into the system.
There would be some basic meta data that would be required to be
added such as mime type and title (Others may be added here such as
who and when the file was added). When a file is uploaded it is
stored into a subversion based file store with the meta data stored
there. The meta data is then stored in a db of some sort for easy
and quick access. This gives up some great advantages. We have the
stability of subversion for file and meta-data storage as well as
revision control from the off. ( You could upload a photo, crop it,
change the colors, and still get back to the original if you
wanted). The db could be rebuilt simply from the subversion
There would be special handlers for files that were recognised, so if you uploaded an mp3, for example, then the id3 tags would be stored into the meta-data automatically. This might be best implemented client side to keep the server as simple as possible, but server side would allow all apps to use it.
It also might be worth looking at jabber for the communications stuff as it already gives identification and notification support.Listen to this podcast