A central
challenge of computer science is the coordination of complex systems. In the
early days of computation, central planning-at first, by individual
programmers-was inevitable. As the field has developed, new techniques have
supported greater decentralization and better use of divided knowledge. Chief
among these techniques has been object-oriented programming, which in effect
gives property rights in data to computational entities. Further advance in
this direction seems possible.
Experience in human society and abstract analysis in
economics both indicate that market mechanisms and price systems can be
surprisingly effective in coordinating actions in complex systems. They
integrate knowledge from diverse sources; they are robust in the face of
experimentation; they encourage cooperative relationships; and they are
inherently parallel in operation. All these properties are of value not just in
society, but in computational systems: markets are an abstraction that need not
be limited to societies of talking primates.
This paper has examined many of the concrete issues
involved in actually creating computational markets, from hardware and software
foundations, to initial market strategies for resource management (chiefly in
[III]), to the organization of systems of
objects and agents able to interact in a market context. As yet, no obstacle to
their realization has been found.
Distributed systems based on the charge-per-use sale of
software services and computational resources promise a more flexible and
effective software market, in which large systems will more often be built from
pre-existing parts. With many minds building knowledge and competence into
market objects, and with incentives favoring cooperation among these objects,
the overall problem-solving ability of the system can be expected to grow
rapidly.
On a small scale, central planning makes sense; on a
larger scale, market mechanisms make sense. Computer science began in a domain
where central planning made sense, and central planning has thus been
traditional. It seems likely, however, that some modern computer systems are
already large and diverse enough to benefit from decentralized market
coordination. As systems grow in scale and complexity, so will the advantages
of market-based computational systems.
|