Last Friday I delivered an internal presentation on the overall concepts of cloud computing, talking about what some of the players in this space are doing: SalesForce and it's "Platform-as-a-Service" (SalesForce takes the "-as-a-Service" waaaay to far for my personal taste), Facebook and its app directory and SDK (over 13k apps at the moment), Google's Apps and OpenSocial (how can this be a «standard» if Facebook is not participating?), Amazon's fascinating web services and cloud computing offer (including Dynamo), Microsoft's hosted services (CRM, Exchange), PopFly and BizTalk Services, and finally Yahoo Pipes.
After this long description, ,where the lines blur enterprise and social, we discussed the impacts of using the cloud as a computing fabric, where distribution is everywhere, there are no transactions but rather reconciliations or consistency corrections, and where "all data from distant stars is from the past" (in the words of Pat Helland), and where there is no synchronicity, only eventual replication.
One of the interesting discussions was around the question of if these cloud platforms (especially in the MS space) will be able to give us simple, easy to use application interfaces, where we can forget about the fact that our application is hosted somewhere in a distributed datacenter environment, and just assume some kind of "SLA" in "ADO.NET.Cloud", where the distribution aspects are hidden from the developers. Or rather, if on the contrary we will have to change the way we develop to be aware of this environment: Amazon's Dynamo points in this latest direction, where some of the conflicts between different versions of data have to be solved in the semantic/application level.
Other aspect of this discussion, and one that I consider to be especially fascinating, is around data models. How to store it, how to have different copies of it, replicated, and how to reconcile it. There are some interesting initiatives here, especially Amazon's, in its data store service and in SimpleDB. I had been studying the ideas of Linda Tupplespaces, and found it really interesting that Amazon is using these ideas. Other interesting idea is Facebook's, which seems to have created a "domain specific" information store, around the notion of the user profile, for their own needs.
Anyway, it was a very interesting discussion, and eye opening in some cases. Let's see what the future brings.
In the social space specifically, some interesting ideas came up: what if Microsoft added to SharePoint 2007+ some kind of Facebook app hosting? a Web Part to host Facebook apps, for instance, would be great! And an implementation of OpenSocial in SharePoint, again to interop with its Web Parts, would also be interesting, especially if OpenSocial ever becomes successful. :-)