I have been reading articles on the state of the art in computer gaming technologies from the August issue of the Communications of the ACM. One in particular, Scaling in Games and Virtual Worlds by Jim Waldo, describes the (up to now) unique characteristics of computer gaming from a scalability perspective, which to my surprise began to resonate with my vision of the future of enterprise IT, particularly healthcare enterprise IT and health informatics.
At the risk of plagiarizing, I'm going to reproduce the entire introduction, which is a very small part of the whole article, and is aimed at enticing you to subscribe to the magazine (by joining ACM) or pay for the article. Here goes:
I used to be like you.
I used to be a systems programmer, working on infrastructure used by banks, telecom companies, and other engineers. I worked on operating systems. I worked on distributed middleware. I worked on programming languages. I wrote tools. I did all of the things that hardcore systems programmers do.
And I knew the rules. I knew that throughput was the real test of scaling. I knew that data had to be kept consistent and durable, and that relational databases are the way to ensure atomicity, and that loss of information is never an option. I knew that clients were getting thinner as the layers of servers increased, and that the best client would be one that contained the least amount of state and allowed the important computations to go on inside the computing cloud. I knew that support for legacy code is vital to the adoption of any new technology, and that most legacy code has yet to be written.
But two years ago my world changed. I was asked to take on the technical architect position on Project Darkstar, a distributed infrastructure targeted to the massive-multiplayer online game and virtual-world market. At first, it seemed like a familiar system. The goal was to scale flexibly by enabling the dynamic addition (or subtraction) of machines to match load. There was a persistence layer and a communication layer. We also wanted to make the programming model as simple as possible, while enabling the system to use all the power of the new generations of multicore chips that Sun (and others) were producing. These were all problems that I had encountered before, so how hard could these particular versions of the problems for this particular market be? I agreed to spend a couple of months on the project, cleaning up the architecture and making sure it was on the right track while I thought about new research topics that I might want to tackle.
The three months have turned into two years (and counting). I've found lots of new research challenges, but they all have to do with finding ways to make the environment for online games and virtual worlds scale. In the process, I have been introduced to a different world of computing, with different problems, different assumptions, and a different environment. At times I feel like an anthropologist who has discovered a new civilization. I'm still learning about the culture and practice of games, and it is a different world.
The next section is entitled "Everything You Know Is Wrong" - and from a computer science perspective it is true, with respect to gaming now and healthcare enterprise IT as it will soon be. Let's explore why.