Presentation is loading. Please wait.

Presentation is loading. Please wait.

Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware.

Similar presentations


Presentation on theme: "Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware."— Presentation transcript:

1 Context-aware Computing: Basic Concepts

2 Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware Applications Developing Context-aware Applications Issues and Challenges Special Topics Summary

3 Pervasive ComputingContext-aware Computing-2 Sources Out of Context: Computer Systems That Adapt to, and Learn from, Context, H. Lieberman, T. Selker, MIT A Survey of Context-Aware Mobile Computing Research, by G. Chen, D. Kotz, Dartmouth College Context-Aware Applications Survey, M. Korkea- aho, Helsinki University of Technology Slides from Jason I. Hong, Group for User Interface Research, U. of California at Berkeley

4 Pervasive ComputingContext-aware Computing-3 Motivation Modern computers are divorced from reality Unaware of who, where, and what around them Leads to mismatch Computers have extremely limited input Aware of explicit input only Can take a lot of effort to do simple things Context-Aware Computing Making computers more aware of the physical and social worlds we live in Breaking computers out of the box

5 Pervasive ComputingContext-aware Computing-4 Traditional View of Computer Systems Computer System inputoutput Context independent: acts exactly the same Human in the loop

6 Pervasive ComputingContext-aware Computing-5 From Abstraction to Context Sensitivity Traditional black box view comes from the desire for abstraction This is based on several assumptions: Explicit input/output: slow, intrusive, requiring user attention Sequential input-output loop Move away from the black box model and into context-sensitivity human out-of-the-loop (as much as possible) reduce explicit interaction (as much as possible)

7 Pervasive ComputingContext-aware Computing-6 Context as Implicit Input/Output Context-Aware System explicit input explicit output Context: state of the user state of the physical environment state of the computing system history of user-computer interaction...

8 Pervasive ComputingContext-aware Computing-7 Context-Aware Computing Let computer systems sense automatically, remember history, and adapt to changing situations Reduced explicit interaction, more responsive Need to draw a boundary around the system under consideration To define explicit and implicit

9 Pervasive ComputingContext-aware Computing-8 Why Context-Aware Computing? Context TypesExisting ExamplesHuman Concern Room ActivitySmoke AlarmSafetyRoom ActivityAuto Lights On / OffConvenienceObject IdentityBarcode ScannersEfficiency Personal Identity & Time File SystemsFinding InfoTimeCalendar RemindersMemory

10 Pervasive ComputingContext-aware Computing-9 Existing Examples Why Context-Aware Computing? Context Types Potential ExamplesHuman Concern ActivityConvenience ActivityFinding Info IdentityMemory Identity & TimeSafety TimeEfficiency Identity Time Location Proximity Activity History … Smoke Alarm Auto Lights On / Off Barcode Scanners File Systems Calendar Reminders Health Alert Auto Cell Phone Off In Meetings Service Fleet Dispatching Tag Photos Proximal Reminders

11 Pervasive ComputingContext-aware Computing-10 Outline Motivation Context and Context-aware Computing Context-aware Applications Developing Context-aware Applications Issues and Challenges Special Topics Summary

12 Pervasive ComputingContext-aware Computing-11 Definition of Context (1/3) Schilit divides context into three categories: Computing context User context Physical context Time is also important and natural context Time context => context history

13 Pervasive ComputingContext-aware Computing-12 Definition of Context (2/3) Schmidt et al.: knowledge about users and IT devices state, including surroundings, situation, and to a less extent, location Dey: any information that can be used to characterize the situation of an entity Entity: person, place, object that is considered relevant to the interaction between a user and an application

14 Pervasive ComputingContext-aware Computing-13 Definition of Context (3/3) Kotz: the set of environmental states and settings that either determines an applications behavior or in which an application event occurs and is interesting to the user Active context: influences behavior of an application Passive context: relevant to the application, but not critical

15 Pervasive ComputingContext-aware Computing-14 Examples of Context Identity Spatial: location, orientation, speed Temporal: date, time of day, season Environmental: temperature, light, noise Social: people nearby, activity, calendar Resources: nearby, availability Physiological: blood pressure, heart rate, tone of voice

