Title: The Contextor Infrastructure for Context-Aware Computing
1The Contextor Infrastructure for Context-Aware
Computing
- Gaëtan Rey, Joëlle Coutaz
- Engineering HCI research group
- CLIPS IMAG, Grenoble, France
2I-AM
3Outline
- Synthesis of the state of the art (architectural
aspects) - The contextor infrastructure
4Synthesis of the state of the art
- No consensual definition for the notion of
context - A clear need for infrastructures that support the
development of context-aware computing - Like conventional systems heterogeneity,
distribution, interoperability, - Unlike conventional systems multi-scaling,
spontaneity,
5Architecture
Sensing numeric observables
6Architecture
Transformation symbolic observables
Sensing numeric observables
7Architecture
Situation and context identification
Transformation symbolic observables
Sensing numeric observables
8Architecture
Context adapter
Situation and context identification
Transformation symbolic observables
Sensing numeric observables
9Architecture
Context adapter
Situation and context identification
Privacy / Security / Trust
Transformation symbolic observables
Sensing numeric observables
10Architecture
Context adapter
Situation and context identification
Privacy / Security / Trust
History
Transformation symbolic observables
Sensing numeric observables
11Architecture
Context adapter
Situation and context identification
Privacy / Security / Trust
Discovery / Recovery
History
Transformation symbolic observables
Sensing numeric observables
12Architecture
- For each layer
- Services are self-descriptive (meta-interface
meta-data) - Services are self-configurable
- Services are local to global (islands of
interaction and existence of servers) - Services support multiple communication
mechanisms (publish-subscribe, request-answer) - A uniform computational model (process/data
oriented) and architectural style
13Architecture
One style does not fit all A set of interoperable
infrastructures
14The contextor infrastructure
Context adapter
Situation and context identification
Privacy / Security / Trust
Discovery / Recovery
History
Transformation symbolic observables
Sensing numeric observables
15Outline
- Contextor
- Discovery
- Examples
16Contextor Software abstraction
- Functional core typed communication channels
Control In
Data In
Data Out
Meta Data Out
Meta Data In
Control Out
17Contextor Software abstraction
- Functional core
- Transformation Data (Type X) Meta Data è Data
(Type Y) Meta Data - Meta Data uncertainty, accuracy, latency
Control In
Data In
Data Out
Transformation
Meta Data Out
Meta Data In
Control Out
18Contextor Software abstraction
- Functional core
- Transformation Data (Type X) Meta Data è Data
(Type Y) Meta Data - Control behavior adaptation
- supports reconfigurability
Control In
Data In
Data Out
Transformation
Meta Data Out
Meta Data In
Control Out
19Dynamic Composition of Contextors
Application 1
Application 2
Data and Meta Data Flow
20Dynamic Composition of Contextors
Application 1
Application 2
Data and Meta Data Flow
Controls Flow
21Life Cycle of a Contextor
Creation, conception of contextor
22Life Cycle of a Contextor
Creation, conception of contextor
Launching the contextor from its configuration
file
23Life Cycle of a Contextor
Creation, conception of contextor
Looking for Source Contextors Send request for
service on the network
Launching the contextor from its configuration
file
24Life Cycle of a Contextor
Creation, conception of contextor
Looking for Source Contextors Send request for
service on the network
Launching the contextor from its configuration
file
Subscribing to Source Contextors
25Life Cycle of a Contextor
Creation, conception of contextor
Looking for Source Contextors Send request for
service on the network
Launching the contextor from its configuration
file
Subscribing to Source Contextors
Lauching the functional Core Waiting for Sink
clients
26Life Cycle of a Contextor
Creation, conception of contextor
Looking for Source Contextors Send request for
service on the network
Launching the contextor from its configuration
file
New sink Client connection
Subscribing to Source Contextors
First sink Client Connection
Last sink Client Disconnection
Lauching the functional Core Waiting for Sink
clients
27Life Cycle of a Contextor
Creation, conception of contextor
Looking for Source Contextors Send request for
service on the network
Launching the contextor from its configuration
file
New sink Client connection
Stop Command
Subscribing to Source Contextors
First sink Client Connection
Last sink Client Disconnection
Lauching the functional Core Waiting for Sink
clients
28Outline
- Contextor
- Discovery Scalability
- Examples
29P2P Network Model
- Both a client and a server
- Improves the autonomy of contextors
30P2P Network Model
- Both a client and a server
- Improves the autonomy of contextors
- Fully Distributed Architecture
- Supports the arrival/departure of contextors
31P2P Network Model
- Both a client and a server
- Improves the autonomy of contextors
- Fully Distributed Architecture
- Supports the arrival/departure of contextors
- Local Discovery
- Requests use UDP multicast
32P2P Network Model
- Both a client and a server
- Improves the autonomy of contextors
- Fully Distributed Architecture
- Supports the arrival/departure of contextors
- Local Discovery
- Requests use UDP multicast
- Distant Discovery
- Hybrid Model (GloSS)
- Use of "repeaters (model based on geographical
localization)
33Outline
- Contextor
- Discovery
- Examples
34Example 1 Human activities Observatory
- A dynamic Web page displays users level of
activity
35Example 1 Human activities Observatory
Web Pages
Federation of Contextors
36Example 1 Human activities Observatory
Observed User
Keyboard Activity Contextor
Displays Users Activities
Servlet
Local Activity Contextor
Mouse Activity Contextor
Adapter
Local information Contextor
37Example 1 Human activities Observatory
-
- public class ActivityObservatory extends
HttpServlet - private ActivityAdapter myAdapter
-
- public void init()
- myAdapter new ActivityAdapter()
-
-
-
- public void doGet(HttpServletRequest request,
HttpServletResponse response) throws IOException,
ServletException -
- for (int i0 ilt myAdapter.getDataInConnections(
"activity") i) this.displayInformation(
myAdapter.getData("activity",i) ) -
-
-
-
38Example 1 Observatory of Activity
-
- public class ActivityMouseContextor extends
ElementaryContextor - private Process mp null
- private String data ""
-
- public void init()
-
- mp Runtime.getRuntime().exec("MouseSensor.exe"
) -
-
-
- public void functionalCore()
-
- data this.mp.read()
-
- this.setDataOutValue(data.getBytes())
-
-
-
39Example 2 I-AM
- C. Lachenal et N. Barralon Works
- A software infrastructure that supports the
dynamic composition of heterogeneous interaction
resources to form a unified space. - In this space, users can distribute and migrate
whole or parts of user interfaces as if they were
handled by a unique computer.
40Example 2 I-AM
- C. Lachenal et N. Barralon Works
- 2 types of contextors
- Surfaces Contextors
- Indicate the presence of each surface ( display)
- Indicate characteristics (size, ) of each surface
41Example 2 I-AM
- C. Lachenal et N. Barralon Works
- 2 types of contextors
- Surfaces Contextors
- Link Contextors
- Encapsulate a physical sensor
- Indicate links (spatial relations) between each
surfaces
PIC Microprocessor
IRDA transmitter / receiver
IRDA manager
USB connector
42Example 2 I-AM
- C. Lachenal et N. Barralon Works
- 2 types of contextors
- Surfaces Contextors
- Link Contextors
- Encapsulate a physical sensor (currently
simulated) - Indicate links (spatial relations) between each
surfaces
43Conclusion
- Role of Contextors
- Capture and computes contextual information
- Distribution (local and global)
44Conclusion
- Role of Contextors
- Capture and computes contextual information
- Distribution (local and global)
- Middleware
- Distributed
- Dynamic
- Autonomous
45Perspectives
- Evaluation of architecture
- Latency
- Scalability
- Reconfigurability
46Perspectives
- Evaluation of architecture
- Latency
- Scalability
- Reconfigurability
- Implementation of examples
- Mobility (connections / disconnections)
- Distribution (repeaters)
47Perspectives
- Evaluation of architecture
- Latency
- Scalability
- Reconfigurability
- Implementation of examples
- Mobility (connections / disconnections)
- Distribution (repeaters)
- Contextors Upgrade
- History of the data
48The Contextor Infrastructure for Context-Aware
Computing
- Gaëtan Rey, Joëlle Coutaz
- Engineering HCI research group
- CLIPS IMAG, Grenoble, France
49Data et Meta DataXML and XML Schemas
- Benefits
- Portability
- Extensibility
- Uses
- Initialization using configuration files in XML
- (name, group, Data In and Data Out class )
- Communication based on XML messages