munin: a peer-to-peer middleware forubiquitous analytics and visualization spaces

24
A Peer-to-Peer Middleware for Ubiquitous Analytics and Visualization Spaces Sriram Karthik Badam , Eli Fisher, Niklas Elmqvist Munin TVCG-invited at IEEE VIS 2014 [email protected] 1

Upload: niklas-elmqvist

Post on 18-Aug-2015

23 views

Category:

Technology


0 download

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

[email protected]

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)

4

Mobile Visualization

Visualizing information on mobile devices (Chittaro, 2006)

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

14

Visualization Layer

Dataset on the shared state layer

Display Service

Input and Display Services

15

Application Examples

Collaborative Visual Search

Distributed PolyZoom

Distributed Media Player

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

18

PolyZoom (Javed 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

23

ConclusionConceptual model of Munin framework

Application examples

How-to-use:

24

Acknowledgment

S. Karthik [email protected]

Questions?

IIS-1253863

Munin source

https://github.com/karthikbadam/Munin