|
Posted by: stak
Posted on: 2008-11-26 00:28:48
I've been thinking more about cloud computing recently. I still believe what I said about the ideal state of computing last year. I'm just more sure now about where specifically it's headed. And I think that most companies are going the wrong way.
The key thing, I think, is the separation between data and logic/computation/processing. Most companies that offer or are planning to offer cloud computing services are focusing on computational power. Amazon EC2, Google's App Engine, and whatever Microsoft Azure is going to turn into all offer cloud-based computation. I think that this is pretty pointless. On the other hand, things like Amazon S3 (i.e. cloud-based data storage) are incredibly useful.
There are very few advantages to using a web-based version of an office suite. The main advantages are: (1) real-time collaboration potential and (2) ability to access it from anywhere. The first is not inherent to cloud applications; any desktop-based application can do the same thing. The second is really a result of cloud storage, which is what I'm advocating. There are disadvantages to cloud computing as well: interacting through a web browser instead of a native app is much slower and more limiting; and there's heavier dependencies on reliable network connectivity. A well-written thick client, can, I think, always beat a well-written web app.
So as I described in my earlier post, a central repository for personal data with version control and transparent backup is important. This data must be accessible from any computing device, and can be manipulated by any number of different applications. Ideally the data storage would be completely independent of the data manipulation. You could sign up for any cloud storage service and access the data from any application. This requires a common data transfer protocol. If each cloud storage service provider uses a custom API, then no application will work with all service providers. If, however, they agree on a standard API, then any application will work with all of them. Imagine having your data accessible via a URI like "cloud://ec2.amazon.com/~username/file.ext#version". Want to switch providers? No problem - just migrate to "cloud://gfs.google.com/~username/file.ext#version". The protocol used to access the "cloud" scheme remains the same, so the app still works just fine.
I imagine that different storage providers will offer different features. Some will undoubtedly be free and advertising-supported. Others may charge you directly. Others may provide storage for free, but charge app developers who connect to their clouds (the app developers would make money by charging you for the app). Some may provide stronger encryption or more reliable backup facilities. There's plenty of differentiators for competitors in this space, and so it becomes important for the user to be able to switch between providers based on their needs.
Another thing is that no application is perfect - we've all run into some feature or another that one app does that we wished was present in some other app. Take the (fictional) example of two presentation editors. One of these makes it really easy to create and edit the presentation, and the other provides support for funky things like simultaneously playing the slideshow on 5 different screens over a network. Naturally you want to be able to use the first app to build your presentation and use the second one to actually present it. This is impossible if both apps use their own proprietary data formats; if they both operate on the same data standard, then it is possible.
Note that the last paragraph applies to desktop-based storage too, so it doesn't really matter if the data is in the cloud or not. But in order for the computing ecosystem to evolve in the way I hope it will, common data storage and transfer standards are immensely important. I think it'll take a while for the big companies to get their heads out of cloud computing and into cloud storage. Until that happens, there's a huge opportunity here for somebody to start developing this ecosystem. There's a lot of problems that need to be solved, particularly to do with efficiently syncing the data with devices that are using it, and allowing extremely fine-grained permissions for access to the data. However, these are not intractable problems; most have actually been solved for specific subcases already, it's just a matter of generalizing and packaging those solutions into a cohesive whole.
Then you just have to (1) provide a storage service that solves these problems (you can probably even piggyback the implementation on S3 or something), (2) publish an API that allows access to the service, and (3) support third-party apps in accessing that data. If you can do this fast enough, and there are enough useful apps using your protocol, then by virtue of being the first one in the space, your API will become the de-facto standard and everybody else will have to follow suit for backwards compatibility with those apps (this is where open data formats are important, since you want those apps to be useful with other data that isn't in cloud storage yet). Once there's a couple of other storage providers in the market, the ecosystem starts growing. This is probably one of those things where you'd end up owning a slice of the market. Your slice would decrease in relative size as the market grows, but the market growth would result in larger absolute value.
|
|
(c) Kartikaya Gupta, 2004-2024. User comments owned by their respective posters. All rights reserved.
You are accessing this website via IPv4. Consider upgrading to IPv6!
|
Mango is a good step (and I'm envious of my cousin's Bold as a result), but the real cloud experience will come when mobile platforms are as capable of displaying and interacting with the web as desktop platforms. And that's still a few years away.