Middies: Passive middleware abstractionsfor pervasive computing environments
Middies: Passive middleware abstractionsfor pervasive computing environments
Daniel Cutting, Adam Hudson, Aaron Quigley
University of Sydney
Daniel Cutting, Adam Hudson, Aaron Quigley
University of Sydney
Pervasive computing
Middies
Data distribution
Pervasive computing
Middies
Data distribution
Pervasive computingPervasive computing
Small mobile devices + large fixed servers Wireline and wireless communication Application collaboration
chat, file store, video+audio matchmaking, games museum+gallery tours
Small mobile devices + large fixed servers Wireline and wireless communication Application collaboration
chat, file store, video+audio matchmaking, games museum+gallery tours
Art gallery scenarioArt gallery scenario
QuickTime™ and aTIFF (LZW) decompressor
are needed to see this picture.QuickTime™ and a
TIFF (LZW) decompressorare needed to see this picture.
QuickTime™ and aTIFF (LZW) decompressor
are needed to see this picture.
QuickTime™ and aTIFF (LZW) decompressor
are needed to see this picture.
QuickTime™ and aTIFF (LZW) decompressor
are needed to see this picture.QuickTime™ and a
TIFF (LZW) decompressorare needed to see this picture.
QuickTime™ and aTIFF (LZW) decompressor
are needed to see this picture.QuickTime™ and a
TIFF (LZW) decompressorare needed to see this picture.
Edward
BobCynthia
Gillian
Sunflowers, Van Gogh
QuickTime™ and aTIFF (LZW) decompressor
are needed to see this picture.
QuickTime™ and aTIFF (LZW) decompressor
are needed to see this picture.
Bob was here.
Bob was here.
MiddlewareMiddleware
Publish-subscribe: good for events
Tuple spaces: good for data persistence
Abstract sockets: good for streaming data
Publish-subscribe: good for events
Tuple spaces: good for data persistence
Abstract sockets: good for streaming data
Pervasive computing
Middies
Data distribution
Pervasive computing
Middies
Data distribution
MiddiesMiddies
Generalised middleware abstractions Features of tuple spaces and pub-sub Store persistent data, publish events and
handle streaming data
Generalised middleware abstractions Features of tuple spaces and pub-sub Store persistent data, publish events and
handle streaming data
SpacesSpaces
Logically centralised shared structures like a tuple space
Physically distributed over several devices
Logically centralised shared structures like a tuple space
Physically distributed over several devices
BlocksBlocks
Data chunks like tuples, events, objects
Stored by spaces permanently (like tuples) or forwarded to interested devices (like events)
Data chunks like tuples, events, objects
Stored by spaces permanently (like tuples) or forwarded to interested devices (like events)
MatchersMatchers
Compare two blocks Application-defined Can implement tuple matchers,
publish-subscribe subscription languages, etc.
Compare two blocks Application-defined Can implement tuple matchers,
publish-subscribe subscription languages, etc.
ReactorsReactors
Callbacks fired by spaces under certain conditions
Can implement events + abstract sockets Useful for pub-sub and streaming data
Callbacks fired by spaces under certain conditions
Can implement events + abstract sockets Useful for pub-sub and streaming data
Pervasive computing
Middies
Data distribution
Pervasive computing
Middies
Data distribution
Data distributionData distribution
How do we distribute blocks around the network?
Server? Single device stores all blocks
Redundant? Each device stores replicas of all blocks
Or…?
How do we distribute blocks around the network?
Server? Single device stores all blocks
Redundant? Each device stores replicas of all blocks
Or…?
Context-aided distributionContext-aided distribution
QuickTime™ and aTIFF (LZW) decompressor
are needed to see this picture.QuickTime™ and a
TIFF (LZW) decompressorare needed to see this picture.
Edward
QuickTime™ and aTIFF (LZW) decompressor
are needed to see this picture.
QuickTime™ and aTIFF (LZW) decompressor
are needed to see this picture.
Bob
QuickTime™ and aTIFF (LZW) decompressor
are needed to see this picture.QuickTime™ and a
TIFF (LZW) decompressorare needed to see this picture.
Cynthia
QuickTime™ and aTIFF (LZW) decompressor
are needed to see this picture.
QuickTime™ and aTIFF (LZW) decompressor
are needed to see this picture.
Gillian
Unimportant (0.2)Long-lived (0.7)Large size (0.9)
Group photoat Sunflowers
Group photoat Sunflowers
Group photoat Sunflowers
aa
Latitude
sleeping[10,30,2300]working[50,20,0900]v
Nearest situation vector is photophoto digest
Pervasive computing
Middies
Data distribution
Pervasive computing
Middies
Data distribution