Monday, July 20, 2009

The future of computing as I would like to see it.

This diagram represents how I see the future of computing.

First we have an online service where we store our data. This would hold our e-mail, pictures, documents, videos, music, etc.

We access our data through web applications. Take Google Docs for example. Currently Google hosts both the application and the data. I would like to see that come to an end. In my model I would log into my Google Docs and set up an account. I would give Google Docs the URL of my web storage server and then Google Docs would give me a unique private key. I would simply highlight this key and copy it into my computer's memory. I would then log into my web storage site and select that I want to share my document data. I would paste the private key provided by Google Docs into my storage interface and receive a unique private key from the storage server. I would provide this unique private key back to Google as authorization.

Behind the scenes Google would contact the web storage server, tell them who's account it wants to access, give it both its own private key that is unique to my Google Docs account, and provide the private key that is unique to the storage server. With both of these keys the web storage server can be confident that it is talking to the correct server that I have authorized to access my documents.

With the trust between the two servers setup I could use Google Docs to modify my documents.

I could repeat this process for different online applications. Files would be saved with open standards so that I can be guaranteed that any application on the web can reliably read and write to them.

I could even use two providers for the same service. I could switch back and forth between using Google's picasaweb and Flickr, for example. There is no reason why only one application would need to be tied to a file type.

If down the road Microsoft comes out with a better online application for modifying documents I could go in to my storage service and deny Google access and go through the process of allowing Microsoft. At any point I could ditch Microsoft and go with another service provider.

Likewise, if I want to change my storage provider I should be able to import all my data to a local file and then upload it to a new provider.

Both the web applications and the data should always be synched up to our primary computers. This way if we don't have an internet connection we can still use the application to modify our data, and the next time the computer comes online it will all synch back up. Google's Gears application already allows for application and data synchronization for offline use, and that's exactly how I envision this working.

The benefits to this are:
  1. No vendor lock-in.
    We are free to change providers at any time. It is not like currently where one must choose Microsoft Office because it is the only application suite that can reliably open and close the .doc format which is the document format.
  2. Access to data from anywhere with an Internet connection.
    You no longer have to carry around a thumb drive or go through any such hassle. Your data is available from almost anywhere.
  3. Enhanced data persistence
    Computer crashes will no longer cause you to lose any of your work.
  4. Enhanced data security.
    A lot is made of the security problems of data existing on the cloud. I believe that you are better served with your data in the hands of a team of professionals than in yours. The average PC user is simply the largest security hole that exists today. As long as the average user is in charge of their data, the average user's data is vulnerable. Google is more likely to keep your data secure than you are.
  5. OS independence.
    Whether you are using Windows, Mac, Linux, your cell phone, game console or any other device, all you need is an Internet connection and a browser to get to your content.
  6. Cheaper computers.
    Because most of the hard work is being done by the application server, your computer no longer needs a lot of ram and processing to run your applications. You just need enough resources to run your web browser.
This is cloud computing at its best and I believe that we will be seeing technology continue to move in this direction over the coming years. The development of Google's Chrome OS will be the first of many major steps towards this model.