Home

On Dave's Wordpress Blog: "The mystique of desktop web servers". Good explanation of the whys and pros of keeping a web server running on your machine. On Scripting News he adds: "The problem with remote "managed" servers is that sometimes you can't get to them when you need to". That's true but the solution to this problem is so simple, just read on... Permanent link to this item in the archive.

Local databases, IMAP servers and our peace of mind Permanent link to this item in the archive.

My most quotable friend yesterday said:

"A little web server integrated to a scripting environment can do magic. The challenge with distributed little web servers is where to store the data. [...] What I would love to have today is a system where I can deal with the data I have to manage locally with all the advantages of running a local highly integrated application, but where all the real database management is done by a pro somewhere else, where it cannot get corrupted, broken or lost."

I can remember discussing this more than once with Paolo and agreeing on IMAP being best way to handle email: data is stored somewhere online where somebody is paid to take care of it but all user operations take place locally, in a fast desktop application that gives the best user experience.

Desktop clients that connect to remote data services are nothing new or special. What's makes the difference is the local database: email is downloaded and cached, changes to the online data storage can be made offline and then synchronized as soon as possible. If the local caches corrupts or gets lost it just takes a new sync to restore it.

The key is the synchronization technique. While an IMAP database (read: an IMAP account with its folders and messages) is typically accessed by a single user, many database application could hardly be kept in sync when multiple users do lots of offline operations at the same time and only sync later. This is probably the main reason why this approach is not very common across client-server applications.

A scriptable web application server is a different thing anyway. Either accessed by a single user or multiple users in a local workgroup, the local server would be the only client of an online counterpart managed by a team of pros. The online database acts as the master, the local one as a cache for all operation, like with IMAP. The synchronization runs in the background thus cutting the typical latency time of online applications to zero, as far as the user perception is concerned.

I've no knowledge of similar tools existing on the market and that's a real shame, considering the relative ease of implementation. Many problems could be solved by simple web hubs sitting at client location and the centralized storage would keep them safe (and us professionals peaceful!).