Tuesday, August 28, 2007

Microsoft underscores the fallacies of Microsoft's distributed computing

The fallout continues from Microsoft's WGA failure over the weekend. You would think that a company as large and as rich as Microsoft, with over 30 years of experience in the microcomputer industry, would understand the eight fallacies of distributed computing. They are:
  1. The network is reliable.
  2. Latency is zero.
  3. Bandwidth is infinite.
  4. The network is secure.
  5. Topology doesn't change.
  6. There is one administrator.
  7. Transport cost is zero.
  8. The network is homogeneous.
It's point 1 that should draw the attention of the Softies. The network includes everything in the network infrastructure, especially the computers running the network services such as WGA at the head end. When you sit back and draw up a network diagram showing every connection point, router, and port from your PC to the WGA servers somewhere out in Redmond, it makes you wonder how it can work at all.

Don't get me wrong. From a technical perspective Microsoft's WGA across the Internet has worked quietly and reliably for some time now. The only complaints about it have come from old-guard reactionaries like me who have always questioned (and complained about) the need to validate (and re-validate) software I spent dearly to acquire just to make sure I'm honest. It's that process that underlines more than any other the fundamental change between Microsoft and its customers; the fact that it now considers its customers as adversaries rather than trusted and valuable customers. WGA to my way of thinking is nothing more than Bill Gates' ultimate solution to his 1975 manifesto about people who steal his software. But I digress...

Lest the Linux crowd get too smug (present writer included), we've also had our network-distributed gaffs, such as the xorg-server bug introduced during an upgrade of Ubuntu 6.06 a little over a year ago. It was quickly fixed, but the original update, distributed by Ubuntu servers across the network, left a lot of unfortunate users at the command line without a GUI. A good sized majority of them felt they had an unusable system, and rightfully so. The bug was found, quickly fixed, and distributed, and nothing of that scale has happened since, but you can appreciate how widely you can effect your community of users when, for whatever reason, you blindly assume the entire network is reliable.

The fundamental difference between Microsoft and Linux in general is due to motivation. Microsoft's was draconian, while Linux was honorable. Microsoft was intent on tightening the screws in their system making sure that you have rendered unto Microsoft your tax (the price) of their software, while the Linux problem was an honest (though very unfortunate) mistake where the developers were trying to improve the software, but failed. I don't know how you feel, but I take no great comfort in the fact that because of Microsoft's greed the full operation of my paid-for copy of Microsoft software is at the mercy of a less than perfect vendor on the other end of a less than reliable network. I can fix a bug like the xorg bug, but I can't fix a bug like the Microsoft bug unless I just replace it with an alternative and remove all those negative critical dependencies.