270 likes | 425 Views
Übung zur Vorlesung TK3 Übung 3: Context-Awareness. FG Telekooperation Prof. Dr. Max Mühlhäuser Daniel Schreiber. Anmeldung. Im WebReg: Zwischenklausur zu TK3: Ubiquitous / Mobile Computing Übungsanmeldung Abgaben Übung 2 bisher: Sahin & May Mergel, Schwinn & Soysavanh Fritschi & Zunk
E N D
Übung zur Vorlesung TK3Übung 3: Context-Awareness FG Telekooperation Prof. Dr. Max Mühlhäuser Daniel Schreiber
Anmeldung • Im WebReg: • Zwischenklausur zu TK3: Ubiquitous / Mobile Computing • Übungsanmeldung • Abgaben Übung 2 bisher: • Sahin & May • Mergel, Schwinn & Soysavanh • Fritschi & Zunk • Erdmann • Schneider & Deul • Gottstein, Kastl & Tisler • Pahls
In eigener Sache… • Nutzerstudien zu TK Themen: • Multi-Touch • Federated Devices • Mobile Interaction • Voice Interaction • Wir suchen Teilnehmer!!! • nächster Termin 03.06. • Projektpraktikum: WS 08/09 • Bei Interesse bitte bei Dr. Felix Flentge melden
First context-aware systems… • Active Badge System [Want 1992] to locate people in the office and forward calls to a nearby phone
Context-aware applications • Most popular applications: location based services (e.g. GUIDE a travel guide system for Lancaster [Cheverest 2000])
Context-aware applications • Google Mail displays advertisements according to the email content
Context-aware applications • Memory-aids: provide user with reminders or information recorded from previous interaction that could be relevant in the current situation (e.g. CybreMinder [Dey 2000b])
What is Context? • What information can be used by a computer to enhance the interaction with it what IS Context? • Many definitions exist, but none is commonly accepted
Definition by Relevance • Most prominent definition by Dey et al (2001): “Context is any information that can be used to characterize the situation of an entity. An entity is a person, place, or object that is considered relevant to the interaction between a user and an application, including the user and applications themselves” [Dey 2001]
Definition by Functionality and Relevance Context characterizes the actual situation in which the application is used. This situation is determined by information which distinguishes the actual usage from others, in particular characteristics of the user (her location, task at hand, etc) and interfering physical or virtual objects (noise level, nearby resources etc). Thereby, we only refer to information as context that can actually be processed by an application (relevant information), but that is not mandatory for its normal functionality (auxiliary information).
John@lunchbreak Time: 12:00 John leaves office Context Sources
Features of Context-Aware Applications • Presentation of information and services to a user • Automatic execution of a service for a user • Tagging of context to information to support later retrieval • Adaptation of application’s behavior and appearance Adapted from [Dey 2001]
Features: Presentation • Present information to the user relevant in his current situation • Only refers to WHICH information is presented (not HOW Adaptation) • Examples: • Tourist Guides • ContextPhone [Raento 2005]: present context information for the user’s contacts (like location, people nearby, phone use activity)
Features: Execution • If context changes according to condition in IF-THEN rules services are automatically executed • Example: • PARCTAB System [Adams 1993]: every room has a virtual workspace for exchanging information between persons present in the room. Mobile devices of a user entering the room are automatically bound to the workspace.
Features: Tagging • Associating contextual information to data, to improve later retrieval • Can be performed automatically or initiated by the user • Example: • CybreMinder [Dey 2000b]: Notes can be associated with current context information. Notes are later delivered to user as soon as associated context matches current situation
Features: Adaptation • Adapt behavior and how information is presented to given context • Examples: • Emphasize objects that best fit current needs or facilitate to choose them • Automatically forward call to the phone in the vicinity of the user • Delay interruption until an appropriate point in time to minimize its adverse effect (deferment depends on user’s activity, importance of the interruption)
Exercises • Add context-awareness to Chatclient • Presentation of location information • Automatic execution of automatically changing status for a user • Simulation of two location systems with worldview
Exercise 1 + 2 Exercise 1: Model own world with worldview (see map on homepage) Exercise 2: Write a Service that provides information about the worldmodel // Returns room by its name public Room getRoom(String roomname) throws NoSuchElementException; // Returns room that contains the specified point public Room getRoom(Vector3d point) throws NoSuchElementException; // Returns a user name based on a badge ID public String getUserFromBadge(int badgeID) throws NoSuchElementException; // Returns a user name based on an IRIS ID public String getUserFromIRIS(int irisID) throws NoSuchElementException;
Badge Location System Event: <Badge 53 seen in room 29> transmitted every 5 seconds Room receiver Badge . (Description of real world system. In the exercise you are going to implement a simulation!)
Exercise 3 Exercise 3 • Badge Positioning System emits messages with BadgeEvents (Room name has to be same as ChannelName of Room Receiver) • badgeID • receiverID • Badge can be seen several times in the same room in a row! • Write a Mapper that transforms events into UserEnteredRoomEvents • badgeID person (by using World service) • receiverID Room (by using World service) publicclass UserEnteredRoomEvent { String person; Room room; }
Exercise 4 • Messengers listen to UserEnteredRoomEvents • And changes status if “their” user enters or leaves room • Add location information to title • Add location information of all other users (including the offline contacts) as comments in the contact list ( store them locally at each client) • ContactList.java 3.0 has new method: • setStatus(int status) • For setting the title use • setTitle(String title)
Architecture World (Exercise 3.2) receiverID RoomIDPosition RoomID badgeID Username irisID Username ChatClient ChatClient EventMapper (Exercise 3.3) <UserEnteredRoomEvent> <BadgeEvent> <BadgeEvent> WorldView RMC Message emitted Message received.
Exercise 5 • Publish UserLeftRoomEvents if user leaves a room (analogue to UserEnteredRoomEvents)
IRIS Event: <Person 3 seen at position x: 23, y:45, z:155> transmitted every 0.1 seconds *Description of real world system. In the exercise you are going to implement a simulation!
Exercise 6 • IRIS System emits messages with IRISEvents. • id • x,y,z coordinates of person • Mapper transforms events to UserEnteredRoomEvents, UserLeftRoomEvents : • x, y, z coordinates-> roomID (by using World service)
References • [Dey 2001] Anind K. Dey, Understanding and using context, 2001, Personal and Ubiquitous Computing, Vol 5 • [Cheverst 2000] Keith Cheverst, Nigel Davies, Keith Mitchell and Adrian Friday, Experiences of developing and deploying a context-aware tourist guide: the GUIDE project, 2000, Mobile Computing and Networking • [Adams 1993] Norman I. Adams, Rich Gold, Bill N. Schilit, Michael M. Tso and Roy Want, An Infrared Network for Mobile Computers, 1993, USENIX Symposium on Mobile and Location Independent Computing • [Dey 2000b] Anind K. Dey and Gregory D. Abowd, CybreMinder: A Context-Aware System for Supporting Reminders, 2000, HUC