Leveraging the Mobile Web in Low-Resource Settings
Sam Sudar
Information and
Communication
Technology for
Development
‘social, economic, and political development, with a particular emphasis on helping poor and marginalized people and communities’
https://en.wikipedia.org/wiki/Information_and_communication_technologies_for_development
Image Credit: JGI
In the Developing World:
The World Bank. World Development Report 2016: Digital Dividends.
My Work
D.U.C.E.S.
D.U.C.E.S.
DUCES: helps people tweak requirements to fit technology
Focus
Hope Study
0
3
6
Seattle-based Study
Kenya-based Study
Hope Study
0
3
6
Problem
DUCES insight
Data flow
User interface
Connectivity
Edit model
Server
Sources of Complexity
Data Flow
Unidirectional
Bidirectional
User Interface
Form-based
App-UI
Connectivity and Edit Model
Connected
Unordered
Disconnected
Transactional
Server
Bucket
Processed
Hope Study
0
3
6
UI
form-based
Data Flow
bidirectional
Connectivity
disconnected
Server
processed
Edit Model
unordered
Hope Study
0
3
6
Server
unprocessed
Data Flow
unidirectional
UI
form-based
Data Flow
bidirectional
Connectivity
disconnected
Server
processed
Edit Model
unordered
Hope Study
My Work
Offline Educational Resources
Image Credit: Widernet
Not Perfect
Ideally
Siskin lets you save and share web content directly from the browser.
Demo
In case the demo gods were against us...
Extension
App
Architecture
wikipedia.org/Cat
Extension
App
How does this work?
How do we find peers?
Multicast DNS
DNS-Based Service Discovery
Zero-conf: it just works
Review: Regular IP
172.28.7.80 Goes to one device
172.28.7.80
172.28.7.80
Review: Multicast IP
224.0.0.* Goes to all devices
224.0.0.*
224.0.0.*
Review: DNS
Response comes from remote server
A? www.google.com
A 216.58.216.164
Multicast DNS (mDNS)
Response comes from device on local network
A? www.google.com
A 216.58.216.164
224.0.0.251:5353
DNS-Based Service Discovery (DNS-SD)
Tyrion
172.28.7.90:8888
DNS-Based Service Discovery (DNS-SD)
Jon
Arya
Tyrion
PTR?
172.28.7.90:8888
DNS-Based Service Discovery (DNS-SD)
Jon
Arya
Tyrion
PTR
PTR
PTR | Arya.siskin.tcp |
PTR | Tyrion.siskin.tcp |
172.28.7.90:8888
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
DNS-Based Service Discovery (DNS-SD)
Jon
Arya
Tyrion
SRV
tyrion.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
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
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
DNS-Based Service Discovery (DNS-SD)
Jon
Arya
Tyrion
A
172.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
DNS-Based Service Discovery (DNS-SD)
Jon
Arya
Tyrion
A
172.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
P2P Transfer
WebRTC
WebRTC
WebRTC
172.28.7.90:8888
WebRTC?
WebRTC.
Now we can talk, what do we say?
List Content
List Content
List Content
khanacademy.org/math1
nytimes.com/story1
wikipedia.org/Cat
List Content
Annotate Links
Annotate Links: naively
khanacademy.org/math1
nytimes.com/story1
wikipedia.org/Cat
khanacademy.org/math1
nytimes.com/story1
wikipedia.org/Cat
…
…
…
…
…
1000 pages * 51 characters = 51 kB
10 peers * (51 * 9) = 4.59 MB
40 peers * (51 * 39) = 79.59 MB
Hard on bandwidth
List
Bloom Filter
Bloom Filter
https://en.wikipedia.org/wiki/Bloom_filter
Bloom Filter
1,000 pages, 0.001 FP = 1.8 kB
10 peers * (1.8 * 9) = 162 kB
40 peers * (1.8 * 39) = 2.8 MB
Better on bandwidth
80 MB to 3 MB with 40 peers
Bloom Filter
0 | 1 | 1 | 0 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 0 | 1 | 0 |
1 | 0 | 0 | 1 | 1 | 0 | 0 |
1 | 0 | 0 | 1 | 1 | 0 | 0 |
Does this work?
Transfer Speed
Query Latency: 30 peers; 1000 pages
Bandwidth Impact: 1,000 pages per peer
Conclusion
Richard Anderson
Matt Welsh
Clarice, Mitch, and Jeff
Saloni Parikh and the undergrads
Thank you!
Questions?
Paul G. Allen School for Computer Science and Engineering