16 Pervasive ComputingContext-aware Computing-15 Context-aware Computing (1/3) Pascoe: taxonomy of context-aware features contextual sensing context adaptation contextual resource discovery contextual augmentation (associating digital data with users context)

17 Pervasive ComputingContext-aware Computing-16 Context-aware Computing (2/3) Dey: context-aware features presentation of information/services to a user according to current context automatic execution of a service when in a certain context tagging context to information for later retrieval

18 Pervasive ComputingContext-aware Computing-17 Context-aware Computing (3/3) Kotz: Active context awareness - An application automatically adapts to discovered context, by changing the applications behavior Passive context awareness - An application presents the new or updated context to an interested user or makes the context persistent for the user to retrieve later.

19 Pervasive ComputingContext-aware Computing-18 Context-Aware and Pervasive What is the relationship between context-aware computing and pervasive computing?

20 Pervasive ComputingContext-aware Computing-19 Outline Motivation Context and Context-aware Computing Context-aware Applications Taxonomy Developing Context-aware Applications Issues and Challenges Special Topics Summary

21 Pervasive ComputingContext-aware Computing-20 Examples of Context-awareness ! Situation/ high-level contexts

22 Pervasive ComputingContext-aware Computing-21 Active Badges Active Badge Olivetti / AT&T Hopper, Harter, et al Badges emit infrared signals Gives rough location + ID Teleport Redirect screen output from "home" computer to nearby computer Phone forwarding Automatically forward phone calls to nearest phone

23 Pervasive ComputingContext-aware Computing-22 Active Badges (contd) Interface follow-me (location)

24 Pervasive ComputingContext-aware Computing-23 ParcTabs Xerox PARC Want, Schilit, et al Active badge + wireless Rough location + ID Showing information of the room the user in Help find resources Show all files in a directory when enter a room Locate others Different control choices in different rooms (location, time, nearby devices, file system state)

25 Pervasive ComputingContext-aware Computing-24 Auto-diaries and Proximate Selection

26 Pervasive ComputingContext-aware Computing-25 In/Out Board (Georgia Tech) Context: identity by FRID, time

27 Pervasive ComputingContext-aware Computing-26 DUMMBO (Georgia Tech) Dynamic Ubiquitous Mobile Meeting Board: Digitizing whiteboard to capture and access informal and spontaneous meetings Capture ink written to and erased from whiteboard, and audio discussion Activated when two or more people gathered around Context: ID, time, location of whiteboard

28 Pervasive ComputingContext-aware Computing-27 Cyberguide Georgia Tech Abowd et al GPS or infrared tracking Fairly precise location Display location on screen Predefined points of interest Automatically pop up if nearby Travel journal Keep log of places seen and photographs taken Context: location, time

29 Pervasive ComputingContext-aware Computing-28 Cyberguide (contd)

30 Pervasive ComputingContext-aware Computing-29 Voice memo Hold like phone near mouth to start recording Portrait/Landscape Physically rotate screen Tilt scrolling Tilt instead of scrollbars Power management Turn on if being held and tilted Enhanced PDA Microsoft Research Hinckley et al

31 Pervasive ComputingContext-aware Computing-30 GUIDE (University of Lancaster) Context: location through WLAN, user preference

32 Pervasive ComputingContext-aware Computing-31 Fieldwork University of Kent at Canterbury: archeological assistant giraffe observation rhino identification (location through PalmPilot, GPS; time) Location dependent notes through StickPlate, StickEdit, StickMap

33 Pervasive ComputingContext-aware Computing-32 Memory Aids Forget-Me-Not: Rank Xerox ParcTab recording where its user is, who they are with, whom they phone, etc. in a database for later retrieval StartleCam: MIT Media lab. Skin conductivity sensor triggers taking of images and transmitting to remote server

34 Pervasive ComputingContext-aware Computing-33 Other Applications Shopping assistant (location) Smart floor, active floor Office assistant from MIT Media Lab. (activity, schedule)

