(1)Capita Selecta Capita Selecta Distributed Systems Distributed Systems Study of context-aware computing Study of context-aware computing Julien Pauty Julien Pauty Manuele Kirsch-Pinheiro Manuele Kirsch-Pinheiro (2)Outline Outline • Context-Aware applications • Defining context • Modelling context • Capturing context • Context aware middleware (3)Structure of the course Structure of the course • Format 1st session: content overview 2nd and 3rd sessions: Presentation by students on selected topics 4th session: Presentation of final project • Final project Design of a context-aware application Architecture definition (layers, components, technologies…) Decision making (each decision must be justified) No implementation (4)Structure of the course Structure of the course • Selected topics for the presentations Context models (2nd session) • Ontology X Object-Oriented models Context detection (2nd session) • Technologies for context detection (location, presence…) Context middleware (3rd session) • Take you choice (CODAMOS, MADAM, SOCAM…) • Format 2 groups Presentation rounds Discussions (5)Structure of the course Structure of the course • Evaluation 25% oral presentations 25% participation in the courses 50% design project • Site http://www.cs.kuleuven.be/~julien/capitaSe lecta/bibliography-searchable.html (6)Outline Outline Context-Aware applications • Defining context • Modelling context • Capturing context • Context aware middleware (7)Context-aware applications Context-aware applications • Why? User mobility • The user does something else • Leverage new technologies Support the user unobtrusively • What? Evolution of distributed and mobile Ubiquitous computing • “anytime, anywhere” (8)Context-aware applications Context-aware applications • Supplying the right information and service at the right moment • Tourism guides • Geonotes applications • Resources discovery • Media access / sharing • … • Application domains Tourism Health (9)Context-aware applications Context-aware applications GUIDE Cheverest 2002 Presenting information related to the current user’s location (10)Context-aware applications Context-aware applications Geonotes Electronic post-its associated to a given location (11)Context-aware applications Context-aware applications Context-aware messaging Health application Muñoz 2004 (12)Context-aware applications Context-aware applications AwareMedia and AwarePhone Bardram 2006 Location tag Colleagues list, their location and status (13)Outline Outline • Context-Aware applications Defining context • Modelling context • Capturing context • Context aware middleware (14)What is context? What is context? • What does the dictionary says? The text that surrounds a piece of text The events that are related to another events (historical context) • Context is relative The context of something • Context defines what is close Physically Temporally Semantically (15)Examples of context Examples of context information information • A person The people and objects that are nearby Surrounding shops • A web page The pages that have a link to this page • A network node The computer of the same sub-network The computers that cooperate (16)Context in computer science Context in computer science • No unique definition • Always the context of something Usually the user • Commonly accepted definition The information that defines the current situation of the user • Location • The device he uses • Speed • Preferences • … (17)Some definitions Some definitions • Schilit 1994: “the location of use, the collection of nearby people, hosts, and accessible devices, as well as to changes to such things over time” Three important aspects: where you are, who you are with, and what resources are nearby. Context encompasses more than just the user’s location. Context includes lighting, noise level, network connectivity, communication costs, communication bandwidth, and even the social situation (are you with your manager or with a co- worker?) (18)Some definitions Some definitions • Moran and Dourish 2001: context refers to the physical and social situation in which computational devices are embedded • Dey 2001: “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 the applications themselves” (19)What is context then? What is context then? • Information related to the user… • …that is useful to Provide personalized service and content Provide implicit input to the application • Context is detected automatically and used as a parameter Improve the service provided by an application (20)What is context then? What is context then? • Chen and Kotz’s Taxonomy: Computing context • Screen orientation and resolution • Memory • Battery • Network information… Environmental context • Location • Nearby objects • Illumination, temperature, noisy… User context • Personal data • Roles (21)Location Location • Very important information Location-aware computing • Low level location Coordinates Used to get higher level location Not very useful in itself • High level location The address The office number Useful for applications (22)Time Time • Current time Guessing the user activity • 1pm, maybe the user is having lunch Using the agenda gives additional information • The user has a meeting => put his phone in silent mode • Past events Logging user activities to know what the user usually does at that moment Past context • What the user will do? The user is going to take the train => load the last news on his pda and some movie trailers that match his preferences (23)Device & other concepts Device & other concepts • Device Memory Battery Screen size, resolution, orientation Audio & video capabilities • Network Bandwidth • User's task • ... (24)User preferences User preferences • Is it context ? Can be view as the location of the user on the "thematic" dimension The user like action movie • Bridget Jones is far from his location • Die Hard 4 is close to his location • Find information / content the user may like • Adapt the content / interface of the application (25)Outline Outline • Context-Aware applications • Defining context Modelling context • Capturing context • Context aware middleware (26)Context model Context model • How to represent context? • Modelling approaches Key/Value pairs Object oriented Ontology • Other approaches Conceptual graphs (27)Key/Value pairs Key/Value pairs • Simplest representation • Key represent the name of the property • Examples location: floor 1 friends: [Sam, Lisa, Pat] preferedMovies: Romance (28)Object oriented Object oriented • Rely on the language semantics to model context • Example Location is a base class Floor and Address are subclasses of Location • Direct mapping between the context representation and its implementation • Simplify implementation • Offer more structuration possibilities than key/values pairs (29)Example Example Kirsch Pinheiro 2004 (30)Example Example Bardram 2005 (JCAF model ) (31)Ontology Ontology • Knowledge representation Classes and relations Vehicule, Car and Bus are classes "isA" is a relation that link these classes • Rules Infer new knowledge for existing knowledge If user is in Room 2 and Room 2 is on floor A then user is also on floor A Vehicle Car Bus isA isA Wheel has has Boat isA (32)Example Example Preuveneers 2004 (33)Representing context with Representing context with ontologies ontologies • Most complete modelling approach Can model almost anything • Reasoning Apply rules to infer new knowledge Used to answer queries Very expensive and requires a server (34)Outline Outline • Context-Aware applications • Defining context • Modelling context Capturing context • Context aware middleware (35)Capturing context Capturing context • How to find the context of a user ? Physical sensors Logical sensors Personal information Reasoning (36)Sensors Sensors • Location GPS WIFI triangulation Ultra-wide band technology GSM fingerprinting Ultra sound beacons • Light Automatic contrast adjustment • Accelerometers Is the user running, walking, static… • Body sensors Blood pressure, temperature • Temperature • … (37)GPS GPS • How does it work? It is easy to find… (38)WiFi triangulation WiFi triangulation • Distance between two node Get it from strength of the received signal • Must know location of reference nodes • Triangulation with d1, d2, d3 to get actual location user d1 d2 d3 Com. range (39)GSM location GSM location • Using the location of the cell GSM always connected to an antenna Use the location of this antenna as the user location • Not precise, but better than no location (40)Finger printing Finger printing • Fingerprint The network parameters at a given location • Signal strength • Noise level • Store fingerprint at different location Create a database associating a fingerprint and a location • To get user location Get the fingerprint at the current location Find in the DB the fingerprints that are most similar to this one Estimate location based on these (41)Finger printing Finger printing • Advantages Accuracy • Up to 5 meters Works on GSM, PDA… • No additional location device needed Leverage existing network infrastructure • Drawback If the network infrastructure changes the DB must be recreated Must create the DB • Available for wireless networks GSM, WiFi (42)Other location technology Other location technology • Ultra wide band New wireless communication technology Location via triangulation VERY accurate: 5 cm Indoor environments • Ultra sound beacons Distribute ultra sound emitter in the environment Location of beacon source is known Distance from beacon • Signal strength (43)Personal Information Personal Information • User profile / preferences Adapt content to user preferences Adapt behaviour of applications to user preferences • Agenda What the user is doing Where he is With who he is (44)Reasoning Reasoning • Put together all the previous information Find new information via rules • Can be done with an ontology The information is structured according to the ontology A standard reasoning system is used • Can be hard coded in the application Easier for simple cases Difficult to generalize if the application must deal with new kinds of (45)Outline Outline • Context-Aware applications • Defining context • Modelling context • Capturing context Context aware middleware (46)Putting it altogether Putting it altogether Location sensor Agenda Profile Context model Data Applications Reasoning (47)How to create an application How to create an application • Define the service given to the user • Choose a modelling technique • Model users context • Choose how context will be captured • Program applications (48)Context aware middleware Context aware middleware • Provide a set of services to ease application programming Context storage Context reasoning Interface with systems for context capture Network services (49)Distributed middleware Distributed middleware • Middleware is at least deployed on a server Non distributed solution • Can be deployed on all the hosts Peer to peer setting • Mixed situations One or several global servers Peers that interact each other (50)Why do we need distribution? Why do we need distribution? • The user is mobile and wants to receive a service on his personal device • Services may be provided by remote servers Remote service access • The user can also interact with close people Peer to peer • Context can be stored on user devices Applications run on a server need the user context Protect user privacy (51)Applications needing Applications needing distribution distribution • Accessing to remote content/service • Leveraging surrounding resources Move application display from the PDA to a close wall display • Contacting a user on the field Message notification Setting up an appointment • Discovering devices in the user neighbourhood "I want to print this on the closest printer" (52)Examples of middleware Examples of middleware Dey 2001 (Context toolkit) (53)Examples of middleware Examples of middleware Gu 2004 (SOCAM) (54)Examples of middleware Examples of middleware Rocha 2006 (MoCA) (55)Examples Examples of middleware of middleware Preuveneers 2007 (56)Examples of middleware Examples of middleware Floch 2006 (MADAM) Geihs 2006 (57)Work for the next sections Work for the next sections • Subject: Context models Group A: Object-oriented models Group B: Ontology models Sources: bibliography + Scholar Google 15min presentation + discussion • Subject: Context acquisition Group A Group B Sources: Google 15min presentation + discussion (58)Work for the next sections Work for the next sections • Subject: Middleware Group A: CODAMOS (suggestion) Group B: SOCAM (suggestion) Sources: bibliography + Google 30min presentation + discussion • Subject: Design project Group A Group B Detailed design project Chosen application + design details Choices must be justified! 30min presentation + discussion Read more