Aalto University School of Electrical Engineering

Liberouter: Towards Do-It-Yourself Networking Jörg Ott Teemu Kärkkäinen http://www.netlab.tkk.fi/~jo/ 6 March 2014

Down-to-Earth Neighborhood Networking: Localizing Content Sharing •  Keeping content where is matters •  Preserving an intuitive understanding of the sharing context: people in the same place (at the same time)

Aalto University School of Electrical Engineering

1) Networking platform 2) Sharing applications

Aalto University School of Electrical Engineering

Do-It-Yourself…

Aalto University School of Electrical Engineering

Opportunistic Networking •  Think messages, not packets •  Discover peers •  Exchange upon an encounter (“contact”)

Aalto University School of Electrical Engineering

WLAN Bluetooth …

Opportunistic Networking •  •  •  •  •  • 

Think messages, not packets WLAN Bluetooth Discover peers … Exchange upon an encounter (“contact”) Store (and carry), forward (replicate) Takes time, messages may disappear (best effort) Performance = f(node density, mobility, …)

Aalto University School of Electrical Engineering

Networking abstractions •  Direct device-to-device with low latency (IP) •  Direct and multi-hop Messaging (Bundles) •  Publish / subscribe mechanism –  Applications register interest in content using metadata –  Matching content will be delivered

•  Search –  Enable complex message queries against stored content –  Based upon metadata description (generic matching)

•  Floating content model –  Spreading content in a limited area only [www.floating-content.net] –  Defined by (location, radius, content lifetime) Aalto University School of Electrical Engineering

Platform- Platformspecific independent

Applications: API and Distribution HTML5 App

install

install

HTML5 App Distribution

HTML5 Shim

Native Apps

Native API

Platform-independent (needs JVM)

TCP

Aalto University School of Electrical Engineering

SCAMPI Router Pub/Sub

Unicast

Search

Storage Peer Discovery

Transport

Native API AppLib: Interaction with the router

Local support functions

addListener() removeListener()

publish() delete() subscribe()

msgReceived()

run() / stop()

discovery()

discovered()

SCAMPImessage •  construction •  parsing •  manipulation

Contact

Start

Peer discovery (update)

Metdata

Location (update)

String | Bytes | File

Subscribe

End

Aalto University School of Electrical Engineering

Simple File Transfer Application class FileTransfer implements AppLibListener …

S

applib = new AppLib(); applib.addListener (new FileTransfer ()); applib.subscribe (“filetransfer”); t = new Thread (applib); t.start ();

messageReceived (applib, msg) { filename = recv_dir + “/” + msg.getAsString (“name”); filedatastream = msg.get (“file”); // write file to disk }

Aalto University School of Electrical Engineering

Class FileTransfer implements AppLibListener () …

P

// determine a file to send: my_file msg = new SCAMPIMessage(); msg.setLifeTime (24*3600); msg.put (“name”, myfile.getName ()); msg.put (“file”, myfile); msg.setMetadata (“file”, “name”, …); msg.setMetadata (“file”, “size”, …); applib.publish (msg, “filetranfer”); publish_done (applib, msg) { … }

Mobile devices alone may not be enough •  Device-to-device communication is tricky –  Mobile OSes and APIs designed for connecting to infrastructure

•  How to bootstrap mobile devices? –  Want to avoid dependency on the web

•  Just using people’s mobiles may not be very reliable –  Fluctuation in device density during the day, week, year –  Potentially shorter range, battery constraints

•  More predictable storage locations desirable –  Apps need to keep their data somewhere Aalto University School of Electrical Engineering

Liberouter •  Basic features –  –  –  –  – 

WLAN access point Captive portal SCAMPI router Storage node Can mesh with other liberouters

Aalto University School of Electrical Engineering

Raspberry Pi WLAN i/f USB flash drive 8 GB system SD card Total: ~80 EUR

Liberouter •  Basic features –  –  –  –  – 

WLAN access point Captive portal SCAMPI router Storage node Can mesh with other liberouters

•  Applications –  –  –  – 

Android liberouter distribution Native SCAMPI (Java) applications HTML5 SCAMPI-enabled HTML5 legacy

•  Web Access –  Local instance of the distributed app store –  Content interface: browsing (and interaction) –  Instrumenting non-SCAMPI nodes for forwarding Aalto University School of Electrical Engineering

Component List - Raspberry Pi - USB WiFi …

Misc

DIY Instructions - Building - Configuring

Software

- 3D Printed Covers - Power Options

- SCAMPI Route - Linux Distro

EVERYTHING ONLINE

Aalto University School of Electrical Engineering

Aalto University School of Electrical Engineering

1) Networking platform 2) Sharing applications

Aalto University School of Electrical Engineering

Deploying applications •  Web Apps (HTML5) –  Limitations due to frameworks –  Require always-on Internet connectivity

•  App Stores (native) –  Native apps: access to device features –  Store operator as a gatekeeper + quality control, trust − Internet dependency, delay, potential censorship

•  An app is nothing but a (signed) bag of bits –  Use messaging for distribution Aalto University School of Electrical Engineering

SCAMPI Apps

Aalto University School of Electrical Engineering

SCAMPI Apps

Aalto University School of Electrical Engineering

Remember: This is NOT the Internet! •  Distance matters: focus on proximity •  Not necessarily instant feedback about success/failure •  Don’t try to compete with the Internet –  Emphasis is on different paradigms

•  •  •  •  • 

Applications operate invisibly in the background Respond immediately upon user attention Completeness, congruence & repeatability not essential Provide value-add with probabilistic operation Reflect this in the UI Aalto University School of Electrical Engineering

SCAMPImusic What does it sound like here?

Radio Stre

am

Compose a Radio Stream

Opportunistically Spread Content Aalto University School of Electrical Engineering

nearbyPeople •  Exploiting ephemeral communities •  Share a personal profile with interests in the background •  Observe how information from others comes in •  Exchange messages with people of interest •  Organize get-togethers around a common event Aalto University School of Electrical Engineering

Simple Messaging & Sharing Apps

Aalto University School of Electrical Engineering

Distributed “Google Person Finder”

Aalto University School of Electrical Engineering

Conclusion •  Exploring less dependency on Internet services •  Building own networks of limited reach and scale •  Suitable for a range of information sharing applications •  Currently exploring –  –  –  – 

More diverse (outdoor) applications Application authoring Mutable contents, distributed editing, and merging Limited real-time elements

•  Do try this at home! http://www.ict-scampi.eu/results/scampi-liberouter/ Aalto University School of Electrical Engineering

Joerg-2014-03-06-gaia-liberouter.pdf

1) Networking platform. 2) Sharing applications. Whoops! There was a problem loading this page. Whoops! There was a problem previewing this document.

9MB Sizes 1 Downloads 111 Views

Recommend Documents

No documents