35 Pervasive ComputingContext-aware Computing-34 Summary: A Rough Taxonomy of Context-Aware Apps Triggers Metadata Tagging Reconfiguration and Streamlining Input specification Presentation

36 Pervasive ComputingContext-aware Computing-35 A Rough Taxonomy of Context-Aware Apps Triggers On X do Y "Notify doctor and nearby ambulances if serious health problem detected" "Remind me to talk to Chris about user studies next time I see him"

37 Pervasive ComputingContext-aware Computing-36 A Rough Taxonomy of Context-Aware Apps Metadata Tagging "Where was this picture taken?" "Find all notes taken while Mae was talking" Memory prosthesis Stick-e notes: University of Kent Stick-e note: attaching notes to a context, later trigger the node when context occurs again Programming environment based on stick-e: Triggering, execution, and sensor components

38 Pervasive ComputingContext-aware Computing-37 A Rough Taxonomy of Context-Aware Apps Reconfiguration and Streamlining Telephone forwarding and Teleport Turn off cell phone in theaters Automatically adjust brightness / volume Automatic file pre-caching Select modes in multimodal interaction Multimedia / Bandwidth adaptation

39 Pervasive ComputingContext-aware Computing-38 A Rough Taxonomy of Context-Aware Apps Input specification Send mail only to people in building now Print to nearest printer "Find gas stations nearest me" Presentation of plain contexts Current location Idle? Currently in? Contextual info about objects Proximate selection

40 Pervasive ComputingContext-aware Computing-39 Outline Motivation Context and Context-aware Computing Context-aware Applications Developing Context-aware Applications Issues and Challenges Special Topics Summary

41 Pervasive ComputingContext-aware Computing-40 Design Process of Typical Context- aware Applications 1. Specification 2. Acquisition and Representation 3. Delivery/Distribution 4. Reception and Storage 5. Action (the application)

42 Pervasive ComputingContext-aware Computing-41 Design Process: Specification Context to use Context behaviors to perform Key step in design process: problem specification

43 Pervasive ComputingContext-aware Computing-42 Design Process: Acquisition Install relevant sensors Sensors: infrastructure or personal artifacts Where to sense? How often to update and report? Context representation Store context

44 Pervasive ComputingContext-aware Computing-43 Design Process: Delivery/Distribution Contexts typically captured remotely from applications at different time Context captured in sensor-rich environment or device may need to serve multiple applications => Need to deliver and distribute context to multiple, remote applications Infrastructure or middleware support App/network-level delivery/routing models and transport mechanism

45 Pervasive ComputingContext-aware Computing-44 Design Process: Reception Application locates relevant sensors/contexts Service discovery Requests contexts via queries, polls, notifications Query language, event-notification mechanism How often to request? Additional interpretation/abstraction/processing Collection, aggregation, filtering, correlation, fusion,...

46 Pervasive ComputingContext-aware Computing-45 Design Process: Action Combine received contexts with previous contexts and system/application states for further analysis Perform actions based on the analysis results May treat context collection/processing as a separate service

47 Pervasive ComputingContext-aware Computing-46 Outline Motivation Context and Context-aware Computing Context-aware Applications Developing Context-aware Applications Issues and Challenges Special Topics Summary

48 Pervasive ComputingContext-aware Computing-47 Sensing the Context (1/3) Location: Outdoors: GPS Indoors: IR, RF, ultrasonic, camera (cellular and non-cellular) Hybrid: IEEE , Mobile-IP Issues: Heterogeneous sensors with uncertainty and conflicts (sensor fusion) Data vs sensor networks Making mobile devices location-aware

49 Pervasive ComputingContext-aware Computing-48 Sensing the Context (2/3) Low-level contexts beyond location Time: time-of-day (with calendar) Nearby objects Network bandwidth Orientation Others: photodiode (light), accelerometer (tilt, vibration), microphone, sensors for temperature, pressure, gas, etc. Issue: sensors in mobile devices or infrastructure => direct vs. indirect awareness

