next up previous contents
Next: software integration Up: software Previous: perceptual context classifier   Contents

the memory glasses agent layer

The Memory Glasses application is implemented using an agent-oriented programming layer that sits on top of the classifier system. This middle-wear layer is built on Hive[7], a distributed, agent-oriented programming system which is itself based on Java and RMI.

A hive application is a collection of agents work together. Each agent is an independent, modular entity with a separate thread of execution; agents are routinely created, reconfigured, and even killed while an application continues to run. Information is passed between agents through asynchronous events and remote method calls, and events produced by one agent may be received by any number of other agents, either locally or across a network. The environment in which an agent executes is a hive cell, which has a particular location and exposes a specific set of local resources to the agents executing locally on that cell. Agents access these resource through hive shadows, which are analogous to operating system device drivers. For more information, see [7] or http://hive.media.mit.edu.

There are a number of advantages to using hive-based agent-oriented programming framework for developing the memory glasses application, including robustness, flexibility, ease of extension, and ease of integration with other wearable and ubiquitous computing resources and applications. The memory glasses application is implemented as a collection of Hive agents, and a hive shadow which provides access to the underlying classifier system. Classifier agents periodically poll the state of the appropriate classifier through the classifier shadow, and produce classifier data events.

Hysteresis/comparator agents interpret classifier data events, and trigger reminder events. Reminder display agents interpret the reminder events and take appropriate action to communicate the content of the reminder to the user. User feedback is provided through classifier training agents, which allow the user to create, label, and train classifiers.

Figure 2: Iconic data-flow views of the Memory Glasses application.
3.0in!AgentSchematicSimple.ps 3.0in!AgentSchematic.ps

Figure 2 shows two iconic data-flow views of the Memory Glasses application within a standard Hive GUI. The view on the left is a single classifier application employing (in left to right order) a classifier training agent, a classifier agent, a hysteresis/comparator agent, and two reminder display agents (one graphical, the other auditory). The view on the right is a two classifier application in which both classifiers share the same event display agents. In the second view, the raw output one of the classifiers is being directed to graphing agents for visual analysis.

One of the most interesting features of the Hive programming environment is the interaction flexibility afforded by the agents-oriented, event-driven model. For instance, classifier agents and hysteresis/comparator agents work together to create reminder events. It is up to a reminder display agent to interpret how a particular reminder event should be displayed to the user; one type of reminder display agent might produce a visual interpretation, while another produces an audible one. Yet another might take some other action, such as sending email, displaying a URL in a browser running on a desktop workstation, or killing the Quake server on the office subnet.


next up previous contents
Next: software integration Up: software Previous: perceptual context classifier   Contents
Rich's local hive hacking account
2000-02-01