Market-oriented programming is an approach to distributed computation based on market price mechanisms. The economic perspective on decentralized (computational) decision-making has several advantages. It is well known that--in some circumstances--markets are an effective institution for coordinating the activities of several agents with minimal communication. Moreover, economic science has developed an extensive analytic framework for studying such multiagent systems.
The idea of market-oriented programming is to exploit the institution of markets and our models of them to build computational economies to solve particular problems of distributed resource allocation. This is inspired in part by economists' metaphors of market systems "computing" the activities of the agents involved, and also by Artificial Intelligence researchers' view of modules in a distributed system as autonomous agents. In market-oriented programming we take these metaphors literally, and directly implement the distributed computation as a market price system. That is, the modules, or agents, interact in a very restricted manner--by offering to buy or sell quantities of commodities at fixed unit prices. When this system reaches equilibrium, the computational market has indeed computed the allocation of resources throughout the system, and dictates the activities and consumptions of the various modules.
Our original market-oriented programming environment, called WALRAS, is a computational realization of the most generic, well-studied theoretical framework, that of general equilibrium theory. In the general equilibrium framework there are two types of agents: those that simply exchange goods (consumers), and those that can transform some goods into other goods (producers). In our computational version of a market price system, we implement consumer and producer agents and direct them to bid so as to maximize utility or profits, subject to their own feasibility constraints.
To date, we have tested this approach with applications to several problems:
Current work is developing more complex models in these domains, as well as investigating new applications in allocation of computational resources and provision of distributed information services. In particular, we are applying market-oriented programming techniques in the MARX project for Information Survivability. This project is also developing new Internet-based infrastructure for market-oriented programming, based on the Michigan Internet AuctionBot.
In addition to applying this methodology to new and challenging problems, our group is performing research on the principles underlying market-oriented programming. This includes both theoretical and experimental analysis, based on abstract models as well as a distributed implementation currently under development.