Active Spaces are
populated by many entities, including people, software components, and hardware
devices. Some of these entities are
permanent and available for use as long as the system is running, while others
may be transient and mobile. Monitoring of all entities is required to
recognize their current state, when they are active, and if they are present in
a physical space.
Software components are monitored through a heartbeat mechanism and are processed by the Presence Service. When the heartbeats of an entity are received, its arrival is announced through the use of event channels. Three event channels are defined for software and hardware components; Application Presence, Device Presence, and Application Presence channels. When an entity's heartbeats are not received for some time, it is assumed to have stopped and its departure is announced. These Enter and Leave announcements are placed on the appropriate channel, which other components of the system can receive to detect the presence of various entities in the system.
People are monitored through the use of sensors. Different sensors are able to collect different kinds of information about the people. All of them put the data in a standard format and send it as events on the Person Presence channel. The Person Tracker listens to this channel and receives the events. It then processes the events, which includes keeping track of the current location of different persons, trying to refine the location information by combining various reports, and trying to infer the identity of persons. It then posts its findings on the Person Discovery channel.
The position of people in an Active Space can be monitored at different granularities - at the level of a room or position within a room. Various sensing devices are able to monitor people and can report their observations to the system. Different devices differ in their capabilities of recognizing people, the precision of locating them, and the format in which they can give their observations. Active Spaces should be flexible systems into which new devices can be added and therefore a framework is needed that allows easy integration of new kinds of sensing devices. This requires a location model that can be used by most sensors and a report format capable of handling various types of sensors. The observations from different sensors can be combined to get more location information than is possible from a single sensor. This combination of information can refine the position of a person, by aggregating reports of different sensors to get a more precise location. If one sensor is capable of tracking a person's location and another is capable of recognizing who the person is, information from these two sensors can be combined to track the position of known people.