`
`[191
`
`Theimer et a1.
`
`[11] Patent Number:
`
`5,493,692
`
`[45] Date of Patent:
`
`Feb. 20, 1996
`
`||I|||||ll||ll||ll|||||||lll|||llllll|||ll||l||lllll||l|l|||||||||||||l||||
`U8005493692A
`
`[54]
`
`175]
`
`[73]
`
`[21]
`
`[22]
`
`151]
`
`[52]
`
`158]
`
`[56]
`
`SELECTIVE DELIVERY OF ELECTRONIC
`MESSAGES IN A MULTIPLE COMPUTER
`SYSTEM BASED ON CONTEXT AND
`ENVIRONMENT OF A USER
`
`Inventors: Marvin M. Theimer, Mountain View;
`Michael J. Spreitzer, Tracy; Mark D.
`Weiser, Pale Alto; Richard J.
`Goldstein, San Franciseo; Douglas B.
`Terry, San Carlos; William N. Schilit,
`Palo Alto; Roy Want, Mountain View,
`all of Calif.
`
`Asaigneez Xerox Corporation, Stamford, Conn.
`
`App]. No.: 162,419
`
`Filed:
`
`Dec. 3, 1993
`
`U.S. Cl.
`
`Int. Cl.6
`
`H04L 9132; GOGF ”1104;
`008B 5122
`4551261; 38013; 380123;
`379138; 379157; 3401825 .31; 340132549
`Field of Search
`4551261; 38013,
`380123; 340182531, 825.49, 825.5; 319138,
`56, 57
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`3,506,791
`3,739,329
`4,217,588
`4,275,385
`4,303,904
`4,912,471
`4.952.928
`5,027,3l4
`5,068,916
`5,099,346
`5,119,104
`5,122,959
`5,159,592
`5,181,200
`5,202,929
`5,218,344
`
`379156 X
`411970 Halaby
`.. 340132549 X
`611973 Lester
`
`3431112 U
`811980 Freeuy. Jr.
`
`3401312
`611981 White
`1211981 Chase}: .............. 340123
`
`311990 ‘I‘yburski eta]. .
`342142
`
`811990 Carroll et al,
`.. 340182554-
`
`611991 Linwood et al. ........... 3641900
`
`1111991 Harrison et a1. .......... 455139
`
`.....
`311992 lee et a1.
`3591118
`611992 Heller ...........
`3421450
`611992 Nadianson ct
`.. 3641436
`1011992 Perkins
`.. 3'1"01Ei§.'.-r
`111993 Harrison
`...... 3701851
`411993 lemelson .
`.. 340182531 X
`611993 Ricketts
`340182531 X
`
`
`
`5,363,425
`
`1111994 Mufti et al.
`
`.................... 340182549 X
`
`FOREIGN PATENT DOCUMENTS
`
`2230365
`
`1011990 United Kingdom .
`
`OTHER PUBLICATIONS
`
`Friedly, J. The Oflice Of The 21st Century. Pale Alto
`Weekly. May 6, 1992. pp. 20—24.
`Kleiner, A. The Ultimate Control Chip The Programable
`World. Popular Science. May 1992. pp. 90—95.
`Schilit. B. N.; Adams, N.; Gold, R.; Tso, M. M.; Want, R.
`The Parctab Mobile Computing System. PARC Papers at
`WWOS—IV, 1993 IEEE and Xerox. pp. 1—6.
`Weiser, M. Some Computer Science Issues In Ubiquitous
`Computing. Communications of the ACM. Jul. 1993, vol.
`36, No. '1. p. 84.
`
`Primary Examiner—Gilberto Barron, Jr.
`Attorney, Agent. or Firm—R. Christine Jacobs; Tracy L.
`Hurt
`
`[57]
`
`ABSTRACT
`
`The present invention describes a method for selectively
`delivering electronic messages to an identified user or users
`in a system of mobile and fixed devices, including multiple
`display devices and multiple users, based on the context of
`the system and the environment of the identified user.
`Electronic messages intended for an identified user or users
`may be given a level of privacy and a level priority, and
`contextual attributes for its delivery may be specified. The
`system perceives contextual attributes for the recipient user
`or users, inciuding dispiay devices in close proximity to the
`identified users, and determines a display property for said
`electronic message based on the contextual attributes, the
`user profile properties of each user, and the level of privacy
`and level of priority of the electronic message. The display
`property may designate immediate delivery on a particular
`display device, a notification on a particular display device,
`or storage of the message until the contextual attributes of
`the recipient user is consistent with the specified contextual
`attributes of the electronic message.
`
`8 Claims, 17 Drawing Sheets
`
`1112
`
`112
`
`EW
`
`
`
`
`
`
`UserAgent
`
`I‘M
`
`Person Specific Information 106
`
`110
`
`1'08
`
`LYFT 1029
`
`LYFT 1029
`
`1
`
`
`
`US. Patent
`
`Feb. 20, 1996
`
`Sheet 1 of 17
`
`5,493,692
`
`NI'l-
`
`11
`
`O
`
`Fig.1
`
`13
`
`11'
`
`11
`
`2
`
`
`
`US. Patent
`
`Feb. 20, 1996
`
`Sheet 2 of 17
`
`5,493,692
`
`74
`
`
`DeviceAgentc \ 84
`
`
`UserAgentA
`
`Badge Service
`
`f‘
`'
`
`80
`
`I
`
`70
`
`90
`
`
`
`Name Service
`
`
`
`Location Service
`
`
`Service
`TerminalAgentD (- """"
`
`Input MonitOr
`
`94
`
`Scoreboard
`
`76
`
`FIG. 2
`
`3
`
`
`
`US. Patent
`
`Feb. 20, 1996
`
`Sheet 3 of 17
`
`5,493,692
`
`102
`
`112
`
`
`
`
` UserAgent
`
`.
`
`104
`
`Person Specific Information
`
`Personal Policies
`
`Current State
`
`FIG. 3
`
`
`
`
`
`
`
`
`106
`
`108
`
`1 10
`
`4
`
`
`
`US. Patent
`
`Feb. 20, 1996
`
`Sheet 4 of 17
`
`5,493,692
`
`120
`
`Find And Read UserProfile
`
`
`
`Export RPC1nteriace
`
`Register With Services
`For Callbacks
`
`
`
`
`
`
`
`
`128
`
`’32
`
`126
`
`
`
`
`
`RPC Request
`Request
`From Identified
`Allowed?
`
`Client?
`
`N
`\
`
`Deny
`Request
`
`130
`
`
`
`
`134
`
`RPC
`
`
`Service
`More Object
`
`Information?
`Callback?
`
`
`
`138
`
`Execute Request
`
`
`Contact And Retrieve
`
`
`Available Information
`From Object Agent
`
`
`
`
`
`Perform
`Evaluate Poiicy
`
`Indicated
`Rules Against
`
`
`
`Current State
`Action
`
`
`
`
`
`
`
`Action To Be
`Performed?
`
`
`
`
`Time-Based
`Actions?
`
`
`
`
`
`
`
`FIG. 4
`
`5
`
`
`
`US. Patent
`
`Feb. 20, 1996
`
`Sheet 5 of 17
`
`5,493,692
`
`DeviceAgent
`
`Device Profile
`
`Current State
`
`FIG. 5
`
`m
`
`TerminalAgent
`
`172
`Device Profiles
`
`174
`
`
`
`176
`
`Current State of Devices
`
`
`FIG. 6
`
`6
`
`
`
`US. Patent
`
`Feb. 20, 1996
`
`Sheet 6 of 17
`
`5,493,692
`
`180
`
`Find And Read UserProfile
`
`
`
`182
`
`Export RPC interface
`
`
`
`
`
`
`
`Register With Location
`Services or UserAgent
`
`184
`
`186
`
`188
`
`’90
`
`
`
`
`
`RPC Request
`Request
`From Identified
`Allowed?
`
`Client?
`
`
`
`Y
`
`Execute
`Request
`
`N
`
`192
`
`Deny Request
`
`195
`
`194
`
`Housekeeping?
`
`
`
`
`
`Time-Based
`Actions?
`
`FIG. 7
`
`7
`
`
`
`US. Patent
`
`Feb. 20, 1996
`
`Sheet 7 of 17
`
`5,493,692
`
`Name Service
`
`212
`
`Registrations
`
`
`
`
`214
`
`Callbacks
`
`
`FIG. 8
`
`Location Service
`
`@
`
`Registrations
`
`Location Information About Stationary Objects
`With No Managing Agents
`
`Other location and Conversion Information
`
`Location Specific Information
`
`Topological Information
`
`FIG. 9
`
`8
`
`
`
`US. Patent
`
`Feb. 20, 1996
`
`Sheet 8 of 17
`
`5,493,692
`
`Export RFC Address
`To Name Service
`
`
`
`Register Tuples
`
`For Specified Stationary
`Objects Without Agents
`
`
`
`242
`
`246
`
`
`
`'
`'
`Registration
`Request?
`
`Y
`
`
`
`250
`
`43
`
`N
`
`
`
`
`Valid
`7
`_
`_
`Registration .
`
`Y
`
`Update Location
`Information
`
`Callback
`
`
`
`Request?
`
`Callbacks
`
`Affected?
`
`
`
`254
`
`
`Do
`Location
`
`'t _.
`,
`Appropriate
`Query?
`
`
`
`
`393;;
`Callbacks
`
`
`Still Alive?
`
`
`
`
`Perform
`Indicated
`
`Action
`
`
`
`Garbage
`
`
`Collect Dead
`
`Registrations
`
`274
`
`
`
`FIG. 10
`
`9
`
`
`
`US. Patent
`
`Feb. 20, 1996
`
`Sheet 9 of 17
`
`5,493,692
`
`Export RPC Address
`
`Update
`
`
`
`Sighting
`
`' PC Reques
`Badge
`
`Information?
`From ldentifie -
`Location
`
`
`Client?
`Information
`
`
`
`
`
`To Name Service
`
`
`
`
`
` Callback
`
`Request?
`
` Do
`
`Appropriate
`
`Callbacks
`
`Garbage
`Collect Dead
`
`Registrations
`
`
`Location
`Query?
`
`
`
`Perform
`Indicated
`
`
`Garbage
`Collect Dead
`
`Registratlons
`
`00 Query
`Appropriate
`And Return
`Callbacks
`Result
`
`
`
`FIG. 11
`
`10
`
`10
`
`
`
`US. Patent
`
`Feb. 20, 1996
`
`Sheet 10 of 17
`
`5,493,692
`
`Export RPC Address
`To Name Service
`
`310
`
` Update
`
`
`
`' PC Reques
`From Identifie -
`Client?
`
`326
`
`User
`Location
`Information
`
`
`Callbacks
`
`
`Affected?
`
`Request?
`
` Callback
`
`Ca back
`
`
`Do
`Appropriate
`Callbacks
`
`
` Callback
`
`Successful?
`
`
`
`
`Garbage
`Collect Dead
`
`Registrations
`
`Re ister
`
`330
`
`Location
`Query?
`
`
`
`
`
`
`Do Query
`And Return
`Result
`
`FIG. 12
`
`11
`
`11
`
`
`
`US. Patent
`
`Feb. 20, 1996
`
`Sheet 11 of 17
`
`5,493,692
`
`Determine Action To Be Performed
`
`346
`
`
`
`
`
`
`
`Obtain Relevant Contextual And
`Environmental Information
`
`Evaluate Action Based On
`Environment And Context
`
`348
`
`350
`
`Perform Action Or Alternate
`Action(s) As Appropriate
`Based On Contextual Evaluation
`
`FIG. 13
`
`Determine Location Of
`Object Of interest
`
`352
`
`354
`
`
`356
`
`Obtain Relevant Information
`About Other Objects At Or Near The
`Location Of The Object Of Interest
`
`
`
`
`
`Obtain Relevant Para meters
`353
`Of Objects Related
`
`To Objects Of Interest
`
`FIG. 14
`
`12
`
`12
`
`
`
`US. Patent
`
`Feb. 20, 1996
`
`Sheet 12 of 17
`
`5,493,692
`
`
`360 Identify
`
`
`
`Machine
`
`Event
`
`identify Necessary
`Contextual Attributes
`
`
`
`
`For Event
`System State
`
`
`364
`
`Change In
`
`
`
`
`Contextual Attributes
`. Consistent With Determined
`Contextual Attributes?
`
`368
`
`Activate Event
`
`FIG. 15
`
`13
`
`13
`
`
`
`US. Patent
`
`Feb. 20, 1996
`
`Sheet 13 of 17
`
`5,493,692
`
` 400
` Message
`
`Obtained
`
`
` Message
`
`Recipient
`identified
`
`Contextual Attributes
`For Delivery Determined
`
` 406
`
`Change in
`
`System State
`
`
`Contextual Attributes
`Consistent WithDetermined.
`Contextual Attributes?
`
`
`
`Deliver Message
`To Appropriate Device
`
`408
`
`FIG. 16
`
`14
`
`14
`
`
`
`US. Patent
`
`Feb. 20, 1996
`
`Sheet 14 of 17
`
`5,493,692
`
`To Be
`Delivered
`
` Message
`
` Find UserAgent
`
` Send RPC Request
`
`
`(Each) User Agent
`
`422
`
`0f (Each)
`
`Intended Recipient
`
`
`
`
`With Message To
`
`424
`
`
`
`436
`
`Change Of
`Context
`
`
`
`
`
`
`Find Context 0f Intended Recipient
`Including Available Devicels)
`
`And Device Profile(s) At Location
`Of Intended Recipient
`
`
`
`I eliverable
`Based On
`Context?
`
`
`
`To Appropriate Device
`
`Don't Deliver
`Message
`
`Deliver Message
`
`
`
`FIG. 17
`
`15
`
`15
`
`
`
`US. Patent
`
`Feb. 20, 1996
`
`Sheet 15 of 17
`
`5,493,692
`
`
`Receive
`
`
`Ownership
`Request
`
`502
`
`Currently Owned
`By An other?
`
`
`
`
`
`504
`
`Determine Contextual Attributes
`Of The System
`
`
`Evaluate Owner Ship Request
`
`Based On Device Profile, Context
`
`
`
`508
`
`
`
`510
`
`
`Ownersfifia Rf’ghts
`
`EnableA ro riate
`
`
`
`
`FIG. 18
`
`16
`
`16
`
`
`
`US. Patent
`
`Feb. 20, 1996
`
`Sheet 16 of 17
`
`5,493,692
`
`520
`
`
`
`ls User Authenticated?
`
`Perform Only
`Appropriate
`Una uthenticated
`Fu nctions
`
`
`
`Retrieve
`User Profile
`
`Configure Device
`As Appropriate
`Based On
`User Profile
`
`
`
`
`
`FIG. 19
`
`17
`
`17
`
`
`
`US. Patent
`
`Feb. 20, 1996
`
`Sheet 17 of 17
`
`5,493,692
`
` User Logout?
`
`364
`
`Logofi User
`
`FIG.20
`
`18
`
`18
`
`
`
`1
`SELECTIVE DELIVERY OF ELECTRONIC
`MESSAGES [N A MULTIPLE COMPUTER
`SYSTEM BASED ON CONTEXT AND
`ENVIRONhIIENT OF A USER
`
`5,493 ,692
`
`2
`
`Weiser postulates a world in which there are many com-
`puting 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 individu—
`alized 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—w
`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 ofiice.
`
`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 thmughout 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 diiierent 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 aiiect 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.
`
`CROSS REFERENCE TO OTHER
`APPLICATIONS
`
`The subject matter of the present invention is related to
`the subject matter of concurrently filed, commonly assigned
`US. patent applications having the following serial numbers
`and titles: Ser. No. 083161368 “SELECTION. CONTROL
`AND OWNERSHIP OF PARTICULAR DEVICES IN A
`MULTIPLE COMPUTER SYSTEM BASED ON CON-
`TEXT AND ENVIRONMENT IN PROXIMITY TO A
`USER OR DEVICE,” Ser. No. 08l161,730 “SPECIFYING
`AND ESTABLISHING COMMUNICATION DATA
`PATHS BETWEEN PARTICULAR MEDIA DEVICES IN
`MULTIPLE MEDIA DEVICE COMPUTING SYSTEMS
`BASED ON CONTEXT OFA USER OR USERS,“ and Ser.
`No. 08l162,522, “PERSONAL PRIVACY FOR MOBILE
`USERS IN DISTRIBUTED COMPUTING ENVIRON—
`MENTS 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—friendli~
`ness" of such personal computers, including the develop—
`ment of ‘Mndow” systems to give users the illusion of
`working from their desktop electronically. “l‘his metaphor
`sufiers, 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 com-
`puters themselves disappear into the background was raised
`by Mark Weiser. “The Computer for the let 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.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`4t}
`
`45
`
`5t]
`
`55
`
`60
`
`65
`
`19
`
`19
`
`
`
`5,493 ,692
`
`3
`As described in Weiser, a user may be able to migrate any
`window that may appear on a workstation screen onto aTab,
`Pad or Board. This allows users ongoing use of different U0
`devices to'interact with their electronic data and applica-
`tions. 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 U0
`devices available in the meeting room, such as a Board, or
`one of several scrap Paris 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 “ubiq—
`uitous 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 "wire-
`less“ 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 continu-
`ity." 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 continu-
`ity” 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 08l100,655 entitled A METHOD AND
`SYSTEM FOR MAINTAEIING PROCESSING CONTI-
`NUITY T0 MOBILE COMPUTERS IN A WIRELESS
`NETWORK, filed Aug. 30, 1993 by Want et al., incorpo-
`rated 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 back-
`bone. 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 commu-
`nications between its associated mobile unit and applica~
`tions. 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
`
`It]
`
`15
`
`20
`
`30
`
`35
`
`40
`
`45
`
`5t]
`
`55
`
`60
`
`65
`
`4
`
`or triggered based on the context {for example, the location
`of the user or other users, the time of day) and the environ—
`ment (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 loca-
`tions. 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 lNVENTION
`
`The invention describes a method for selectively deliver-
`ing 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 envi-
`ronment of the identified user. An electronic message,
`intended for an identified user, is obtained, and a levei 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 atlributes 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 advan-
`tages of the invention.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. I shows an oifice environment configured to support
`a “ubiquitous computing” system.
`FIG. 2 shows a high level diagram of the system archi-
`tecture 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 UserAgenL
`FIG. 4 describes the operation of a UscrAgcnt.
`FIG. 5 shows general aspects of a DeviceAgertt.
`HG. 6 shows general aspects of a specialized device
`agent, a TerminalAgent.
`FIG. 7 describes the operation of a DeviceAgent.
`FIG. 8 511on5 general aspects of a Name Service.
`FIG. 9 shows general aspects of a Location Service.
`FIG. It) describes the operation of a Location Service.
`FIG. 11 describes the operation of an Active Badge
`Service.
`
`20
`
`20
`
`
`
`5,493,692
`
`5
`
`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 con-
`textual information.
`
`FIG. 15 describes a method for selectively activating a
`machine event1 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 tem-
`porary 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 net-
`work 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 commu-
`nications between the various communication and comput-
`ing devices. In the present embodiment, a 10 Mbps Ethernet
`provides the basic infrastrucuue. It will be appreciated that
`although any network architecture may suffice for the back
`bone, 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 compo
`nents 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 depend-
`ing 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 n-ansmission. 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 determi-
`nation 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 pro-
`duced by an antenna are used to couple the mobile units to
`
`6
`the network. The term “near field” describes those field
`components of an energized antenna dial do not give rise to
`propagating waves. The use of near field communication is
`disclosed in copending, coassigned U.S. patent application
`Ser. No. 07984321 entitled WIRELESS COMMUNICA-
`TIONS 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 tech
`nologies. 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 wire—
`less communication from the transceiver and the communi-
`cation 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 commu-
`nications with the system and to interact with the user and
`display messages may be used to perform die techniques
`herein described, as well. Pads, for example, may be used
`and, being more powerful, may filrther provide additional
`applications capabilities to the user.
`Tab 26 may also report events generated by its user in
`response to infomiation 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 communi—
`cation cell to conununication cell, Tab 26 may be periodin
`cally 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 39 moves into
`communication proximity with another sensor in a different
`cell (or with the original sensor at a dinerent Lime), Tab 26
`rcestablishes connection with the network through its regu-
`lar broadcasts or by a user triggered packet.
`It will be
`appreciated that other schemes for maintaining regular con-
`tact with the network exist. For example,
`the infrared
`transceiver could pol] mobile units within its cell.
`
`it]
`
`15
`
`20
`
`25
`
`30
`
`35
`
`4t}
`
`45
`
`50
`
`55
`
`60
`
`I55
`
`21
`
`21
`
`
`
`5,493 .692
`
`7
`
`FIG. 2 shows a high level diagram of the system archi-
`tecture of the system elements and communications paths
`between the system, users and devices used to determine die
`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 pro-
`cesses 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 computa-
`tional commands. A device may include a computer work-
`station 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
`an, Although clearly other means of communication may be
`available to implement the system herein described, inter-
`process 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 asso—
`ciated value fields. One key value that is conunonly present
`in a registration is a “name” key. whose associated value is
`typically a known unique name that a process can be
`associated with. U