munin: a peer-to-peer middleware forubiquitous analytics and visualization spaces
TRANSCRIPT
1
A Peer-to-Peer Middleware forUbiquitous Analytics and Visualization
Spaces
Sriram Karthik Badam, Eli Fisher, Niklas Elmqvist
Munin
TVCG-invited at IEEE VIS 2014
2
“The most profound technologies are those that disappear. They weave themselves into the fabric of everyday life until they are indistinguishable from it.”… Mark Weiser
Ubiquitous Computing
3
Co-located Collaborative Visualization
Large multi-screen display
Tabletop computer
Interactive Tree Comparison for co-located collaborative visualization (Isenberg and Carpendale, 2007)Hugin (Kim et al., 2010)Lark (Tobiasz et al., 2011)
5
Ubiquitous Analytics
Massive heterogeneous data
Ubiquitous analytics: Interacting with big data anywhere, anytime (Elmqvist and Irani, 2013)
6
Emergency Situation
Heterogeneous Information sourcesMultiple analysts/ stakeholders
Ensemble of devices
7
Interacting with data during emergency
Let’s see how the spread of this fire is different from two years ago.
Aha!! that’s why it
happened! Siri,
capture screenshot.
Sam, look at this!
Wait, Linda, let me
visualize the sensor data here!
8
Design
Supporting CollaborationMultiple and Networked Devices
Post-WIMP interactionWIMP – Windows, Icons, Menus, Pointers Supporting Visualization
9
Munin
• Peer-to-peer infrastructure
• Uses three-layered architecture
• Shared space
• Service
• Visualization
• Java based
• Middleware framework for ubiquitous analytics
10
Munin
Shared state
Display service
Display service
Input service Input
service
Munin Peer Munin Peer Munin Peer
IP MulticastIP MulticastIP Multicast
Services
Visualization Layer
11
Shared state
Associative memory for sharing objects
Shared event space
P2P
JGroups framework for setting up and communicating through a P2P infrastructure
//create peerPeer peer = new Peer();
//Get access to shared spaceSharedSpace sharedState = peer.getSpace();state.addObjectListener(new mediaSpaceListener());
//Create a Shared Object Listenerpublic class mediaSpaceListener implements SharedSpaceObjectListener {public void objectCreated(SharedObject so) {
add(so);so.addChangeListener(new mediaChangeListener());so.commit();
}
public void objectDeleted(SharedObject so) {}
}
12
Services
Display service
Input service
Shared stateShared memory
SharedEvent
Display service
Touch event
s
Shared
objects
P2P connection (local subnet)
public class DisplayService implements Service, SharedSpaceEventListener {
//Register service with the shared space to receive shared events
public DisplayService (Platform platform, Surface surface) {platform.getSpace().addEventListener(this);
}
//Shared Event Handlerpublic void eventReceived(SharedEvent event) {}
}
13
Connected over Munin
Visualization Layer
U V44.96804644.3332833.75578733.84484344.9205744.24030944.96804144.33330433.755783
-94.420307-89.132008-116.35999-116.54911-93.44786-91.493619-94.419696-89.132027-116.36006
Draw map
Draw circles at locations
(u1, v1), (u5, v5) ….
Draw image
Draw heat map
Draw rectangles at locations
(u3, v3), (u7, v7), (u8, v8)
Shared state Services
Visualization layer
Piccolo framework for visualization on desktop platforms
16
Collaborative Visual Search
Shared state
Touch input service for pan and zoom
Touch input service for pan and zoom
Services
Shared touch events
Java2D display service for the view
Android display service for the view
SVG rendering service for shapes
Android SVG rendering service
for shapes
OpenStreetMap renderer
Android OpenStreetMap
renderer
Real estate dataset
Visualization layer
Distributed scene graph
Draw mapDraw
markers for
locations
Draw mapDraw
markers for
locations
17
Collaborative Visual Search
Public view(shared)
Private viewBranch-Explore-Merge: McGrath et al., 2012
19
Distributed PolyZoomShared state
Touch input service to select zoom
regions
Services
Shared touch events
JavaFX display serviceAndroid display
service for the view Google map renderer for JavaScriptGoogle map
renderer for Android Visualization
layer
Draw map
Distributed scene graph
Draw markers
Draw tree-layout with
edgesDraw
maps at each node
20
Distributed Media Player
Services
Streaming display service (VLCJ)
Player state (play/pause)
Control events (FF/rewind)
Shared state
Android video player
Android display service
Input service
21
Shortcomings
Peer-to-Peer Architecture Service-oriented model
Requires:• Conflict and consistency
management at each peer.• Exclusive handling logic at
each peer.
Requires:• Redevelopment of simple
services for each platform.• Platform dependency
But:• More scalable, fault-tolerant, and
secure. • Data-driven and service-oriented
models for easier development.
22
PolyChrome
Presenting at ACM ITS 2014• Completely web-based• Support for JS visualization frameworks• Hybrid architecture
24
Acknowledgment
S. Karthik [email protected]
Questions?
IIS-1253863
Munin source
https://github.com/karthikbadam/Munin