50 Pervasive ComputingContext-aware Computing-49 Sensing the Context (3/3) High-level contexts: users activity Camera technology and image processing Consult calendar for what user is to do Combine low-level sensors, e.g., using rules How about emotional contexts? Context changes: subscription-notification Polling rate?

51 Pervasive ComputingContext-aware Computing-50 Quality of Contexts What context is important? Always and in different situations? Quality: Coverage, resolution, accuracy, confidence, reliability, frequency, timeliness Self-contained vs. infrastructure-supported PDA doesn't need location sensors if it can ask nearby sensors to approximate Need standards for sharing components?

52 Pervasive ComputingContext-aware Computing-51 Modeling Contexts Location model: Symbolic: Active Badge, symbols Geometric: GPS, coordinates Environmental model: relationship between... Locations: hierarchical, containment, distance People: friend, family, hierarchy Devices? Context representation: Key-value pairs, tagged encoding Object-oriented model: contexts as object states Logic-based model: facts in rule-based system

53 Pervasive ComputingContext-aware Computing-52 Context Specification Need to express context about and relationships between People, Places, Things Predicates Identity (Who is…? What is…? Is with…?) Location (Near? Nearest? Distance? Path?) Activity (Is busy? Is in meeting? Current task?) Time (In past? In present? In future? On date?) Some of this vocabulary done by Schilit Implicitly encoded in his APIs One goal is to extend his work in spec language Another is to make it extensible for future context types

54 Pervasive ComputingContext-aware Computing-53 Context Specification Common parameters Max number of results wanted Return name Return data type (e.g. String, List, Table) Minimal probability of correctness desired Relevant sensor input requestor has Event parameters Event rate (e.g. at most 1 event per second) Event callback (e.g. RPC, socket port) Max number of events desired Granularity of change (e.g. 1 meter)

55 Pervasive ComputingContext-aware Computing-54 Context Interpretation Sophisticated applications require higher level forms of context Fusion Ambiguity: Sensors not 100% reliable, e.g. confidence value Precision / Accuracy / Granularity Different ways to deal: Improve inference Probability/fuzzy model Bring the user into the loop

56 Pervasive ComputingContext-aware Computing-55 System Issues (1/2) Programming model Programming the physical world Unreliable sensors, recognition algorithms, plus standard distributed computing issues Interoperability Sensors, services, and devices Useless if everyone has proprietary / custom systems Need standard data formats, protocols, and frameworks Varying capabilities of sensors, services, and devices Evaluation

57 Pervasive ComputingContext-aware Computing-56 System Issues (2/2) May need a middleware layer to decouple applications and context sensing Collect raw context, translate to application- understandable format, disseminate it Centralized context server Distributed architecture

58 Pervasive ComputingContext-aware Computing-57 Intelligence Who is smart? User or system or both Who makes the decisions on what actions to take? Tradeoff between user cognitive load and effort to make system smart

59 Pervasive ComputingContext-aware Computing-58 People Issues Avoiding embarrassing situations Active Badges + bathrooms Inconvenient phone forwarding Avoiding dangerous situations Need to take into consideration cost of mistake Smoke alarms when cooking Lights that turn off when you're still there Woman locked in "smart toilet stall" Will adding more context really help here?

60 Pervasive ComputingContext-aware Computing-59 People Issues Making it predictable and understandable Setting preferences "I want my cell phone to ring except in theaters and when I'm in a meeting unless…" Why the heck did it do that? Privacy What does the computer know about me? What do others know about me? Capturing/collecting lots of information about people, places and devices People uncomfortable when dont know what is being collected and how its used

61 Pervasive ComputingContext-aware Computing-60 Killer Applications? Need something to focus and drive the research Need something to put in the hands of real people Business model: how to make money from it?

62 Pervasive ComputingContext-aware Computing-61 Outline Motivation Context and Context-aware Computing Context-aware Applications Developing Context-aware Applications Issues and Challenges Special Topics Handling Multiple Contexts Context Modeling Context Programming Summary

