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.