Distributed networks of personal workstations are becoming the dominan
t computing environment for software development organizations. Many c
ooperative activities that are carried out in such environments are pa
rticularly well suited for automated support. Taking the point of view
that such activities are modeled most naturally as the occurrence of
events requiring actions to be performed, we have developed a system c
alled Yeast (Yet another Event-Action Specification Tool). Yeast is a
client-server system in which distributed clients register event-actio
n specifications with a centralized server, which performs event detec
tion and specification management. Each specification submitted by a c
lient defines a pattern of events that is of interest to the client's
application plus an action that is to be executed in response to an oc
currence of the event pattern; the server triggers the action of a spe
cification once it has detected an occurrence of the associated event
pattern. Yeast provides a global space of events that is visible to an
d shared by all users. In particular, events generated by one user can
trigger specifications registered by another user. Higher-level appli
cations are built as collections of Yeast specifications. We use Yeast
on a daily basis for a variety of applications, from deadline notific
ation to software process automation. This paper presents an in-depth
description of Yeast and an example application of Yeast, in which Yea
st specifications are used to automate a software distribution process
involving several interdependent software tools.