63 Pervasive ComputingContext-aware Computing-62 Manipulating Multiple Contexts Source: Multi-Sensor Context-Awareness in Mobile Devices and Smart Artefacts H.W. Gellersen, A. Schmidt, M. Beigl Lancaster University and University of Karlsruhe Situation Context sensor(s) perceived

64 Pervasive ComputingContext-aware Computing-63 Direct/Indirect Context-Awareness Indirect context awareness: Direct context awareness: Situation Context Infrastructure sensor(s) device A device B device C Situation Context device A device B device C communicate perceived S(s) perceived Built-in sensors, context processing

65 Pervasive ComputingContext-aware Computing-64 Single Sensor vs. Multiple Sensors Single but powerful sensor: Position sensor, video sensor (camera) Useful information is inferred from what is perceived Prior knowledge is needed for information useful Simple but cheap sensors: Each sensor captures one facet of the context

66 Pervasive ComputingContext-aware Computing-65 Take Multiple-Sensor Approach Need to combine multiple simple sensors vs. one camera with powerful recognition capability Gain rich data to infer useful context with little computation Real world situations: situations and sensors

67 Pervasive ComputingContext-aware Computing-66 TEA host Example: TEA Technology Enabling Awareness Motivation: make personal mobile devices smarter Specs: CPU: PIC16F877 Storage: 8K EEPROM RAM: 200 Byte Use serial line to communicate with the host

68 Pervasive ComputingContext-aware Computing-67 Cue: abstraction of raw data For example, an acceleration sensor can infer cues like pattern of movement and current speed Rules from cue to context: can be pre-defined or use supervised/unsupervised learning TEA Architecture

69 Pervasive ComputingContext-aware Computing-68 Initial Exploration Tried on both PDA and mobile phone, and found it more useful on mobile telephony Two analysis strategies: Analyze how well a sensor contributes to a given context Analyze which sensors relate to which context Finding: audio, motion and light are useful globally, and other sensors are only useful in specific contexts

70 Pervasive ComputingContext-aware Computing-69 Implementation Some data are directly analyzed and not stored (audio) Some data are stored and processed (acceleration, light) Some data are cues itself; no need to process (temperature, skin conductance) Rules from cue to context are extracted offline and hardwired

71 Pervasive ComputingContext-aware Computing-70 A Ask to call B Request Bs context Provide context Inform A Make decision (Voice or short message) As phoneBs phone Application Profile activation: A user can have many profiles Activate profiles according to the situation (in-hand, on-table, in-pocket, outdoors) 87% certainty, 30 sec to calculate (not yet optimized) Context sharing (and privacy invasion):

72 Pervasive ComputingContext-aware Computing-71 3mm high Mediacup: An Active Artifact Spec: 1Mhz CPU, 15K storage, 384 byte RAM Digital temperature sensor 3-ball switch Detect movement A switch Detect whether placed on surface Infrared diode for comm. Capacitors charged wirelessly

73 Pervasive ComputingContext-aware Computing-72 Identified Contexts Movement context: Cup is stationary, drinking out of the cup, cup is played with, cup is carried around Computed by rule based heuristics with a short history of movements Temperature context: Filled up, cooled off, current temperature Updated every 2 seconds The cups broadcast their context to an overhead transceiver using the infrared diode

74 Pervasive ComputingContext-aware Computing-73 Design Issues Power management System kept very low-end Motion detection uses interrupt instead of polling to enable sleep mode in 99% of the time Put the cup on the saucer to recharge wirelessly (15 minute for 12 hour) Transparency Hiding the technology does not suffice In the battery-charged prototype, users forget to replace the battery because the effect of technology is invisible!

75 Pervasive ComputingContext-aware Computing-74 available MEETING Inside Outside Design Issues (Contd) Region of impact No context-aware application in the environment Context as a common resource

76 Pervasive ComputingContext-aware Computing-75 Outline Motivation Context and Context-aware Computing Context-aware Applications Developing Context-aware Applications Issues and Challenges Special Topics Handling Multiple Contexts Context Modeling Context Programming Summary

