Environments Content in Disconnected Browser to Share Web

55
Siskin: Leveraging the Browser to Share Web Content in Disconnected Environments Sam Sudar 1,2 , Matt Welsh 1 , Richard Anderson 2 1 Google, Inc 2 University of Washington 1

Transcript of Environments Content in Disconnected Browser to Share Web

Page 1: Environments Content in Disconnected Browser to Share Web

Siskin: Leveraging the Browser to Share Web Content in Disconnected Environments

Sam Sudar1,2, Matt Welsh1, Richard Anderson2

1 Google, Inc2 University of Washington

1

Page 2: Environments Content in Disconnected Browser to Share Web

Disclaimer

2

- PhD work from Google internship- github.com/srsudar/SemCache

Page 3: Environments Content in Disconnected Browser to Share Web

There is a huge opportunity for the web to improve education in low-resource settings.

3

Connectivity in these schools is often poor and intermittent.

Page 4: Environments Content in Disconnected Browser to Share Web

4

Page 5: Environments Content in Disconnected Browser to Share Web

5

Page 6: Environments Content in Disconnected Browser to Share Web

6

Page 7: Environments Content in Disconnected Browser to Share Web

Offline Educational Resources

7

Page 8: Environments Content in Disconnected Browser to Share Web

Image Credit: Widernet8

Page 9: Environments Content in Disconnected Browser to Share Web

9

Page 10: Environments Content in Disconnected Browser to Share Web

- Can be expensive- RACHEL-Pi: $169- External USB eGranary: $2,000 + shipping- eGranary server: $3,700 + shipping

- Standalone device- Updates aren’t built into the equation- sysadmin without UI- If it breaks you need special training to fix it- Single point of failure

Not Perfect

10

Page 11: Environments Content in Disconnected Browser to Share Web

- Set of devices on a local WiFi network- Intermittent or slow connection to the web

Assumptions

11

- Allow users to save local copies of webpages- Discover web content from peers as a distributed cache- No sysadmin required- Build as a browser extension so there is no additional hardware

Goals

Page 12: Environments Content in Disconnected Browser to Share Web

Can we leverage web and browser technology to create a sysadmin-free, configuration-free, decentralized web cache to enable offline access to the web in a seamless fashion?

12

Research Question

Page 13: Environments Content in Disconnected Browser to Share Web

- No standalone device- One-click install model- Updates automatically (when available)- No configuration- No sysadmin- Built for existing infrastructure- Decentralized

13

Browser-based approach

Page 14: Environments Content in Disconnected Browser to Share Web

Normal Web Model

14

Page 15: Environments Content in Disconnected Browser to Share Web

Conventional OER Solutions

15

Page 16: Environments Content in Disconnected Browser to Share Web

Siskin

16

Page 17: Environments Content in Disconnected Browser to Share Web

Siskin with Connectivity

17

Page 18: Environments Content in Disconnected Browser to Share Web

Siskin without Connectivity

18

Page 19: Environments Content in Disconnected Browser to Share Web

- Save pages- Peer discovery- Distributed cache directory- Pull data from a peer

Making Siskin Work

19

Page 20: Environments Content in Disconnected Browser to Share Web

- Save pages- Peer discovery- Distributed cache directory- Pull data from a peer

Making Siskin Work

20

Page 21: Environments Content in Disconnected Browser to Share Web

- MHTML- Page as single file- Good, not perfect

Saving Pages

21

Page 22: Environments Content in Disconnected Browser to Share Web

- Save pages- Peer discovery- Distributed cache directory- Pull data from a peer

Making Siskin Work

22

Page 23: Environments Content in Disconnected Browser to Share Web

Naively, how do we find peers?

23

Page 24: Environments Content in Disconnected Browser to Share Web

Multicast DNS- Network-local DNSDNS-Based Service Discovery- Use DNS as a database

Zero-conf: ‘it just works’

24

Page 25: Environments Content in Disconnected Browser to Share Web

Review: Regular IP

172.28.7.80

172.28.7.80 Goes to one device172.28.7.80

25

Page 26: Environments Content in Disconnected Browser to Share Web

Review: Multicast IP

224.0.0.*

224.0.0.*

224.0.0.* Goes to all devices26

Page 27: Environments Content in Disconnected Browser to Share Web

Review: DNS

A? www.google.com

A 216.58.216.164

Response comes from remote server

27

Page 28: Environments Content in Disconnected Browser to Share Web

Multicast DNS (mDNS)

A? www.google.com

A 216.58.216.164

224.0.0.251:5353

Response comes from device on local network

28

Page 29: Environments Content in Disconnected Browser to Share Web

DNS-Based Service Discovery (DNS-SD)

Tyrion

172.28.7.90:8888

29

Page 30: Environments Content in Disconnected Browser to Share Web

DNS-Based Service Discovery (DNS-SD)

Jon

Arya

Tyrion

PTR?

172.28.7.90:8888

30

Page 31: Environments Content in Disconnected Browser to Share Web

DNS-Based Service Discovery (DNS-SD)

Jon

Arya

Tyrion

PTR

PTRPTR Arya.siskin.tcp

PTR Tyrion.siskin.tcp

172.28.7.90:8888

