Issue No.05 - September/October (2009 vol.13)
Published by the IEEE Computer Society
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/MIC.2009.109
Cloud computing has come full circle toward logically centralized administrative domains and shared computational resources. This special guest column discusses how this latest trend has evolved from previous ones over the years.
Computer trends are interesting to follow — well, for some value of "interesting," but bear with me here. They keep changing, and, as with clothing, the chic trends this year soon become passé, replaced by newer ones. It often seems that it's really the words that change, while the actual trends continue pretty much intact. Some years ago, we liked "e-Utilities," then "autonomic computing," later "on-demand computing," and now "software-as-a-service" (SaaS or SAS, depending upon who's abbreviating it). To be sure, at some level, these aren't all the same thing. Yet, when it comes to describing a way of providing computer services as needed, in a sort of plug-and-play manner, it's easy to make your project or product fit them all.
In that sense, they become buzz words, and as the operative buzz words change, we spin our project proposals or our product advertising to take maximum advantage of the "new trend."
"Distributed computing," "cluster computing," "grid computing," and "cloud computing" are all terms that have developed over the past few years. Each is distinct from the others in some ways, but there's a great deal of overlap. A turn-of-the-century distributed computing application that has the right profile could easily have morphed through the series, proudly calling itself a cloud computing application today. There's a lot of fluff here — yes, "cloud," "fluff" — sorry.
Eric Rescorla gives an opinion on cloud computing at Educated Guesswork ( www.educatedguesswork.org/2009/07/why_cloud_computing.html), and I agree with him that it's a mixed bag. All the mechanisms in the list I mentioned earlier have some of the characteristics Eric talks about, such as the ability to draw on more resources only when they're needed, avoiding over-provisioning the system all the time. You could actually say that it works autonomically, or on-demand — but nevermind.
What I think is interesting about the emphasis on cloud computing, and putting your data and services "in the cloud," is that we've come close to completing a circle. In the 1970s, we used "dumb terminals" that talked to "mainframe computers," behemoths that sat in large data centers. The terminal was an I/O device but was not itself a computer. So, all the programs and the data lived and ran on the mainframe. We had central management of everything, and the only way to distribute the cost was to charge for mainframe resource use — processor cycles, data storage, and so on.
In the 1980s, we developed personal computers and started using them seriously. The computer on your desk would run a "terminal emulator" that accessed the mainframe, but it also ran its own programs, starting to pull away from central management. We did spreadsheets and word processing and that sort of thing without ever touching someone else's computer. We still stored data in the data center — it had far more capacity, of course — but we no longer stored everything there. And some of the cost was distributed to the users, who paid for their own computers and software.
In the 1990s, as the World Wide Web developed, we did more and more on our own computers and relied far less on the data center, to the point that many people in offices — and pretty much everyone at home — made no use of it at all.
Of course, no one ran everything on her own computer, either. The whole point of the Web is to make it easy to find and retrieve things from other computers on the Internet, and over time, more and more services have become available to us.
But we ran our own browsers and office software and email programs and lots of other programs. And, as a result, we had to manage all that software ourselves. Be sure to update all your software regularly, we've been reminded, to make sure long-fixed program bugs don't bite you. Upgrade periodically to get new features, keep your antivirus definitions up to date, and remember to back up your hard drive regularly, lest you have a disk crash and lose all.
Now, in the 2000s, we're moving back. Keep your backups at someone's Internet data center — they'll give you lots of free space, and you can pay for more storage and features. Next, keep your data somewhere else in the first place, using webmail or "virtual hard drives" on the Internet. Then, run your software somewhere else, with things like Google Docs — they'll take care of storing your data, making sure it's backed up, scanning it for viruses, making sure the software that uses it is properly updated, and so on.
What, now, is the real difference between computing in the cloud — or on the grid or whatever, in what we've come to call "federated" systems — and computing in the data centers of the 1970s? Google is talking, with its announced operating system that ties heavily into the cloud, of moving your PC even further back to a not-so-dumb terminal that, through a Web browser, gets all of its data and services from what amounts to a data center.
More than 30 years ago, the data center was a large room with many large, noisy boxes; today, it lives in smaller, probably quieter chunks all over the world. And the circle is very close to being closed.
Barry Leiba is an independent Internet standards consultant. His research interests include email and related technology; anti-spam work, messaging, and collaboration on mobile platforms; security and privacy of Internet applications; and Internet standards development and deployment. Leiba chairs the DKIM working group and the 2010 Conference on Email and AntiSpam and is the editor for the Standards column in IEEE Internet Computing. You can read his blog at http://staringatemptypages.blogspot.com and contact him at firstname.lastname@example.org.