the interview with J Chris Anderson of CouchOne and this article on how open source software has become "invisible" due to the cloud. We're obviously very excited here at ReadWriteWeb about the opportunities presented by cloud computing. But we're also worried about how cloud computing is reducing users' control over their data.I can't stop thinking about two of our stories from last week:
So I was pleasantly surprised to discover another project trying to solve some of the hard problems with cloud computing. Unhosted is a new project attempting to break the monopoly that SaaS providers have over users' data by seperating applications from data. We talked to Michiel de Jong, the project's founder, about how it works.
"Last week, I was still a guy with a hobby, having a beer at the beach in Bali," he says. Then the project hit Hacker News and suddenly there are contributors from all over the world.
de Jong takes Richard Stallman's critiques of cloud computing seriously. But, he says, "People want to use websites instead of desktop apps. Why do they want that? I don't think it's up to us developers to tell users what to want. We should try to understand what they want, and give it to them."
de Jong acknowledges the many advantages to running applications in the cloud: you can access your applications and data from any computer without installing software or transferring files. You can access your files from multiple devices without syncing. And web applications have better cross-platform support.
So how can you give users web applications while keeping them in control of their data?
The basic idea is this: an Unhosted app lives on a web server and contains only source code. That source code is executed on a user's computer and encrypts and stores data on another server. That data never passes through the app server. Therefore, the app provider doesn't have a monopoly on your data. And since that data is encrypted, it can't be exploited by the data host either (or at least, it probably can't).
The data can be hosted anywhere. "It could be in your house, it could be at your ISP or it could be at your university or workplace," says de Jong.
"We had some hurdles to implement this, one being that the app cannot remember where your data lives, because the app only consists of source code," he says. "Also your computer can't remember it for you, because presumably you're logging on to a computer you never used before."
The Unhosted team solved the problem by putting the data location into usernames. Unhosted usernames look a lot like e-mail addresses, for example: firstname.lastname@example.org. Willy is the username, server.org is location where the data is stored.
This approach gives developers an interesting benefit: hosting an application is much cheaper because processing and storage is done elsewhere. The application developer just serves up the source code as flat files.
At least one problem remains: backing up the data. de Jong is impressed with CouchDB's replication features and says that once Unhosted is in a working form, the Unhosted team will look into how they can work with CouchDB. He says there have already been discussions on the Unhosted mailing list about CouchDB integration.
"I think both CouchDB and Unhosted are part of what is quickly becoming a pretty important movement for 'freedom through decentralization' on the web," says de Jong. "Other important projects that I would say are part of our 'movement' are Diaspora*, identi.ca, Tahoe-LAFS, and PageKite."
We could not agree more. The capability to have an "unhosted" service is immensely appealing and fits with our view of a loosely coupled, distributed Web.