There are numerous applications where a variety of human and software parti
cipants interactively pursue a given task (play a game, engage in a simulat
ion, etc.). In this paper, we define a basic architecture for a distributed
, interactive system (DIS for short). We then formally define a mathematica
l construct called a DIS abstraction that provides a theoretical basis for
a software platform for building distributed interactive systems. Our frame
work provides a language for building multiagent applications where each ag
ent has its own behaviors and where the behavior of the multiagent applicat
ion as a whole is governed by one or more "master" agents. Agents in such a
multiagent application may compete for resources, may attempt to take acti
ons based on incorrect beliefs, may attempt to take actions that conflict w
ith actions being concurrently attempted by other agents, and so on. Master
agents mediate such conflicts. Our language for building agents (ordinary
and master) depends critically on a notion called a "generalized constraint
" that we define. All agents attempt to optimize an objective function whil
e satisfying such generalized constraints that the agent is bound to preser
ve. We develop several algorithms to determine how an agent satisfies its g
eneralized constraints in response to events in the multiagent application.
We experimentally evaluate these algorithms in an attempt to understand th
eir advantages and disadvantages.