PerPos: A Translucent Positioning Middleware Supporting Adaptation of Internal Positioning Processes
Descripción
AARHUS UNIVERSITY
PerPos: A Translucent Positioning Middleware Supporting Adaptation of Internal Positioning Processes Jakob Langdal, Kari R. Schougaard, Mikkel B. Kjærgaard, and Thomas Toftkjær
pRÆSEN TATION
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Overview physical position
Middleware
Appl
x,y,z sensor digital position
x',y',z '
x'',y'',z'' abstracted position
for all clients in zone { ...
› PerPos: Middleware for positioning
2
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Overview
?
run physical position
Middleware
Appl
x,y,z sensor digital position
x',y',z '
x'',y'',z'' abstracted position
for all clients in zone { ...
› PerPos: Middleware for positioning
3
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Overview
?
run physical position
Middleware
Appl
x,y,z sensor digital position
x',y',z '
x'',y'',z'' abstracted position
for all clients in zone { ...
› PerPos: Middleware for positioning › Middleware support of seamful development: › Imperfections in the digital representation of the physical › Details abstracted away in the middleware
4
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Overview
!
run physical position
Middleware
Appl
sensor
x,y,z sensor digital position
x',y',z '
x'',y'',z'' abstracted position
for all clients in zone { ...
› PerPos: Middleware for positioning › Middleware support of seamful development: › Imperfections in the digital representation of the physical › Details abstracted away in the middleware
› Translucent middleware aiming for this support › Model of ongoing processing › Support of inspection and adaptation based on this model
5
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
PerPos: Middleware for Pervasive Positioning › Concrete middleware is developed for positioning › Positions are an important context source in ubiquitous and pervasive computing Raw data (local coordinate system)
Positions (RoomID)
Middleware WiFisensor
WiFi
Resolver Fusion
GPS
GPS Raw Data (Strings)
Parser
Application
Interpretor
Measurements (NMEA measurements)
Positions (WGS84)
Positions (WGS84)
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Defining the Problem Area: Seams
Host A
Unstable connection
Host B
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Defining the Problem Area: Seams
Host A
Unstable connection
Host B
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Defining the Problem Area: Seams › Seams occur where system parts connect imperfectly › Technological limitations › Sensor inaccuracies
› Software imposed limitations › Traditional bugs and errors › Abstractions used for information hiding
Host A
Unstable connection
Host B
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Defining the Problem Area: Seams › Seams occur where system parts connect imperfectly › Technological limitations › Sensor inaccuracies
› Software imposed limitations › Traditional bugs and errors › Abstractions used for information hiding
Host A
Unstable connection
› Hide the problem using coping tactics › Resent › Find alternative route › Etc…
Host B
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Defining the Problem Area: Seams › Seams occur where system parts connect imperfectly › Technological limitations › Sensor inaccuracies
› Software imposed limitations › Traditional bugs and errors › Abstractions used for information hiding
Host A
Unstable connection
› Hide the problem using coping tactics › Resent › Find alternative route › Etc…
Host B
› Propagate the problem to developer or user
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Seams are Visible at Application Level › Systems that interact with the physical world can never be perfect › Breakdowns will occur › Quality parameters will be visible at the application level
› The system may behave differently than expected › Quirks in sensors or special circumstances may not be expected from the application developer
› Middleware should support developers in discovering what causes the unexpected behavior › Middleware should make the seams available 12
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Seams in Positioning Domain: Example 1 WiFi
GPS
› Inspect the middleware to find out why positions are more inaccurate for a short while after entering a building?
13
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Seams in Positioning Domain: Example 1 WiFi
GPS
› Inspect the middleware to find out why positions are more inaccurate for a short while after entering a building? › Make GPS specific detail available at a higher level 14
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Seams in Positioning Domain: Example 1 WiFi
GPS
› Inspect the middleware to find out why positions are more inaccurate for a short while after entering a building? › Make GPS specific detail available at a higher level › Adapt position processing component to filter on the basis of this detail
15
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Seams in Positioning Domain: Example 2 › An application depending on GPS positions › The accuracy of the GPS positions is not high enough › We want to take advantage of knowledge of the location and the movements specific for the application. › Add a component for probabilistic tracking › Add a positioning component without changing high-level API › Access low level details › Make details available at a later stage in the positioning process
16
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Seams in Positioning Domain: Example 2 › An application depending on GPS positions › The accuracy of the GPS positions is not high enough › We want to take advantage of knowledge of the location and the movements specific for the application. › Add a component for probabilistic tracking › Add a positioning component without changing high-level API › Access low level details › Make details available at a later stage in the positioning process
› In the domain of ubiquitous and pervasive computing there is always some tweaking
› Exploiting specific details of a technology › Customizing the application for the specific deployment 17
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
PerPos: A translucent middleware › Challenge: middleware support of seamful development › Solution: translucent middleware › Expose a model of the running middleware › Letting the bones show (Evans 2004)
18
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
PerPos: A translucent middleware › Challenge: middleware support of seamful development › Solution: translucent middleware › Expose a model of the running middleware › Letting the bones show (Evans 2004) !
› Focus: enabling the application developers
run physical position
Middleware
Appl
sensor
x,y,z sensor digital position
x',y',z '
x'',y'',z'' abstracted position
for all clients in zone { ...
19
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Translucency › Transparency › Hide complexity › Shield developer aiming for ease of use
› Openness › Instead of making an “intelligent” user interface › Empower the application developer
› Translucency › Combine transparency and insight
20
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Translucency in PerPos › Model-based reification of the dynamics of the middleware: a processing graph › The model is the basis for inspection and adaptation Raw data (local coordinate system)
Positions (RoomID)
Middleware WiFisensor
WiFi
Resolver Fusion
GPS
GPS Raw Data (Strings)
Parser
Application
Interpretor
Measurements (NMEA measurements)
Positions (WGS84)
Positions (WGS84)
21
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Translucency in PerPos › Model-based reification of the dynamics of the middleware: a processing graph › The model is the basis for inspection and adaptation Sensor seams › Inaccuracies › Errors
Raw data (local coordinate system)
Positions (RoomID)
Middleware WiFisensor
WiFi
Resolver Fusion
GPS
GPS Raw Data (Strings)
Parser
Application
Interpretor
Measurements (NMEA measurements)
Positions (WGS84)
Positions (WGS84)
22
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Translucency in PerPos › Model-based reification of the dynamics of the middleware: a processing graph › The model is the basis for inspection Abstraction of and adaptation Sensor seams › Inaccuracies › Errors
low-level concepts
Raw data (local coordinate system)
Positions (RoomID)
Middleware WiFisensor
WiFi
Resolver Fusion
GPS
GPS Raw Data (Strings)
Parser
Application
Interpretor
Measurements (NMEA measurements)
Positions (WGS84)
Positions (WGS84)
23
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Translucency in PerPos – more details › Abstract views of the positioning process
Application
WiFi GPS
Parser
Reification
Base system
Resolver Interpreter
Particle Filter
re
ctu tru S ess ayer c o L Pr
24
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Translucency in PerPos – more details › Abstract views of the positioning process
WiFi
Channel Channel
GPS WiFi
Resolver
Reification GPS
Parser
Reification
Base system
Interpreter
l ne
Particle Filter
Particle Filter
an Ch
ne
Application
re
l
Application
n ha C s ces ayer o r L P
ctu tru S ess ayer c o L Pr
25
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Translucency in PerPos – more details › Abstract views of the positioning process
le rtic Pa lter Fi
WiFi
Room ID
GPS
Reification
Channel Channel
GPS WiFi
Resolver
Reification GPS
Parser
Reification
Base system
Interpreter
ing n o i sit r Po Laye
Position Likelihood
WiFi
on
siti Po
Particle Filter
Particle Filter
el nn a Ch
ne
Application
re
l
Application
n ha C s ces ayer o r L P
ctu tru S ess ayer c o L Pr
26
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Translucency in PerPos – more details › Abstract views of the positioning process › Allow access to details in a designed manner Room ID le rtic Pa lter Fi
WiFi
› Understand process › Solve problems GPS
Reification
Channel Channel
GPS WiFi
Resolver
Reification GPS
Parser
Reification
Base system
Interpreter
ing n o i sit r Po Laye
Position Likelihood
WiFi
on
siti Po
Particle Filter
Particle Filter
el nn a Ch
ne
Application
re
l
Application
n ha C s ces ayer o r L P
ctu tru S ess ayer c o L Pr
27
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Comparison to Generic Reification Middleware
Sensor Sensor Sensor Sensor Sensor Sensor Sensor Sensor Sensor Resource Resource Resource
Sensing
Meta-Space Processing Fusion Processing Fusion Processing Fusion Processing Processing Processing Processing Processing Processing
Position Processing
Sensor
Processing
Sensor
Processing
Sensor
Processing
Fusion
Activity Activity Activity Location Location Location
High-level Activity Location
Resource Awareness
28
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Comparison to Generic Reification Middleware
Sensor Sensor Sensor Sensor Sensor Sensor Sensor Sensor Sensor Resource Resource Resource
Sensing
Meta-Space Processing Fusion Processing Fusion Processing Fusion Processing Processing Processing Processing Processing Processing
Position Processing
Sensor
Processing
Sensor
Processing
Sensor
Processing
Resource Awareness
Fusion
Activity Activity Activity Location Location Location
Middleware Meta-Model
High-level
Sensing
Position Processing
Activity
Sensor
Processing
Location
Sensor
Processing
Sensor
Processing
Fusion
High-level Activity Location
Resource Awareness
› Domain specific reification to one meta model › Retaining the design intended by the middleware developer › A good abstraction makes the system more understandable 29
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Process structure layer › Inspect the processing › Reconfigure the processing components
Application
WiFi GPS
Parser
Resolver Interpreter
Particle Filter
ure
uct Str ess ayer c o L Pr
30
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Process structure layer › Inspect the processing › Reconfigure the processing components
Application
WiFi GPS
Parser
Resolver Interpreter
Particle Filter
ure
uct Str ess ayer c o L Pr
Input
Component
Output
31
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Process structure layer › Inspect the processing › Reconfigure the processing components › Adapt a processing component › Define a “Feature” › Interception + add data › New interfaces Provided Feature Application
WiFi GPS
Parser
Resolver Interpreter
Particle Filter
ure
uct Str ess ayer c o L Pr
Feature Data
Feature Input
Component
Output
32
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Process channel layer › Inspect the source–to-sink flow
Application
WiFi GPS
Channel Channel
l ne
Particle Filter
an Ch
ha sC ces ayer o r L P
el
nn
33
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Process channel layer › Inspect the source–to-sink flow › Adaptation Channel
Application
WiFi GPS
Channel Channel
l ne
Particle Filter
an Ch
ha sC ces ayer o r L P
el
nn
Input
Output Component
...
Component
Component
34
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Process channel layer › Inspect the source–to-sink flow › Adaptation Channel
Provided Feature
Feature Feature Feature Application
WiFi GPS
Channel Channel
l ne
Particle Filter
an Ch
ha sC ces ayer o r L P
el
nn
Input
Output Component
...
Component
Component
35
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Process channel layer › Inspect the source–to-sink flow › Adaptation Channel
Provided Feature
Feature Feature Feature Application
WiFi GPS
l ne
Channel
Particle Filter
Channel
an Ch
ha sC ces ayer o r L P
el
nn
Input
Output Component
...
Component
Component
› Time keeping functionality L2
Interpreter
L1
Parser
L0
GPS
WGS841, 1, 1-2 NMEA1, 1, 1-2
String1, 1, N/A
Time
String2, 2, N/A
NMEA2, 2, 3-5
String3, 3, N/A
String4, 4, N/A
String5, 5, N/A
36
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Positioning Layer
le rtic Pa ter Fil
WiFi
Room ID
GPS
Position Likelihood
Po
on
siti
ing on siti r Po Laye
› Transparent use of positions › Use of custom made interfaces from channel features
37
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Adding Probability-Based Data Refinement
Particle Filter
GPS
GPS
Parser
Interpreter
Particle Filter
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Adding Probability-Based Data Refinement
Particle Filter
GPS
HDOP GPS
Parser
Interpreter
parser.produce(nmeaSenctence.HDOP)
Particle Filter
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Adding Probability-Based Data Refinement apply(dataTree) { // Method is part of Channel Feature specification for component,nmeaSentence : dataTree.getData(NEMASentence.class){ hdopFeature = component.getFeature(HDOP.class) hdop = hdopFeature.getHDOP() hdopList.add(hdop) } } getLikelihood(particle){ // Method is defined in custom interface Likelihood return complexCalculation(hdopList, particle) }
Likelihood GPS
HDOP GPS
Parser
Interpreter
parser.produce(nmeaSenctence.HDOP)
Particle Filter
Particle Filter
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Adding Probability-Based Data Refinement apply(dataTree) { // Method is part of Channel Feature specification for component,nmeaSentence : dataTree.getData(NEMASentence.class){ hdopFeature = component.getFeature(HDOP.class) hdop = hdopFeature.getHDOP() hdopList.add(hdop) } } getLikelihood(particle){ // Method is defined in custom interface Likelihood return complexCalculation(hdopList, particle) }
GPS GPS GPS
GPS GPS GPS
Likelihood
HDOP HDOP Parser Parser Parser
Interpreter Interpreter Interpreter
parser.produce(nmeaSenctence.HDOP) parser.produce(nmeaSenctence.HDOP)
Particle Particle Particle Filter Filter Filter
Particle Particle Particle Filter Filter Filter
consume(inputChannel, position) { likelihoodFeature = inputChannel.getFeature (position, Likelihood.class) for each particle { likelihood = likelihoodFeature.getLikelihood(particle) particle.updateProbability(likelihood) } }
4
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Adding power conservation strategy
Mobile Device GPS
Sensor Wrapper
Parser
Interpreter
Application
42
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Adding power conservation strategy
Settings Mobile Device GPS
Power Strategy Sensor Wrapper
Parser
Interpreter
Application
43
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Adding power conservation strategy
EnTracked Settings
EnTracked
Settings Mobile Device GPS
Power Strategy Sensor Wrapper
Positions
Parser
Interpreter
Application
44
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Summary › PerPos a translucent positioning middleware › Based on a domain specific reification of the base system
› PerPos supports developers in working with seams › Positioning process is modeled › High-level and low-level interactions with positioning process › Allow adaptation of what “high-level” means
› Questions? › Acknowledgements !
!" $"',*-&$./&01-*'!!!!!!!!!!!!!!!!!!!!!!!! ""#$%&!%'()*#&(+*+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
45
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Summary › PerPos a translucent positioning middleware › Based on a domain specific reification of the base system
› PerPos supports developers in working with seams › Positioning process is modeled › High-level and low-level interactions with positioning process › Allow adaptation of what “high-level” means
› Questions? › Acknowledgements !
!" $"',*-&$./&01-*'!!!!!!!!!!!!!!!!!!!!!!!! ""#$%&!%'()*#&(+*+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
46
AARHUS UNIVERSITY
Kari Rye Schougaard Postdoc
Summary › PerPos a translucent positioning middleware › Based on a domain specific reification of the base system
› PerPos supports developers in working with seams › Positioning process is modeled › High-level and low-level interactions with positioning process › Allow adaptation of what “high-level” means
› Questions? › Acknowledgements !
!" $"',*-&$./&01-*'!!!!!!!!!!!!!!!!!!!!!!!! ""#$%&!%'()*#&(+*+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
47
Lihat lebih banyak...
Comentarios