77 Pervasive ComputingContext-aware Computing-76 Context Modeling Source: Modeling Context Information in Pervasive Computing Systems, Karen Henricksen, Jadwiga Indulska, Andry Rakotonirainy School of Information Technology and Electrical Engineering, The University of Queensland

78 Pervasive ComputingContext-aware Computing-77 Characteristics of Context Information Exhibits a range of temporal characteristics Static vs. dynamic (highly variable in persistence) Static (birth day) may be obtained from user, but dynamic often from indirect means, e.g. sensors Context histories (past and future) May be incorrect, inconsistent, incomplete Failure, faulty info, transmission delay,... Has many alternative representations at different level of abstraction, relations between representations Is highly interrelated (by derivation rules)

79 Pervasive ComputingContext-aware Computing-78 Core Modeling Concepts Object-based approach: Entities: a physical or conceptual object Attributes: properties of entities Associations: linking an entity, its attributes, and other entities (uni-directional) Owner of an association As assertions about the owning entity Context description is a set of such assertions

80 Pervasive ComputingContext-aware Computing-79 An Example Scenario 3 entities: people, communication devices, communication channels

81 Pervasive ComputingContext-aware Computing-80 Static associations: relationship fixed during lifetime of owner Dynamic association: Sensed: transformed from raw data, change frequently, staleness, sensing errors Derived: derivation function from other associations, e.g., is located near Profiled: supplied by users Classifying Associations

82 Pervasive ComputingContext-aware Computing-81 Simple association: owner appears only once in this role, e.g., named association of Person Composite associations: Collection: owner can be associated with multiple attributes and entities, e.g., people work with others Alternative: e.g., comm. channel require a device Temporal: association for a time interval, e.g., user activities Structured Constraints on Associations

83 Pervasive ComputingContext-aware Computing-82 Annotated Example

84 Pervasive ComputingContext-aware Computing-83 Modeling Dependencies A dependency is a special type of relationship that exists between associations Capture the reliance of one association on another An association, a1, dependsOn, a2, iff a change to a2 has the potential to cause a change in a1 e.g., battery life dependsOn network bandwidth A dependency can be qualified by a participation constraint, e.g., engaged in and located at are dependent if they describe the same person

85 Pervasive ComputingContext-aware Computing-84 Dependencies in the Example

86 Pervasive ComputingContext-aware Computing-85 Modeling Context Quality Quality support: annotate associations with a number of quality parameters Each parameter is described by one or more quality metrics, which represent precise ways of measuring context quality with respect to the parameter Application dependent: e.g., user location: accuracy, freshness e.g., user activity: certainty, accuracy (both prob. values)

87 Pervasive ComputingContext-aware Computing-86 Example with Context Quality

88 Pervasive ComputingContext-aware Computing-87 Outline Motivation Context and Context-aware Computing Context-aware Applications Developing Context-aware Applications Issues and Challenges Special Topics Handling Multiple Contexts Context Modeling Context Programming Summary

89 Pervasive ComputingContext-aware Computing-88 Context Toolkit The Context Toolkit: Aiding the Development of Context-Enabled Applications D. Salber, A.K. Dey, G.D. Abowd Georgia Institute of Technology Proc. Of CHI99

90 Pervasive ComputingContext-aware Computing-89 Difficulties in Using Context Is acquired from unconventional sensors Must be abstracted to make sense for the applications May be acquired from multiple distributed and heterogeneous sources Is dynamic Need to detect changes in real time and adapt to constant changes, history information is valuable => Lack conceptual model and tools to solve => Learning from GUI => context widgets

91 Pervasive ComputingContext-aware Computing-90 GUI Toolkits Benefits hide specifics of physical interaction devices manage the detail of the interaction provide reusable building blocks Limitation lacking flexibility

92 Pervasive ComputingContext-aware Computing-91 Context Toolkit Toolkit for distributed context-aware apps Framework for acquiring and handling context Standard components Three key abstractions Widgets, Interpreters, and Aggregators

