Yeast: a general purpose event-action system

Dept. of Software Eng Res., AT&T Bell Labs., Murray Hill, NJ
IEEE Transactions on Software Engineering (Impact Factor: 2.59). 11/1995; DOI: 10.1109/32.469456
Source: IEEE Xplore

ABSTRACT 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

  • Source
    [Show abstract] [Hide abstract]
    ABSTRACT: The development and maintenance of today's software systems is an increasingly effort-consuming and error-prone task. A major cause of the effort and errors is the lack of human-readable and formal documentation of software design. In practice, software design is often informally documented, or not documented at all. There fore, (a) the design cannot be properly communicated between software engineers, (b) it cannot be automatically analyzed for finding and removing faults, (c) the conformance of an implementation to the design cannot be automatically verified, and (d) source code maintenance tasks have to be manually performed, although some of these tasks can be automated using formal documentation. In this thesis, we address these problems for the design and documentation of the behavior implemented in procedural programs. We present the following solutions each addressing the respective problem stated above: (a) A graphical language called VisuaL, which enables engineers to specify constraints on the possible sequences of function calls from a given procedural program, (b) an algorithm called Check-Design, which automatically verifies the consistency between multiple specifications written in VisuaL, (c) an algorithm called CheckSource, which automatically verifies the consistency between a given implementation and a corresponding specification written in VisuaL, and (d) an algorithm called TransformSource, which uses VisuaL specifications for automatically inserting additional source code at well-defined locations in existing source code. Empirical evidence indicates that CheckSource is beneficial during some of the typical control-flow maintenance tasks: 60% effort reduction, and prevention of one error per 250 lines of source code. These results are statistically significant at the level 0,05. Moreover, the combination of CheckSource and TransformSource is beneficial during some of the typical control-flow maintenance tasks: 75% effort reduction, and prevention of one error per 140 lines of source code. These results are statistically significant at the level 0,01. The main contribution of this thesis is the graphical language VisuaL with its formal underpinning Deterministic Abstract Recognizers (DARs), which defines a new family of formal languages called Open Regular Languages (ORLs). The key feature of VisuaL is the context-sensitive wildcard, which makes VisuaL specifications more evolvable (i.e. less susceptible to changes), and more concise.
    The Social Studies. 01/2008;
  • Source
    [Show abstract] [Hide abstract]
    ABSTRACT: Common to computational grids and pervasive computing is the need for an expressive, efficient, and scalable directory service that provides information about objects in the environment. We argue that a directory interface that `pushes' information to clients about changes to objects can significantly improve scalability. This paper describes the design, implementation, and evaluation of the Proactive Directory Service (PDS). PDS' interface supports a customizable `proactive' mode through which clients can subscribe to be notified about changes to their objects of interest. Clients can dynamically tune the detail and granularity of these notifications through filter functions instantiated at the server or at the object's owner, and by remotely tuning the functionality of those filters. We compare PDS' performance against off-the-shelf implementations of DNS and the Lightweight Directory Access Protocol. Our evaluation results confirm the expected performance advantages of this approach and demonstrate that customized notification through filter functions can reduce bandwidth utilization while improving the performance of both clients and directory servers.
  • Source
    [Show abstract] [Hide abstract]
    ABSTRACT: this document we refer to such event as composite events instead of complex events used in the proposal document