One of the things that I would like to have in KDE 3.2 is better and easier file sharing. Right now, KDE's file sharing mechanism is pretty limited. Basically it allows you to export a directory via NFS and SMB, but both protocols (or at least their current implementations) are not ideal for a desktop. Nor is LISA, KDE's current network browsing mechanism.
My requirements for desktop file sharing are:
- sharing a directory must not change any permission rules on the server (unless the user is authorized to make a directory available for everyone)
- in an unmanaged network, sharing a directory must not require any configuration beside marking the directory as shared
- it must be possible to browse shared directories on the network (with all available information)
- it must be possible to attach a description or a descriptive name to a shared directory
- it must be possible to access the shared directory from every computer, even in an unmanaged network, with a username+password account that is valid on the server
- in a managed network it must be possible to access all directories without additional login
- the browsing mechanism must scale in very large networks
- it should be possible to establish a 'trust relationship' between two computers (for example two computers in a home network), so the user does not have to log in every time
- the file transmission should be encrypted, at least optionally
- it should use an existing protocol and server, if possible
I think that I have found a very good and simple solution for this: fish. It fulfills every single requirement except the browsing ones. For browsing, I plan to use a very simple (KDE-independent) daemon that keeps SLP registrations open. It can run with user permissions, but should be running all the time. This, the required slp daemon and the performance are the disadvantages of this solution.
My webservices implementation reached a dead point at the weekend. This usually happens when I am stuck in boring and unpleasant work. The WSDL implementation is the culprit, implementing this is much uglier that I expected. I guess I will spend the next few days on the file sharing stuff and syncing the GStreamer bindings with the new release...