31

Page 32: Environments Content in Disconnected Browser to Share Web

DNS-Based Service Discovery (DNS-SD)

Jon

Arya

Tyrion

SRV?Tyrion.siskin.tcp

PTR Arya.siskin.tcp

PTR Tyrion.siskin.tcp

172.28.7.90:8888

32

Page 33: Environments Content in Disconnected Browser to Share Web

DNS-Based Service Discovery (DNS-SD)

Jon

Arya

Tyrion

SRVtyrion.local 8888

PTR Arya.siskin.tcp

PTR Tyrion.siskin.tcp

SRV tyrion.local 8888

PTR Arya.siskin.tcp

PTR Tyrion.siskin.tcp

172.28.7.90:8888

33

Page 34: Environments Content in Disconnected Browser to Share Web

DNS-Based Service Discovery (DNS-SD)

Jon

Arya

Tyrion

PTR Arya.siskin.tcp

PTR Tyrion.siskin.tcp

SRV tyrion.local 8888

172.28.7.90:8888

34

Page 35: Environments Content in Disconnected Browser to Share Web

DNS-Based Service Discovery (DNS-SD)

Jon

Arya

Tyrion

A?tyrion.local

PTR Arya.siskin.tcp

PTR Tyrion.siskin.tcp

SRV tyrion.local 8888

172.28.7.90:8888

35

Page 36: Environments Content in Disconnected Browser to Share Web

DNS-Based Service Discovery (DNS-SD)

Jon

Arya

Tyrion

A172.28.7.90

PTR Arya.siskin.tcp

PTR Tyrion.siskin.tcp

SRV tyrion.local 8888

A 172.28.7.90

PTR Arya.siskin.tcp

PTR Tyrion.siskin.tcp

SRV tyrion.local 8888

172.28.7.90:8888

36

Page 37: Environments Content in Disconnected Browser to Share Web

DNS-Based Service Discovery (DNS-SD)

Jon

Arya

Tyrion

A172.28.7.90

PTR Arya.siskin.tcp

PTR Tyrion.siskin.tcp

SRV tyrion.local 8888

A 172.28.7.90

PTR Arya.siskin.tcp

PTR Tyrion.siskin.tcp

SRV tyrion.local 8888

172.28.7.90:8888

37

Page 38: Environments Content in Disconnected Browser to Share Web

- Save pages- Peer discovery- Distributed cache directory- Pull data from a peer

Making Siskin Work

38

Page 39: Environments Content in Disconnected Browser to Share Web

Siskin without Connectivity

39

Page 40: Environments Content in Disconnected Browser to Share Web

List Content Annotate Links

40

Page 41: Environments Content in Disconnected Browser to Share Web

List Content

41

Page 42: Environments Content in Disconnected Browser to Share Web

List Content

khanacademy.org/math1nytimes.com/story1

wikipedia.org/Cat

42

Page 43: Environments Content in Disconnected Browser to Share Web

Annotate Links: naively

khanacademy.org/math1nytimes.com/story1

wikipedia.org/Catkhanacademy.org/math1nytimes.com/story1wikipedia.org/Cat…………… 43

Page 44: Environments Content in Disconnected Browser to Share Web

1000 pages * 51 characters = 51 kB10 peers * (51 * 9) = 4.59 MB40 peers * (51 * 39) = 79.59 MB

Hard on bandwidth

44

Page 45: Environments Content in Disconnected Browser to Share Web

Bloom Filter

45https://en.wikipedia.org/wiki/Bloom_filter

- Is this page available?- Oh, probably. 99.9%

- Is this page available?- Definitely not.

Page 46: Environments Content in Disconnected Browser to Share Web

0 1 1 0 0 1 0

0 1 1 0 0 1 0

1 0 0 1 1 0 0

Bloom Filter

1 0 0 1 1 0 046

Page 47: Environments Content in Disconnected Browser to Share Web

1,000 pages, 0.001 FP = 1.8 kB10 peers * (1.8 * 9) = 162 kB40 peers * (1.8 * 39) = 2.8 MB

Better on bandwidth

80 MB to 3 MB with 40 peers47

Page 48: Environments Content in Disconnected Browser to Share Web

- Save pages- Peer discovery- Distributed cache directory- Pull data from a peer

Making Siskin Work

48

Page 49: Environments Content in Disconnected Browser to Share Web

Conventional browser-based file sharing

49

Page 50: Environments Content in Disconnected Browser to Share Web

WebRTC

50

Page 51: Environments Content in Disconnected Browser to Share Web

WebRTC

51

Page 52: Environments Content in Disconnected Browser to Share Web

WebRTC

172.28.7.90:8888WebRTC?

WebRTC.

52

Page 53: Environments Content in Disconnected Browser to Share Web

Transfer Speed

53

Page 54: Environments Content in Disconnected Browser to Share Web

What did we learn?

- Browser as infrastructure- One-click installation- Distributed cache

- Augment the natural browsing experience- Browse naturally, stay local when possible

- Static snapshots are imperfect- Place for improvement- Progressive Web Apps potential way forward

54

Page 55: Environments Content in Disconnected Browser to Share Web

Thank you!Questions?

github.com/srsudar/SemCache

55