The Intelligent Room [34], developed by Coen, was the initial project that started MIT's research into pervasive computing. MIT's interest has now evolved into an initiative called Project Oxygen that includes a new version of the Intelligent Room [64]. The Intelligent Room is a conference room containing a number of cameras, microphones, sound system, smart boards, visual displays, and a number of other sensors and actuators. The aim of the project is to provide a human-centered approach capable of supporting the activities of users in a pervasive computing environment. The underlying system for the environment is based on an agent system called Metaglue [121, 35].
2.3.4.1 An Agent-Based System
Hanssens et al. [64] use an agent-based system to control and develop applications for the Intelligent Room. In their approach an agent represents any software component with the ability to communicate and to provide functionality to other agents in the environment. These may include an agent to control a light switch or an agent to provide a fully featured word processing application for users. Hanssens et al. group these agents in societies to represent and to act on behalf of a user or a particular space. By structuring the agents in this way they
are able to scope the interactions within the societies and to limit unnecessary interactions between societies making it possible for the system to scale in an acceptable manner.
MetaGlue/HyperGlue Resource Management Context Management Applications GUI Multi-modal Interfaces
Figure 2.5: Intelligent Room Architecture.
Agents are used as the basic component for the Intelligent Room. The system architecture (see gure 2.5) consists of four layers working at increasing levels of abstraction. The commu- nication layer - MetaGlue [35] and HyperGlue [64] - contains software components that are used to mediate communication within a society and also between societies. The next layer - Rascal [54] - coordinates access to the resources of the society. The next layer consists of a context-aware component - ReBa [90] - that uses context information to provide relevant services to users, a GUI management component that controls the graphical user interfaces for applications, and a multi-modal component that contains methods for dierent modes of user input, such as gestures and speech recognition. At the top is the application layer which interacts directly with users.
Metaglue [35] is the agent system used by the Intelligent Room. It is developed in Java to provide low-level support for building software agents for pervasive computing environments. It is designed to aid communication and provide fault tolerant mechanisms for coordinating the actions of agents. The system uses a post-compiler that runs over the Java class les to generate new byte code that runs on the MetaGlue Virtual Machine. To support the de- velopment of agents Metaglue adds a number of language primitives to the Java language, a detailed description of which can be found in [121]. They are used by MetaGlue to dynamic load and connect agents together, and to tie agents to particular resources within the envi-
ronment. Communication between agents is achieved via a publish-subscribe mechanism or through the direct invocation of methods. The MetaGlue system is also designed to handle the failure of agents, in that, it is capable of restarting crashed agents in a manner that is transparent to other agents. Using MetaGlue in the Intelligent Room has allowed Hanssens et al. to provide a robust method of handling the failure of components and a means of abstracting such issues from higher-level agents. The dynamic binding of agents also provides the Intelligent Room with the means of adapting to changing agent congurations.
HyperGlue [64] enables inter-communication between societies of agents. In each society there is an ambassador agent that represents the grouping to the rest of the environment. These ambassador agents advertise their society and locate other societies so requests for resources and exchange of information can be made. The discovery mechanism used by ambassador agents is based on the Intentional Naming System (INS) [3]. The common com- munication model that MetaGlue provides in combination with the discovery mechanisms provided by HyperGlue ensures that the agents in the dierent societies are able to sponta- neously interoperate with each other. Such functionality allows Hanssens et al. to seamlessly integrate components into a pervasive computing environment.
Rascal [54] is used to coordinate how the resources in the pervasive computing environ- ment are used. The main function of Rascal is to arbitrate between requests for resources and to enforce access control for the system. It is composed of a knowledge base, a constraint sat- isfaction engine, and a framework that allows interaction with agents. The knowledge base is used to hold information about resource requirements, while the constraint satisfaction engine arbitrates the requests of agents for similar resources. Each society of agents manages and controls access to their own resources. Cross-space requests for resources are made through the ambassador agent. The use of Rascal provides the Intelligent Room with a way of man- aging resources and a means of adapting the conguration of agents to meet the availability of resources in the environment.
Controlling the behavior of each society is a behavioral system called RaBa [64]. The design [90] of which is heavy inspired by the work of Brooks [15] on subsumption and in part by that of Williams et al. [172]. Subsumption is a layered architecture that was developed
by Brooks to control the behavior of mobile robots when moving through unfamiliar envi- ronments. The system works by exploiting various levels of competence. Each level denes a particular class of behavior for the robot. Higher levels dene more specic desired classes of behaviors. In addition, these higher levels can suppress, or subsume, lower-level behaviors by changing their output. Hanssens et al. view the Intelligent Room as an immobile robot and have use Brooks's layered approach to control the behavior of their pervasive computing environment.
ReBa collects context information from agents to build up a higher level representation of the activity being performed by users in the physical environment. Hanssens et al. call this representation the activity context. For each activity (or sub-activity) being performed by a user a Behavior agent is used to represent it. In its simplest form each behavior contains a rule that responds to a user action by performing a particular reaction (output). Depending on the order of activities performed by users a series of behaviors can be activated by the system. An activity can be performed within another activity creating a layering of behaviors activated one on top of each other. For example, a presentation behavior can be activated on top of a meeting behavior, or it could be activated on top of a casual gathering behavior creating a dierent reaction in the physical environment. The ReBa component provides the Intelligent Room with the means of changing its behavior, in so doing, it allows the Intelligent Room to adapt to meet the needs of users.
User input and graphical user interfaces are managed separately from application logic. An application can receive user input via speech, gesture, and pointing devices. To allow users in dierent locations to interact with the same application Hanssens et al. have created a distinction between the application agent and the graphical user interface of the application. To transparently manage each user interface a GUI Manager agent runs locally on each device with a display. The manager can request a user interface from the application and load it locally onto the screen where a user can control it and share it with other users. Separating the inputs and outputs from the application logic makes it possible to dynamically compose applications to suit the available resources within the Intelligent Room. This makes it easier to adapt the applications to environment and to the needs of the user.
2.3.4.2 Using Agents to Build Pervasive Computing Applications
In the approach advocated by Hanssens et al. the development of pervasive computing en- vironments is centered around developing agents for the various sensors, actuators, compu- tational devices, and application logic used in the environment to represent the dierent physical spaces or users. The agent system used by Hanssens et al. and the abstractions that it provides helps to remove the complexities of dealing with the physical environment, easing the physical integration of devices while also aiding the development of applications for these environments. So far the system has been been used to build the Intelligent Room [64] and a number of application for it. For instance, Fire [55] is an information retrieval interface that allows users to use more natural modes of communication such as speech and gesture to retrieve information from the Internet. The Meeting Manager [120, 113] provides support for users who are having a meeting within the Intelligent Room. It helps users plan and manage a meeting while at the same time records the meeting with contextual cues that can be used to search the recording of a meeting at a later stage. It also provides a summary of the meeting that it sends to each participant at the meeting.
2.3.4.3 Summary
The Intelligent Room provides a human-centered approach to the development of pervasive computing environments. They pay particular attention to supporting the interactions be- tween users and also the interaction of users with the physical spaces they occupy. To support these interaction they have developed an architecture based on the agent system MetaGlue. The agents are grouped into societies to represent and to act on behalf of various users and physical spaces.