A method and system for coordinating the simultaneous execution of computer programs
on a computer system. A set of key events that describe certain states and conditions
that can be generated during execution of the computer programs are stored in a
database, along with a set of commands for each computer program that can be accepted
and executed by that computer program in response to each of the key events. When
a computer program generates a state or condition during execution that corresponds
to a key event, the computer program sends a notification of the occurrence of
the key event to a coordination module. The coordination module then retrieves
from the database the commands to be executed by each of the computer programs,
and sends the retrieved commands to the computer programs for execution.