|
Description  |
|
|
CROSS REFERENCE TO OTHER APPLICATIONS
The subject matter of the present invention is related to the subject
matter of concurrently filed, commonly assigned U.S. patent applications
having the following serial numbers and titles: Ser. No. 08/161,968
"SELECTION, CONTROL AND OWNERSHIP OF PARTICULAR DEVICES IN A MULTIPLE
COMPUTER SYSTEM BASED ON CONTEXT AND ENVIRONMENT IN PROXIMITY TO A USER OR
DEVICE," Ser. No. 08/161,730 "SPECIFYING AND ESTABLISHING COMMUNICATION
DATA PATHS BETWEEN PARTICULAR MEDIA DEVICES IN MULTIPLE MEDIA DEVICE
COMPUTING SYSTEMS BASED ON CONTEXT OF A USER OR USERS," and Ser. No.
08/162,522, "PERSONAL PRIVACY FOR MOBILE USERS IN DISTRIBUTED COMPUTING
ENVIRONMENTS THAT SUPPORT LOCATION SENSITIVE APPLICATIONS," each of which
are hereby incorporated by reference herein.
FIELD OF THE INVENTION
The present invention relates to control by a user of particular devices
and activities in a multiple computer system based upon the current
location and surrounding environment, including computing devices, of the
user.
More specifically, the invention relates to techniques for selectively
delivering electronic messages to an identified user via particular
computer devices based on context and environment in proximity to the
user.
BACKGROUND OF THE INVENTION
The introduction of computer networks and personal computing has forever
changed users' expectations of what computer systems can accomplish.
Individual users no longer expect to travel to a particular location to
have their processing needs met. Instead, individuals expect to have
sufficient computing power sitting on their desk to get the job done; or,
at least, to have their personal computers networked to sufficient
resources remote from their location to accomplish the task.
Attempts have been made to improve the "user-friendliness" of such personal
computers, including the development of "window" systems to give users the
illusion of working from their desktop electronically. This metaphor
suffers, however, from the size limitation of the usual monitor screen for
personal computers--no one would ever think of using an actual desktop
only nine inches high by eleven inches wide. Personal computers remain
static objects commanding the attention of users.
The notion of a computing environment in which computers themselves
disappear into the background was raised by Mark Weiser, "The Computer for
the 21st Century," Scientific American, September 1991. Two issues of
crucial importance to transmission and display of information in such a
"ubiquitous" computing environment are location and number of devices.
Weiser postulates a world in which there are many computing and
computer-controlled devices surrounding each user all the time. In one
example of such a system, he describes devices ranging from small
computational devices called "Tabs"--.-inch-scale computers which are
networked via wireless links--to yard-scale displays that may be used as
electronic blackboards called "Board," that may cover the entire wall of a
room.
Users may also wear "Active Badges," credit-card-sized devices that emit an
infrared identification signal that can be sensed by receivers placed in
each room of a building, thereby allowing detection of where each user is
currently located. Active Badges can also be attached to other moving
objects, such as portable printers and copiers.
Also discussed by Weiser at page 99 are "Pads," scrap-paper-like,
notebook-sized computers that have no individualized identity or
ownership. Weiser postulates that in the future there will be many Tabs
and Pads per person, just as today there are many paper notebooks and
stick-on notes per person. Consequently, users will interact with many
different devices, both serially and in parallel, during the course of
their daily lives.
"Guest" Tabs or Badges, and "scrap" Pads are devices not owned by any
particular user. Instead, they are available--perhaps at the entrance to a
building in the case of guest Badges, or in meeting rooms in the case of
Tabs and Pads--for use by whoever picks them up. Picking up an Active
Badge might involve checking it out from building security so that its
association with a particular user can be registered with the system.
In the environment described in Weiser, specific actions may be taken by
computers based on knowledge of location. For example, a Board may be
configured as a public information bulletin board, its display information
attuned to the people reading it. Room audio amplification or lighting may
be controlled according to the desires of the people using Tabs or Pads in
the room at that moment. Remote actions may be triggered by a user's
presence at a location, such as a login procedure started when a user
enters his or her office.
Jock Friedly, in "The Office of the 21st Century," Palo Alto Weekly, May 6,
1992, further describes a ubiquitous computing environment including Tabs
and Active Badges which broadcast signals that may be tracked throughout
the computing environment. Badges indicate where a person is so that phone
calls, for example, may be forwarded to a user's location.
In a ubiquitous computing environment such as described by Weiser, users
may further desire different automatic actions to be made by the system
based on the context surrounding them. Some actions should only take place
under controlled conditions. The environment or context of a user may
affect operations the user might wish nearby computing systems to perform.
For example, a user in a private meeting may not wish to have phone calls
forwarded to that location. A message that is private may be displayed on
a user's private Pad, but probably not on a public Board.
Similarly, a particular computing device may respond to users in different
ways depending on the environment and context. For example, if one user
walks into an unoccupied room, each computing device in that room may
temporarily assign some measure of ownership control of itself or its
resources to that user. When a second user enters the same room some, all,
or none of the computing devices may allow the second user ownership
rights, depending on the context and environment.
As described in Weiser, a user may be able to migrate any window that may
appear on a workstation screen onto a Tab, Pad or Board. This allows users
ongoing use of different I/O devices to interact with their electronic
data and applications. Which devices will be used will depend on the
circumstances of the user. In addition, more than one device might be used
to interact with the system at the same time. For example, a user might
keep several Pads on his or her desk, and migrate "secondary"
applications, such as system status monitors, from a workstation screen
onto those Pads. This would free up the workstation screen for use by
"primary" applications, such as word processors and spread sheets. Just as
today people spread out papers across their entire desks, so too might the
user of tomorrow spread out work onto multiple electronic screens, be they
Tabs, Pads, Boards, or workstations.
When a user goes to a meeting in another room, the user may take along one
of those screens, or may choose to migrate the contents of one or more
screens onto the I/O devices available in the meeting room, such as a
Board, or one of several scrap Pads in the room.
Such a ubiquitous environment should enable users to make better use of
their time and space. For example, some methods users employ to remind
themselves of events--notes, pagers, beeping wristwatches, electronic
calendars--cannot support automatic message delivery to a remote system,
and cannot issue special messages tailored to the physical location and
environment of the particular user.
Although there may be several ways to support a "ubiquitous computing"
environment to accommodate the entire range of mobility required for
ubiquitous computers, a preferred implementation is a network that allows
"wireless" communication with mobile devices. To date, many "wireless"
networks have already been designed--the most notable, perhaps, being the
cellular telephone network. Wireless network systems are generally
concerned with the physical layer of the network, and more specifically,
with methods of transferring the communication support for a mobile unit
from one base station to another. These issues may be classified as
problems in "communication continuity." Communication continuity is
concerned primarily with mechanisms for providing a continuous pathway for
data between two or more units, at least one such unit being mobile, and
for reestablishing a data pathway in the event of an unwanted disruption.
By contrast, "processing continuity" relates to maintaining a current and
proper processing context between two units.
A system for maintaining communication and processing continuity between a
mobile processing unit and remotely resident applications is described in
coassigned, copending patent application 08/100,655 entitled A METHOD AND
SYSTEM FOR MAINTAINING PROCESSING CONTINUITY TO MOBILE COMPUTERS IN A
WIRELESS NETWORK, filed Aug. 30, 1993 by Want et al., incorporated herein
by reference. The system includes a network backbone, at least one
stationary processor coupled to the backbone, and at least one transceiver
coupled to the backbone. The transceivers are configured to communicate
with the mobile unit through a wireless medium. Mobile units
intermittently communicate with applications. The system employs a process
that is dedicated to handling all communications between its associated
mobile unit and applications. This process is responsible for the
scheduling of communications sessions with the mobile unit.
One aspect of the present invention is the ability to provide a system in
which actions of the system are initiated or triggered based on the
context (for example, the location of the user or other users, the time of
day) and the environment (for example, the user's location, nearby
computing devices available) in proximity to the user.
Another aspect of the present invention provides a system in which the
delivery of electronic messages to a particular user or users may be
selective, depending upon the context or state of the user or users.
Furthermore, appropriate computing devices for particular actions, such as
delivery of electronic messages, are selected based on the environment in
proximity to the user in relation to the properties of the message.
In order to carry out these and other related functions, the system may
have knowledge not only of users, machines, and computing devices, but of
the context and environment that the users and devices are operating in.
The system may know, for example, the physical location of a user, what
computing devices are available at that location, what other users may be
in close proximity to the user. The system may further provide processing
continuity over a range of locations. For particular operations, the
system may be able to discern predefined control variables, and may be
sensitive to the context of certain actions.
SUMMARY OF THE INVENTION
The invention describes a method for selectively delivering electronic
messages to an identified user in a system of mobile and fixed devices,
including multiple display devices and multiple users, where the identity
and location of each device, display device, and user may be known to the
system, based on the context of the system and the environment of the
identified user. An electronic message, intended for an identified user,
is obtained, and a level of privacy and a level priority for the
electronic message is determined. The profile properties for the
identified user are obtained. The system perceives contextual attributes
for the identified user, including display devices in close proximity to
the identified user, and determines a display property for said electronic
message based on the contextual attributes, the user profile properties,
and the level of privacy and level of priority of the electronic message.
The following description, the drawings and the claims further set forth
these and other objects, features and advantages of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows an office environment configured to support a "ubiquitous
computing" system.
FIG. 2 shows a high level diagram of the system architecture of the system
elements and communications paths between the system, users and devices
used to determine the context of the system.
FIG. 3 shows general aspects of a UserAgent.
FIG. 4 describes the operation of a UserAgent.
FIG. 5 shows general aspects of a DeviceAgent.
FIG. 6 shows general aspects of a specialized device agent, a
TerminalAgent.
FIG. 7 describes the operation of a DeviceAgent.
FIG. 8 shows general aspects of a Name Service.
FIG. 9 shows general aspects of a Location Service.
FIG. 10 describes the operation of a Location Service.
FIG. 11 describes the operation of an Active Badge Service.
FIG. 12 describes the operation of an Input Monitor Service.
FIG. 13 describes in general terms the use of context information in
decision-making.
FIG. 14 describes in general terms the retrieval of contextual information.
FIG. 15 describes a method for selectively activating a machine event,
based on the context of the machine and proximity of users.
FIG. 16 describes in general terms a method for selective electronic
message delivery.
FIG. 17 describes in more detail a method for selectively delivering
electronic messages to one or more users.
FIG. 18 describes the establishment of ownership over particular devices
based on context including environment and proximity.
FIG. 19 describes user authentication for establishment of ownership of
devices.
FIG. 20 describes automatic logout procedures for temporary owners of
devices.
DETAILED DESCRIPTION
A. General System Architecture
FIG. 1 shows an office environment 10 configured to support a "ubiquitous
computing" system. Components that might be found in such a system
comprise hardwired network backbone 12, radio and infrared transceivers 14
and 16 respectively, workstation 18, file server 20, printer 22 and
various mobile units 24, 26 and 28, and user 30.
Network backbone 12 provides high bandwidth communications between the
various communication and computing devices. In the present embodiment, a
10 Mbps Ethernet provides the basic infrastructure. It will be appreciated
that although any network architecture may suffice for the backbone, it is
desirable that the bandwidth be wide enough to provide suitable
performance to support a desired maximum number of devices.
Components of this system may be properly classified as either "stationary"
or "mobile." Stationary components are generally hardwired to network
backbone 12. Such components comprise workstation 18, file server 20 and
printers 22, and the like. It will be appreciated that other networkable
components may be connected to the infrastructure depending upon the needs
of the office.
Mobile communication and computer units connect to backbone 12 via radio
and infrared transceivers 14 and 16 respectively. One advantage of using
infrared as a medium is reuse of frequencies. Walls 13 are essentially
opaque to infrared transmission. Thus, infrared transmissions in one room
do not interfere with infrared transmissions in another. Individual rooms
11 are termed communication "cells" because of this effective
partitioning. This useful property allows the reuse of the infrared
bandwidth for each cell in the workplace. It will be appreciated that the
use of infrared as a medium for wireless communication is well known in
the art. Cell-based communication further allows determination of a
person's location to the granularity of the cell size. That is, because
the communication system must know how to route communications to the
correct cell for a particular person or device, it also must know that
person's or device's location, to the accuracy of the cell size.
A similar communications partitioning is possible with a single radio
frequency if the "near field" components produced by an antenna are used
to couple the mobile units to the network. The term "near field" describes
those field components of an energized antenna that do not give rise to
propagating waves. The use of near field communication is disclosed in
copending, coassigned U.S. patent application Ser. No. 07/984,821 entitled
WIRELESS COMMUNICATIONS USING NEAR FIELD COUPLING, filed Dec. 3, 1992 by
Richley et al., incorporated herein by reference. Although only radio and
infrared transmission are employed for wireless communication in the
presently preferred embodiment, it will be appreciated that other types of
electromagnetic and acoustic transmission might be suitable. Additionally,
it will be appreciated that multiple frequencies may be employed to
partition the communication space into non-interfering cells.
Communications facilities for the system of the present invention may be
provided by other communications technologies. However, there must still
be a facility for locating moving users and devices. For example, if
people wear Active Badges which provide their location, then the Badge
system will be able to locate them. Cellular phones or wide-area radio
technologies may then be used to perform communications.
Each transceiver 14 or 16 in the described embodiment is connected to a
network 12 through a base station, or gateway computer 15 which performs
translation between the wireless communication from the transceiver and
the communication packets sent over the network 12.
Tabs 26 and Pads 24 are mobile units that connect with the network through
the wireless media. Boards 28 may also provide a means for computer system
communications. A user 30 may further have on an Active Badge 32. Tab 26
is a small stylus-based mobile computer. Tab 26 may be carried by a user
30 throughout the workplace, may be assigned to a particular user, and
further may identify that user to sensing devices. Functionally, Tab 26
may be a simple device. Speed and memory capacity requirements are very
modest, thus enabling these devices to be very small and consume little
power. As a result, Tabs 26 are very portable. Clearly, other devices,
including other mobile devices, with at least the ability to perform
simple communications with the system and to interact with the user and
display messages may be used to perform the techniques herein described,
as well. Pads, for example, may be used and, being more powerful, may
further provide additional applications capabilities to the user.
Tab 26 may also report events generated by its user in response to
information displayed on its screen. These events may be triggered by
pressing mechanical buttons on the Tab, or by pressing a stylus against a
pressure sensitive display, or by other suitable user interface
mechanisms.
As a user 30 with a Tab 26 may move from communication cell to
communication cell, Tab 26 may be periodically disconnected from the
network. Such disconnection may happen for a number of reasons, including
moving the Tab into a communication "dead zone" where no transceiver may
maintain contact, or by a failure of the Tab itself, such as the
discharging of its battery, or the user powering off the Tab, or the like.
When the cause of disconnection is removed, Tab 26 reconnects to the
network. Thus, as user 30 moves into communication proximity with another
sensor in a different cell (or with the original sensor at a different
time), Tab 26 reestablishes connection with the network through its
regular broadcasts or by a user triggered packet. It will be appreciated
that other schemes for maintaining regular contact with the network exist.
For example, the infrared transceiver could poll mobile units within its
cell.
FIG. 2 shows a high level diagram of the system architecture of the system
elements and communications paths between the system, users and devices
used to determine the context of the system. Note that FIG. 2 is meant to
be illustrative of the capabilities of the system, and not all possible
communications paths are shown among the processes shown in the figure.
The "context" includes the state of the system: positional information
about users and devices, the states of users and devices in the system,
interaction policies, and the status of applications, devices, and users
in the system. A "user," for the purposes of the discussion below, is a
human who interacts, implicitly or explicitly, with the resources of the
system. A "device" is any other entity with the ability to computationally
interact with the system, that is, to accept and respond to computational
commands. A device may include a computer workstation or a small portable
computing device as described above. Each device must present consistent
characterizing information in a format computationally recognizable to any
potential client of that device.
Communication between processes is described herein in terms of Remote
Procedure Calls (RPC). Techniques for implementing systems using RPCs are
well-known in the art. Although clearly other means of communication may
be available to implement the system herein described, interprocess
communication via RPC will be assumed for the purposes of generally
describing the preferred embodiment of the ubiquitous system.
The present system as described employs a distributed file system to store
persistent data of the system. Clearly other means of storing persistent
data may also be available in the system. Each agent must, however, employ
some file system for storing persistent data that is available to at least
that agent.
Name Service 80 provides a place where processes can register themselves to
be found by other interested parties, based on knowledge of a particular
name or of particular attribute information. All objects, either users or
devices, that wish to be identifiable by name register themselves in Name
Service 80. It is much like a telephone book in its intended purpose. In
the present embodiment, a registration contains two things: an RPC address
that can be used to contact the process for further interactions, and a
list of (key, value) pairs that describes the registered process to
greater or lesser degree. Keys and values are typically text strings,
although more complex data types may be used for values (e.g., multi-field
records). Keys are well-known text strings that can be used to
characterize the meaning of their associated value fields. One key value
that is commonly present in a registration is a "name" key, whose
associated value is typically a known unique name that a process can be
associated with. Using the analogy of a telephone book, the "name" key
corresponds to the name field in the telephone white pages and the RPC
address corresponds to the phone number. Other (key, value) attribute
information in a registration corresponds to the information commonly
found in the yellow pages of a phone book. For example, the key "type"
might characterize what kind of functionality the process associated with
a registration is willing to offer (e.g., UserAgent or TerminalAgent,
discussed below).
Each physical object-users, devices, or groups of devices (such as the
input and output devices that comprise a computer terminal)--is
represented in the system by a unique "agent." For example, each user is
represented in the system by a unique "UserAgent." A user's agent is under
control of the user, and interacts with the rest of the system as an
electronic proxy for that user. Personal information about a user is
primarily collected by, and primarily resides in, the user's agent. This
information may include: 1) relatively static information, such as
preferences and policies, 2) modestly dynamic information, such as
personal calendar or datebook information, and 3) very dynamic
information, such as current location and activity. A user's agent
controls access to the user's personal information, as prescribed by the
personal preferences and policies known to that agent, and as appropriate
to the current circumstances as known by that agent. Other system elements
have only such access as is granted by the user's agent.
Some devices are stationary objects that simply receive information and do
not otherwise interact with the objects around it. Other devices may
collect or send information, provide services, or in other ways in | | |