Yeast: A General Purpose Event-Action System

Distributed networks of personal workstations are becoming the dominant computing environment for software development organizations. Many cooperative activities that are carried out in such environments are particularly 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 developed a system called Yeast (Yet another Event Action Specification Tool). Yeast is a client server system in which distributed clients register event action specifications with a centralized server, which performs event detection and specification management. Each specification submitted by a client 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 occurrence of the event pattern; the server triggers the action of a specification once it has detected an occurrence of the associated event pattern. Yeast provides a global space of events that is visible to and shared by all users. In particular, events generated by one user can trigger specifications registered by another user. Higher level applications are built as collections of Yeast specifications. We use Yeast on a daily basis for a variety of applications, from deadline notification to software process automation. The paper presents an in depth description of Yeast and an example application of Yeast, in which Yeast specifications are used to automate a software distribution process involving several interdependent software tools. >

[1]  Steven P. Reiss,et al.  Connecting tools using message passing in the Field environment , 1990, IEEE Software.

[2]  Narain H. Gehani,et al.  Ode as an Active Database: Constraints and Triggers , 1991, VLDB.

[3]  Stuart I. Feldman,et al.  Make — a program for maintaining computer programs , 1979, Softw. Pract. Exp..

[4]  David S. Rosenblum Specifying concurrent systems with TSL , 1991, IEEE Software.

[5]  David B. Leblang,et al.  Computer-Aided Software Engineering in a distributed workstation environment , 1984 .

[6]  Gail E. Kaiser,et al.  Intelligent assistance for software development and maintenance , 1988, IEEE Software.

[7]  Yennun Huang,et al.  A software fault tolerance platform , 1995 .

[8]  C. V. Ramamoorthy,et al.  Event management in computer networks , 1987 .

[9]  Gail E. Kaiser,et al.  Database support for knowledge-based engineering environments , 1988, IEEE Expert.

[10]  David C. Luckham,et al.  Task Sequencing Language for Specifying Distributed Ada Systems , 1987, PARLE.

[11]  Steven V. Earhart UNIX programmer's manual , 1986 .

[12]  Douglas C. Schmidt,et al.  Metric-driven analysis and feedback systems for enabling empirically guided software development , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[13]  Naftaly H. Minsky,et al.  The Imposition of Protocols Over Open Distributed Systems , 1991, IEEE Trans. Software Eng..

[14]  David G. Korn,et al.  Libraries and file system architecture , 1995 .

[15]  Donald Cohen Compiling complex database transition triggers , 1989, SIGMOD '89.

[16]  Balachander Krishnamurthy,et al.  Yeast: A Case Study for a Practical Use of Formal Methods , 1993, TAPSOFT.

[17]  Balachander Krishnamurthy,et al.  Using Event Contexts and Matching Constraints to Monitor Software Processes , 1995, 1995 17th International Conference on Software Engineering.

[18]  David B. Leblang,et al.  Parallel Software Configuration Management in a Network Environment , 1987, IEEE Software.

[19]  Balachander Krishnamurthy,et al.  Combining interactive tools (abstract) , 1993, SIGO.

[20]  Balachander Krishnamurthy,et al.  Provence: A Process Visualisation and Enactment Environment , 1993, ESEC.