93 Pervasive ComputingContext-aware Computing-92 Context Widgets Widgets abstract out sensors GPS Active Badge App Location Widget Cell Phone Location Active Badge

94 Pervasive ComputingContext-aware Computing-93 Context Widget A software component that provides applications with access to context information from their operating environment insulates applications from context acquisition Analogy to GUI widget Separation, callbacks, attributes, encapsulation, abstraction e.g. GUI button Why: Responsible for acquiring and abstracting data from particular sensor, separation of concerns, storage

95 Pervasive ComputingContext-aware Computing-94 Features Context widgets have a state and a behavior State: a set of attributes that can be queries or subscribed (via widget triggers) by applications e.g., IdentityPresence (location and identity of a user) Are basic blocks managing sensing of context need means for composing widgets 3 components: generator, interpreter, server Differences from GIU widgets: Distributed, acquired from multiple sources Alive always, not activated by applications (e.g., environmental information monitoring)

96 Pervasive ComputingContext-aware Computing-95 Context Interpreters Convert or interpret context to higher level information App Location Widget Location to Room Interpreter Location to Street Interpreter

97 Pervasive ComputingContext-aware Computing-96 App Person Aggregator Activity Widget Affect Widget App Location Widget Location to Room Interpreter Context Aggregators Collect contexts relevant to particular entities Further separation, simplifies design

98 Pervasive ComputingContext-aware Computing-97 Context Services Perform behaviors that act on the environment In/out board

99 Pervasive ComputingContext-aware Computing-98 Context Discoverer Registry for context components In/out board

100 Pervasive ComputingContext-aware Computing-99 Example Context Widgets (I) IdentityPresence: senses the presence of people and their identity Generators Acquires raw information from the sensor(s) Could be voice recognition, Active Badges, video/image recognition, keyboard and login information Attributes and callbacks are independent of generators

101 Pervasive ComputingContext-aware Computing- 100 Example Context Widgets (II) Activity: senses the current activity level at a location Generators: Microphone, infrared sensor, video image analysis

102 Pervasive ComputingContext-aware Computing- 101 Other Context Widgets NamePresence: Provides the users actual name PhoneUse: Whether a phone is being used and the length of use MachineUse: When a user logs onto or off of a computer, his identity, and length of her computing session GroupURLPresence: Provides a URL relevant to the research group a user belongs to when her presence is detected

103 Pervasive ComputingContext-aware Computing- 102 Example of Using Context Widgets In/out board: One IdentityPresence at entrance to building

104 Pervasive ComputingContext-aware Computing- 103 Example of Using Context Widgets Information Display: Displays information relevant to the users location and identity on a display adjacent to the user Activates itself as someone approaches it, and the information it displays changes to match the user, her research group, and location. Context : location of the display, the identity of the user, the research group the user belongs to and information that is interesting to that research group GroupURLPresence or IdentityPresence

105 Pervasive ComputingContext-aware Computing- 104 Example of Using Context Widgets DUMMBO (Dynamic Ubiquitous Mobile Meeting Board) Digitizing whiteboard to capture and access informal and spontaneous meetings Capture ink written to and erased from whiteboard as well as the recorded audio discussion Activated when two or more people gathered around Context: participants identities, time of arrival at or depart whiteboard, location of whiteboard Multiple NamePresence, one for each location where DUMMBO could be moved to, one on DUMMBO itself

106 Pervasive ComputingContext-aware Computing- 105 Context Implementation Details Handle composition: e.g., IdentityPresence + Activity Meeting Interpreters can be used to assess validity of uncertain information provided by multiple generators Server: a widget that collects, stores and interprets information from other widgets Often used to model context of real world entities, e.g., users or places, from elementary widgets May include privacy handling

107 Pervasive ComputingContext-aware Computing- 106 Context Implementation Details Handle communicating across heterogeneous components: Assume that the underlying system supports TCP/IP Communication model uses the HTTP protocol Language model uses the ASCII-based Extensible Markup Language (XML)

