wood@eldir.cs.cornell.edu (Mark D. Wood) (11/28/89)
Release 1.2 of Meta is now available and may be obtained in the same manner as the ISIS releases. Description: The Meta project provides a platform that facilitates writing the control components of distributed application management programs. Dynamic system information may be gathered and acted upon using Meta library routines; less volatile system information may be reliably stored in globally available relations maintained by Meta. The dynamic system information is collected via an abstraction of sensors called abstract sensors. To build an abstract sensor using Meta the system architect writes a function that provides the sensor's value; this function is linked in with the Meta library to produce the sensor. An abstract sensor may be polled to obtain its current value, and a client can set a "watch" on a sensor instructing the sensor to notify the client when the sensor value satisfies some relation. The Meta library handles the naming and communication issues in a uniform manner for all sensors. Sensors of different types are permitted; we currently support the base types integer, real, and string along sets of these types. Meta also provides fault-tolerance against sensor crashes. Multiple replicas of a sensor may be run simultaneously to provide greater resiliency; the Meta system ensures that one-copy behavior is achieved. Meta also guarantees that all clients observing a set of events will observe a consistent ordering of the events. Static (and quasi-static) system information may be stored in relational tables, which are updated atomically and are highly available. Two query languages are currently supported. A relational algebra language is available that can be invoked both in an interactive manner and through queries embedded in C. We also support CProlog access to sensors and (read only) access to tables, but this is not included in this release. If you are interested in CProlog access, please contact us for further details. Planned Extensions: Actuators: We currently do have a limited actuator mechanism, but we are still experimenting with different formulations of actuators. We expect to release a simple version of actuators in the next release. Real-Time, Fault-Tolerant Behavior: Robustness against a wider range of failures is in the works. We are currently augmenting Meta to support imprecise sensors, i.e., sensors that have a degree of uncertainty stemming from imprecise measurement, message delay, and nondeterministic behavior of the physical system being monitored. Higher-Level Control Languages: The current languages are not very useful expressing predicates that include the time events occur in the system. We are currently developing a rule-based system that is grounded in a real-time temporal interval logic. This language should allow time dependent policies to be easily implemented. Primary Authors: K. Marzullo, M. Wood References: "Meta Functional Description," IDS, October 1989. This paper can be found in the doc subdirectory as fd.tex. It presents the Meta architecture at the interface level and provides the information needed to write a Meta application. "ISIS and the Meta Project," K Birman and K. Marzullo, Sun Technology, 2(3):90-104, Summer 1989. Gives a brief (and somewhat dated) description of the goals and structure of Meta. "Implementing Fault--Tolerant Sensors," K. Marzullo, Cornell University Department of Computer Science Technical Report 89-997, May 1989. Presents the theory behind real-time fault-tolerant abstract sensors. Soon to appear are two papers: one describing distributed application management using Meta and one giving a detailed description of the sensor and actuator model underlying Meta.