Context-Aware Computing: Integration with Rover Christian B. Almazan almazan@cs.umd.edu CMSC 818Z – Spring 2007 13 February 2007 What is Context? An Attribute? Location of an Event Time of a Message Temperature of the Room Person of Interest Provided as Part of Something Else? Headers in an E-Mail Message Surrounding Text in a Passage How Does/Should Context Be Used? Context as Defined by Academia No Common Consensus [Dou01] Etymology of Context [Win01] “con” – with “text” – meaning inferred from adjacent text We take a look at a variety of definitions from several different fields/paradigms: Pervasive/Ubiquitous Computing Human-Computer Interaction Service-Oriented Architectures Context Defined by [CCDG05] “Context is about...” “...evolving” “...structured” “...shared information spaces...” “...serve a particular purpose” “Context...” “...amplifies human activities with...” “...new services that...” “...adapt to circumstances they are used in” Context Defined by [DA99] “...is any information that can be used characterize the situation of an entity.” “An entity is...” “...a person, place, or object...” “...considered relevant to interactions between a user and an application...” “...including the user and applications themselves” Context Defined by [ST94] “...the location and identities of nearby people and objects and changes to those objects.” Defines and records historical, provenance information Based on location-aware computing We’ll see this in Rover tracking and tagging Context Defined by [Win01] “Context...” “is not just more text.” “is effective only when it is shared.” “emerges in dialog.” “Context is an operational term.” “...something is context because of the way it is used in interpretation...” “...not due to its inherent properties.” What is Context? (Revisited) Is the definition of context different depending on the application scenario? Does the definition of context include all of the definitions presented? What, if any, notions of context are missing from this presentation? Have we sufficiently captured all fields? We mention context-awareness next. What is Context-Aware? Context-Awareness Approaches [Lok06] Self-Supported devices and hardware can perceive and reason with context without external support Infrastructure Supported devices and hardware utilize external sources to perceive and reason with context What Can Be Context-Aware? Entities (Devices, Humans, ...) Services What is Integration? Let’s revisit the term ‘system’: consists of many parts parts communicate with each other Integration, therefore... combines the parts together can be done... directly: part-to-part indirectly: middleware What Can Be Integrated? Any part of any system! Kinds of systems: Biological Mathematical Financial Software What kinds of integrated systems have you seen lately? Think about how context can be used. Student Information Systems Components of the Information System Transcript Records Course Schedules Human Resources Bursar’s Office Department-Specific Information University Directories Mostly WWW sites at UMCP. How can context be used here? First Responder Systems Independent, but coordinated, entities: 911 Call Center, EMT, Police, Firefighter Homeland Security, CDC, FBI, CIA, NSA How should each entity... exchange information? efficiency and privacy concerns policy enforcement utilize technology? GPS, WiMAX, sensors, external data sources Sample First Responder Scene Integration Technologies We have been creating new integration techniques since computing began. Sampling of current technologies: XML, XML Schema Semantic Web: RDF, RDFS, OWL, OWL-S Web Services: SOAP, REST, XML-RPC Middleware Technologies: one.world, Gaia Database Research: Rondo This talk focuses on Rover [AYA07] High Level Overview of Rover Integration and Fusion Platform (Designed to Be) Platform Independent Context-Aware Services (Primarily) Message-Based Standardized Context-Aware Messaging Client/Server or Peer-to-Peer Interaction Every node utilizes the same software. Can send and receive messages. Install components at runtime. Rover Visualized VoIP Management Teams Services Time Context Rover Humans Internet Location Data Feeds Data Sources Databases Sensors Rover Architecture and Messages Rover Nodes All have (hopefully) unique identifiers (URIs) Connection lookup on identifiers Rover Messages XML-based Modeled after Semantic Web’s RDF Triples: subject -> predicate -> object Christian -> isPresenterOf -> SeminarTalk subjects and predicates are URIs objects are either URIs or literals Base Rover Message Guid globally unique identifier Activity describes how to handle a message one action, one or more sub-actions Context (to be described...) Content triples, activity-specific information Context in Rover Messages Originator who generated? Concerning who is it about? Timestamp when created? Map what logical map? Area what places? Reader context obtained? Location where important? Radius does location reach? How is Context Supplied? Automatically Node identifier placed automatically Location determination technologies (Horus) Mapping identifiers placed accordingly Manually Anything the user deems appropriate Try to make implicit context explicit! Rover Messaging Handlers Rover nodes can place handlers that can read, modify, and take action. These handlers can be attached to: all outgoing messages all incoming messages to a specific activity (action/sub-action) Handlers can be for specialized for clients, servers, or both Current Rover Implementation Microsoft.NET 2.0 Framework Asynchronous Networking Paradigm XML-Based Messages Client and Server Software the Same Components can be specialized to be client, server, or both Since XML messages are standardized, can develop Rover software for other platforms and programming languages Implemented Components (1) Dynamic Component Loading from the local file system over the network Broadcast Chat servers can send personal messages Internet/WWW Services Yahoo! RSS feeds for weather Yahoo! API for news and web caching performed on servers Implemented Components (2) Voice over IP Microsoft’s RTP voice and video point and connect interface Barcode Input Enhanced Shopping Kiosk Experience Tracking (details coming...) Position Tagging Tracking Server starts tracking server component Can overlay an image Client starts tracking client component Can watch or participate Upon starting the component, downloads current state of the tracking system Overlay image Positions Tags Updates periodically, or when requested Tracking: Positions Specify colors to indicate last time a position had been reported: Normal [under 15s] – Blue Warning [under 30s] – Orange Problem [over 30s] – Red Map can identify which areas have already been covered – Yellow Tracking: Tags Tagging Structure Type of Tag – ‘Check It Out’ or ‘Warning’ Placed or removed Where you are By an administrator/commander Can leave additional textual information ‘Check It Out’ Tags Can assign the tag to one or all clients Units can indicate they are reporting to tag Blinks if no one responds within 10 seconds UMCP Rover Demo Scenario MINDLab Network 8400 Baltimore Avenue Watcher 1 UMD Wireless Network AV Williams Building, 3rd and 4th Floors Unit 1 Unit 2 Unit 1 Listens for position activity, performs tagging operations, and utilizes other services. Units inform their position, performs tagging operations, and utilizes other services. Watcher 1 Unit 2 UMD/CS Unsupported Public Network AV Williams Building, Room 4160 Mitigates Rover Services Between Rover Clients Including: Server User Position Notification Map Tagging Text Chat Internet Services The Internet UMD/CS Unsupported Private Network AV Williams Building, Room 4160 Watcher 2 Watcher 2 Listens for position activity, performs tagging operations, and utilizes other services. Rover Server accesses internet services as a proxy for Rover Clients, with Services including (with support for caching): Yahoo! News and Web Searches via REST Yahoo! Weather RSS Feeds Scavenger Hunt Scenario Multiplayer game based on tagging Points scored based on when tags found If more than two people play, the last person to find a tag could be generated an extra tag, but score more points if faster in that iteration, or something like that Both physical and logical tags! Physical: RFID, barcode, etc. Logical: Radius logic tags, etc. Potential Rover Enhancements Currently single-server implementation Would like multi-server/peer-to-peer Additional location technologies PinPoint Better Integration Strategies Utilize context better Enhanced Tagging More integrated applications! Questions and Discussion Need References Not on the Next Slide? Ask Me for Them! Can identifiers (e.g. URIs) have context? How can context be used when integrating the following scenarios? shopping mall (e.g. Arundel Mills) emergency situation (e.g. bomb scare) References [AYA07] [CCDG05] Seng W. Loke. Context-Aware Artifacts: Two Development Approaches. Pervasive Computing. 5(2), pp 48-53. April-June 2006. [ST94] Paul Dourish. Where the Action Is; The Foundation of Embodied Interaction. MIT Press, Cambridge, 2001. [Lok06] Anind K. Dey and Gregory D. Abowd. Towards a Better Understanding of Context and Context-Awareness. Proceedings of the 1st International Workshop on Managing Interactions in Smart Environments. 1999. [Dou01] Joëlle Coutaz, James L. Crowley, Simon Dobson, and David Garlan. Context is Key. Communications of the ACM. 48(3), pp 49-53. March 2005. [DA99] Christian B. Almazan, Moustafa Youssef, and Ashok K. Agrawala. Rover: An Integration and Fusion Platform to Enhance Situational Awareness. The First International Workshop on Research Challenges in Next Generation Networks for First Responders and Critical Infrastructures. April 2007. To Appear. Bill N. Schilit and Marvin M. Theimer. Disseminating Active Map Information to Mobile Hosts. IEEE Network. 8(5), pp 22-34. September-October 1994. [Win01] Terry Winograd. Architectures for Context. HCI Journal 2001.