Steve Foskett recently blogged in reference to Zend and an initiative they took to provide a universal (or at least more uniform) interface for developers. In this blog (and another related blog), he talks about standardization of Cloud Computing as an effort that is not needed yet.
I happen to agree with this, with a slight exception. You can read the Steve’s full blog here:
This got me thinking about cloud computing. I’ve been asked a few times what cloud computing is and it’s always a tricky question to answer. The definition of a “cloud” really depends on your perspective. The farther away from “technical” you get, the broader the definition could become. How?
An end user 10 years ago running a word processing program to type and print a letter is just as abstracted from the operating system, microcomputer hardware (IBM PS/2, Apple, NeXT, etc), printer communication (LPT, Serial or Ethernet) as they are today while using that application. They are NOT abstracted from the application, just the mechanisms used to accomplish a task. It’s no different than me connecting to WordPress, typing up a blog and publishing it.
In this example, the users (and me, publishing this blog) simply do not know (or likely care) about the “how” of it all. Just that the layers below are working and the job can get completed.
This equals cloud. Maybe not macro-cloud computing or even what people are saying today about cloud computing, but certainly micro-cloud computing.
Said another way, a cloud can be a collection of server, storage, networking, application and communication technologies (not necessarily in that order) all coming together to provide a service (or application). The service, as in the OSI model, needs to be aware of the layers directly above and below only. Admittedly, there may be examples to prove me wrong, but I doubt it, since I’m talking about Layer 8, the consumer of the service. So if the service is at Layer 7/8 (product/consumer), then every other layer is “cloud” as far as Layer 8 is concerned. Perspective.
One may even construe client/server (i.e., Windows 95/Windows NT 3.51, etc) solutions as a cloud, simply because the mechanism that is used to deliver a tool, application or service to the user is generally “unknown” to that user. Mac or PC, ethernet or WiFi, Linux server or Windows server. The user doesn’t know, nor likely do they care WHAT it is, just that it IS.
This can be even more granular if you look at adding abstraction within each of the OSI Layers and THAT can be quite a mind numbing exercise, though ultimately still classified as part of that layer.
Standards are needed between layers only. As long as that happens, innovation along any given “cloud” method may continue, though methods of providing the lower layers will diverge.
So, philosophically speaking, we’ve been “cloud computing” since the before the inception of microcomputing as we know it. And standards do exist for this.
