Wednesday, July 23, 2008

Cloud+SaaS+RIA = ?

All hot buzz words, huh! But think them together, if we get cloud and SaaS/PaaS and RIA together and put them all over to the Web to build a super online application, then what is it? Web 2.0? Web 3.0?

I payed lots of attentions recently on Google's "new" App Engine. I even picked up Python and start to read it. Well, to be honest, i started with Javascript first coz its more related to my current work (Action Script). Gotta lucky to say that my first project involves with Amazon EC2, so at that time i was told it was all about Cloud. But seriously, what is it? No idea.

Until recently when i saw Google App Engine, i remembered the old story about EC2 and start to do my own research on this topic. IMHO, i think cloud is more hardware-focused rather then SaaS or PaaS which are more application or software-oriented. To start my argument, first i would like to quote a famous word from Thomas J. Watson. You may not know him, but do you know IBM? Yes, he is his father:
"I think there is a world market for about five computers"
Furthermore, Professor Douglas Hartree has the same words:
"I went to see Professor Douglas Hartree, who had built the first differential analyzers in England and had more experience in using these very specialized computers than anyone else. He told me that, in his opinion, all the calculations that would ever be needed in this country could be done on the three digital computers which were then being built — one in Cambridge, one in Teddington, and one in Manchester. No one else, he said, would ever need machines of their own, or would be able to afford to buy them."
You can find them in here. From this point i start to think about Grid and distributed computing, even the Sci-Fi story: SKYNET. In theory, do skynet (exclude AI) and cloud have any difference ("physically")?

Cloud, deterministically emerged as it would be, comes to our life "all in a sudden" and changed all hardwares and infrastructures as what they used to be. On the other hand, I believe when you talk about SaaS or PaaS in general terms, it is naturally to think about software or platform, and as a matter of fact, they do represent s/w and s/w platform*. And that's the reason why we come up with the further idea of SaaWS (Software as a Web service), which is lodged in SOA world. Consequently, think about this: in the ideal world, when all software are exposed as SaaS, then where they should be (hosted) and how we can access/utilize them?

Easy, at "server side", Cloud. At "client side", RIA (i wouldn't bother to say Web browser). Why? Because Cloud promises us universal accessibility and RIA gives us native application-like look and feel.

Well as my story continues, i gotta mention RIA, which is short for Rich Internet Application, might be another misleading name as what Web service does in the past 5 or 10 years. Firstly, its not necessary to be internet as most RIAs' aim is to implement MVC at client-side and provide end users with "offline" functionalities. Secondly, why you call it Application? Why not technology, or platform? An application is more like an ERP or Websphere but our RIAs today, e.g. Ajax, Flex or Sliverlight, are more like technologies or "platforms". But anyway, as we all clear about what it actually means, as we do for Web service, its totally ok here.

OK, so, are they real? I gotta say i dont know. I do believe the story of skynet. In the future, there will be some super computers that have been connected together and people only need a "rich" client to access their data no matter where they are and what they want. You will not worry about upgrade your hardware anymore, no data lost, no synchronization. However, is there any side-effect? I think the answer is yes, Matrix.

Some "earlier" Cloud applications you might interest:
* Google App Engine
* Amazon EC2
* Apple mobileMe
* Salesforce.com
* Microsoft Live Mesh
And a lot more, go nuts...

*: Search and join the debate between Cloud Computing/SaaS/PaaS.

No comments: