2010-02-03

Cloud Computing DejaVu

I tweeted a while back:

I remember when my Wyse-50 terminal hooked up to a 300-baud modem dialed into a SPARCserver 4/330 in another city was "cloud computing".

This got me to thinking about Cloud Computing from a 50,000-FT view. In it's current usage, the term "Cloud Computing" is over-used that it's approching ubiquity, relegating it to the irrelevance of a marketing tag-line. From a compupological perspective, however, cloud computing is the next evolutionary, step in the the old client-server paradigm.

The client-server paradigm is simply a model by which computing work is done by a user who directly interfaces with one device which then, in turn, directs a second device to share some of the labor. This allows the "indirect" device to assist many remote devices which are local to the users.

Examples:

  • User on a PC saves file to fileserver
  • Outlook retrieves message from Exchange
  • Internet Explorer is used to run Google Maps on Google's server.
  • Google App's javascript, delivered from Google's server runs locally in Internet Explorer which then directs Google's App server to send a calendar invitation (via AJAX)

See, cloud computing is just the next evolution of the client-server model that simply adds new levels of abstraction whereby a server can be a client of another server at the same or a lower level in the software, hardware, or networking stack. When you think about it that way, you realize that's what virtualization is too.

So, I urge everyone to think in terms of layers of abstraction and indirection, not clouds. Remember the OOP craze? It was/is really about providing wonderfully new level of abstraction to coding too.

Abstraction and indirection are powerful tools when the hardware and network are fast enough to support it. We are there now.