108 Pervasive ComputingContext-aware Computing- 107 Context Implementation Details Handle dynamism: Environment changes application adapt Need: to access information and to access only desired information, also need to access context history Use a subscription mechanism to notify an application of context changes and a polling mechanism to allow an application to inquire Allow conditions to be specified before the widgets will be notified filtering unwanted info at infrastructure All widgets store historical data in a database for applications or interpreters to retrieve

109 Pervasive ComputingContext-aware Computing- 108 Outline Motivation Context and Context-aware Computing Context-aware Applications Developing Context-aware Applications Issues and Challenges Special Topics Handling Multiple Contexts Context Modeling Context Programming Summary

110 Pervasive ComputingContext-aware Computing- 109 Context-Oriented Programming Context Oriented Programming (COP) for Pervasive Computing, Andry Rakotonirainy, University of Queensland, Australia

111 Pervasive ComputingContext-aware Computing- 110 Motivating Example A portable Hello World program

112 Pervasive ComputingContext-aware Computing- 111 Basic Idea open term expression: Printer: print_on_printer(v) Speaker: ascii2voice(v) Monitor: display(v) Open terms, also called gaps or holes, are the core programming construct of COP Open term filling Open terms allow us to create new terms and bind them dynamically within the scope of a program. Dynamic binding Dynamic scoping

113 Pervasive ComputingContext-aware Computing- 112 Open Term Like macro expansions

114 Pervasive ComputingContext-aware Computing- 113 Compared with Traditional Way

115 Pervasive ComputingContext-aware Computing- 114 Context Oriented Programming Formalization A process P is adapted to a process Q when P enters a context m. The open term output in P is filled with an expression ascii2voice from the context m. Implementations Use Python as a language to express COP Use XML to describe context

116 Pervasive ComputingContext-aware Computing- 115 Python Python is an interpreted, interactive, object- oriented programming language. It is often compared to Tcl, Perl, Scheme or Java. It has modules, classes, exceptions, very high level dynamic data types, and dynamic typing.

117 Pervasive ComputingContext-aware Computing- 116 XML Specification of an Open Term It describes the current context. E.g reading It describes the required context of such expression. E.g SSL If the filling expression features this context, it shouldnt fill the open terms. Palm OS means that an function from a Palm OS shouldnt fill the current open term.

118 Pervasive ComputingContext-aware Computing- 117 I think that this is not a good idea because the program will lose its readability! Dynamic Scoping COP allows a form of dynamic scoping. Variables in COP can be called (set/get) from outside the block of code in which they are defined. By default, all internal variable can be bound (read/write) to external variables.

119 Pervasive ComputingContext-aware Computing- 118 COP Architecture (1/2) Objects that contain open terms Objects providing contextualized terms Objects that performs the matching between gaps and offering functions

120 Pervasive ComputingContext-aware Computing- 119 COP Architecture (2/2) Context aware object with migratable code Registry Context aware object with gaps register function 1 lookup matching function 2 3 migrate code 4 context awareness

121 Pervasive ComputingContext-aware Computing- 120 COP Architecture

122 Pervasive ComputingContext-aware Computing- 121 My Example (1/2) class Context { public: virtual int GetValue() = 0; }; class Temperature : public Context { public: int GetValue() { return 30; } };

123 Pervasive ComputingContext-aware Computing- 122 My Example (2/2) Object: using the context via common interface Context ctx; //get context prototype (Temperature) //download & fill context body … if (ctx.GetValue() > 25) printf(Today is hot!\n); else printf(Today is cold!\n);

124 Pervasive ComputingContext-aware Computing- 123 Outline Motivation Context and Context-aware Computing Context-aware Applications Developing Context-aware Applications Issues and Challenges Special Topics Summary

125 Pervasive ComputingContext-aware Computing- 124 Summary Strides in sensors, recognition, and wireless are enabling new context applications Still need to lower barriers to entry Lots of systems issues, even more people issues Lots of potential here for new kinds of interaction and applications


Download ppt "Context-aware Computing: Basic Concepts. Pervasive ComputingContext-aware Computing-1 Outline Motivation Context and Context-aware Computing Context-aware."

Similar presentations


Ads by Google