This Article 
 Bibliographic References 
 Add to: 
Yeast: A General Purpose Event-Action System
October 1995 (vol. 21 no. 10)
pp. 845-857
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 have 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. This 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] S.P. Reiss, "Connecting Tools Using Message Passing in the Field Environment," IEEE Software, vol. 7, no. 4, pp. 57-66, July 1990.
[2] C. Gerety,“HP SoftBench: A new generation of software development tools,” Tech. Rep. SESD-89-25, Hewlett-Packard Software Engineering Systems Division, Fort Collins, Colorado, Nov. 1989.
[3] N. Gehani and H. Jagadish,"Ode as an active database: Constraints and triggers," Proc. 17th Int'l Conf. Very Large Data Bases, Sept. 1991.
[4] D. Cohen, "Compiling Complex Database Transition Triggersm," Proc. ACM SIGMOD Int'l Conf. Management of Data, pp. 225-234,Portland, Ore., ACM Press, 1989.
[5] G.E. Kaiser and N.S. Barghouti, "Database Support for Knowledge-Based Engineering Environments," IEEE Expert, vol. 3, no. 2, pp. 18-32, 1988.
[6] G.E. Kaiser, P.H. Feiler, and S.S. Popovich, Intelligence Assistance for Software Development and Maintenance IEEE Software, vol. 5, no. 3, pp. 40-49, 1988.
[7] R.W. Selby, A.A. Porter, D.C. Schmidt, and J. Berney, "Metric-Driven Analysis and Feedback Systems for Enabling Empirically Guided Software Development," Proc. 13th Int'l Conf. Software Eng., pp. 288-298. IEEE CS Press, May 1991.
[8] M.I. Bolsky and D.G. Korn, The New KornShell Command and Programming Language. Prentice Hall, 1995.
[9] Computer Science Division, Univ. of California, Berkeley, “UNIX Programmer’s Manual,” 4.3 Berkeley Software Distribution, Apr. 1986.
[10] G. Fowler,D. Korn,S. North,H. Rao,, and K.-P. Vo,“Libraries and file system architecture,” Practical Reusable UNIX Software, B. Krishnamurthy, ed., chapter 2, pp. 78-90, Wiley, 1995.
[11] E. Krell, and B. Krishnamurthy,“COLA: Customized overlaying,” Proc. USENIX Winter 1992 Conference, pp. 3-7, 1992.
[12] Y. Huang and C. Kintala, "A Software Fault Tolerance Platform," Practical Reusable Software, B. Krishnamurthy, ed., pp. 223-245. John Wiley&Sons, 1995.
[13] B. Krishnamurthy and C.E. Wills,“Omicron: Events$\Rightarrow$Actions,” Tech. Rep. CSD TR 594, Dept. of Computer Sciences, Purdue Univ., Apr. 1986.
[14] S.I. Feldman,“Make—a program for maintaining computer programs,” Software—Practice and Experience, vol. 9, no. 3, pp. 255-265, Mar. 1979.
[15] G.S. Fowler,“The fourth generation make,” Proc. USENIX Portland 1985 Summer Conf., pp. 159-174, 1985.
[16] D.B. Leblang and R.P. Chase, “Computer-Aided Software Engineering in a Distributed Workstation Environment,” Proc. SIGPLAN/SIGSOFT Software Eng. Symp. Practical Software Development Environments, ACM SIGPLAN Notices, vol. 19, no. 5, pp. 104-112, 1984.
[17] D.B. Leblang and R.B. Chase, Jr.,“Parallel software configuration management in a network environment,” IEEE Software, vol. 4, no. 6, pp. 28-35, Nov. 1987.
[18] B. Krishnamurthy and N.S. Barghouti, “Provence: A Process Visualization and Enactment Environment,” I. Sommerville and M. Paul, eds., Proc, Software Engineering—ESEC'93, pp. 451–465, Garmisch-Partenkirchen, Germany, Lecture Notes in Computer Science 717, Springer-Verlag, 1993.
[19] D.C. Luckham,D.P. Helmbold,S. Meldal,D.L. Bryan,, and M.A. Haberler,“Task sequencing language for specifying distributed Ada systems,” System Development and Ada: Proc. of the CRAI Workshop on Software Factories and Ada, Habermann and Montanari, eds., pp. 249-305, Springer-Verlag, Lecture Notes in Computer Science, no. 275, 1987.
[20] D. Rosenblum, "Specifying Concurrent Systems with TSL," IEEE Software, pp. 52-61, May 1991.
[21] Y.-F. Chen,Event Management in Computer Networks, PhD thesis, Computer Science Division,Electrical Engineering and Computer Science Department,University of California at Berkeley, December 1987.
[22] N.H. Minsky,“The imposition of protocols over open distributed systems,” IEEE Transactions on Software Engineering, vol. 17, no. 2, pp. 183-195, Feb. 1991.
[23] N. Barghouti and B. Krishnamurthy, "Using Event Contexts and Matching Constraints to Monitor Software Processes," Proc. 17th Int'l Conf. Software Eng.,Seattle, Washington, Apr. 1995.
[24] E. Koutsofios and B. Krishnamurthy,“Combining interactive tools,” presented at CSCW 92: ACM Workshop on Tools&Technologies for CSCW, Oct. 1992.
[25] P. Inverardi,B. Krishnamurthy,, and D. Yankelevich,“Yeast: A case study for a practical use of formal methods,” TAPSOFT 93: Proc. 5th Int’l Joint Conf. on Theory and Practice of Software Development, pp. 105-120, Springer-Verlag, Lecture Notes in Computer Science no. 668, Apr. 1993.

Index Terms:
Computer networks, distributed computing, event-action systems, event models, software development environments, software process, specifications.
Balachander Krishnamurthy, David S. Rosenblum, "Yeast: A General Purpose Event-Action System," IEEE Transactions on Software Engineering, vol. 21, no. 10, pp. 845-857, Oct. 1995, doi:10.1109/32.469456
Usage of this product signifies your acceptance of the Terms of Use.