User Tools

Site Tools


contextawaretuples

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
contextawaretuples [2010/10/20 16:57]
cfscholl
contextawaretuples [2010/10/20 17:48]
cfscholl
Line 1: Line 1:
-====== Context-Aware Tuples for The Ambient ====== 
-<note warning> 
- Under construction!! 
-</note> 
  
-Context-aware Tuples is a novel tuple space approach which augments the concept of a tuple with a context-rule to support the development of context-aware applications in a mobile environment.  
- 
-===== Motivation ===== 
-  
- 
-In tuple space approaches to context-aware mobile systems, the notion of context is defined by the presence or absence of certain tuples in the tuple space. Existing approaches define such presence either by collocation of devices holding the tuples or by replication of those tuples across all devices. However, this representation can lead to an erroneous perception of context. The former ties the perception of context to network connectivity which does not always yield the expected result. The latter causes context to be perceived even if a device has left that context a long time ago. The main reason for this is that the ability to read a tuple from the environment does not give any guarantees that the context information carried by the tuple is appropriate for the reader. This forces programmers to manually verify that a tuple is valid for the application’s context situation after the tuple is read. This manual verification leads to the violation of a large number of software engineering principles. 
- 
-===== Our Approach ===== 
- 
-Context-aware tuples provides an alternative approach that keeps the sim- plicity of the tuple space model where interactions and context information are defined by means of tuples, while allowing tuples themselves to determine the context in which a receiving application should be in order to perceive a tuple. 
-A context-aware tuple has an associated predicated called a context rule that determines when the receiving application is in the right context to perceive the tuple. Only when a tuple’s context rule can be satisfied by the context of the receiving application, the tuple can be perceived by the application. Applications can also be notified when the tuple can no longer be perceived. 
- 
-===== Context-Aware Tuples API ===== 
- 
- 
-^ Operation ^ Description ^ 
-| Tuple Creation |Tuple( Type, Field1, ...,  FieldN) | 
-^       Non Blocking Operations    || 
-| Read Tuple | Rdp( <tuple> ) | 
-| Read Tuples | Rdg( <tuple> ) | 
-| Tuple Insertion | inject: <tuple> inContext: <contextRule> timeout: <t> | 
-| Tuple insertion | Out( <tuple> ) | 
-^    Reactions on Tuples (Context Information)  || 
-| Tuple appearance | when: [template] read: [listener]  outOfContext: [listener];| 
-| Tuple removal | when: [template] in: [listener] outOfContext: [listener];| 
-| For all appearance | whenever: [template] read: [listener] outOfContext: [listener]; | 
-| For all removal | whenever: [template] in: [listener] outOfContext: [listener]; | 
- 
-===== Context-Aware Tuples Example ===== 
- 
-Consider a company building where each room is equipped with devices that act as context providers of different kinds of information. For example, information to help visitors to orient themselves in the building or information about the meeting schedule in a certain room. Employees and visitors are equipped with mobile devices which they use to plan meetings or to find their way through the building. Since each room is equipped with a context provider, a user located in one room will receive context information from a range of context providers. 
- 
-Programming such application where the context information is spread based on connectivity would lead to people far outside of the meeting room to perceive that they are located in the meeting room (the range of wireless connection doesn't stop at the boundaries of the room).  
- 
-==== Context Provider ==== 
- 
-<code> 
-def cat := makeCatSystem(); 
-cat.inject: Tuple(inRoom, meetingRoom) inContext: 
-[Tuple(location , ?loc), WithinBoundary(roomArea , ?loc)]; 
-</code> 
- 
- 
- 
-==== Context Consumer ==== 
- 
-<code> 
-def cat := makeCatSystem(); 
-cat.whenever: tuple(inRoom , ?name) read: 
-     display("You are in room " + name); 
-} outOfContext: 
-     display("You moved out of room " + name); 
-}; 
-</code> 
- 
-===== Further Reading ===== 
- 
-**Context-Aware Tuples for the Ambient**, C. Scholliers, E. Gonzalez Boix, W. De Meuter, T. D'Hondt. In Proceeding of 
-the 12th International Symposium on Distributed Objects, Middleware, and Applications (DOA'10), LNCS. Srpinger Verlang, October 2010. ([[ http://prog.vub.ac.be/Publications/2010/vub-tr-soft-10-19.pdf | pdf]]) 
contextawaretuples.txt · Last modified: 2010/10/20 17:48 by cfscholl