low-resource settings leveraging the mobile web in
TRANSCRIPT
Leveraging the Mobile Web in Low-Resource SettingsSam Sudar
1. ICTD
2. DUCES Model
3. Siskin
1. ICTD
2. DUCES Model
3. Siskin
Information andCommunicationTechnology forDevelopment
‘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:
- 80% have access to a mobile phone- 31% have internet access
The World Bank. World Development Report 2016: Digital Dividends.
My Work
D.U.C.E.S.
D.U.C.E.S.
1. ICTD
2. DUCES Model
3. Siskin
DUCES: helps people tweak requirements to fit technology
- Data collection- Mobile workflows- Where is complexity hiding?
Focus
Hope Study0 3 6
- Desktop web app- Log in, edit online- Server sends email reminders- Logic programmed on server
Seattle-based Study
- Must work offline- Mobile-based edits- Hired workers- Shared mobile phones
Kenya-based Study
Hope Study0 3 6
- Requires a developer- They don’t have a developer
Problem
- Requirements can be flexible- Don’t know what to change
DUCES insight
Data flowUser interfaceConnectivityEdit modelServer
Sources of Complexity
Data Flow
Unidirectional Bidirectional
User Interface
Form-based App-UI
Connectivity and Edit Model
ConnectedUnordered
DisconnectedTransactional
- One-time creation- e.g. logging temperature
- Logical edits- e.g. bank withdrawals
Server
Bucket Processed
Hope Study0 3 6
UIform-based
Data Flowbidirectional
Connectivitydisconnected
Serverprocessed
Edit Modelunordered
Hope Study0 3 6
Data Flowbidirectional
UIform-based
Connectivitydisconnected
Edit Modelunordered
Serverprocessed
Serverunprocessed
Data Flowunidirectional
UIform-based
Connectivitydisconnected
Edit Modelunordered
- Running for over 4 years- Limited tech support- DUCES helped identify complexity
Hope Study
My Work
1. ICTD2. DUCES Model3. Siskin
Offline Educational Resources
Image Credit: Widernet
- $$$- Can’t add content - Hard to maintain
Not Perfect
- Free on existing infrastructure- Local content curation- Easy installation- Minimal configuration
Ideally
Siskin lets you save and share web content directly from the browser.
Demo
In case the demo gods were against us...
wikipedia.org/Cat
Extension App
Architecture
- Saves pages- Annotates links- Redirects to local
resources
Extension
- Discovers peers- Talks to peers- List UI
App
- Find peers?- Transfer data?- Annotate Links?
How does this work?
How do we find peers?
Multicast DNS- Network-local DNSDNS-Based Service Discovery- Use DNS as a database
Zero-conf: it just works
Review: Regular IP
172.28.7.80
172.28.7.80 Goes to one device172.28.7.80
Review: Multicast IP
224.0.0.*
224.0.0.*
224.0.0.* Goes to all devices
Review: DNS
A? www.google.com
A 216.58.216.164
Response comes from remote server
Multicast DNS (mDNS)
A? www.google.com
A 216.58.216.164
224.0.0.251:5353
Response comes from device on local network
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
PTRPTR 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
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
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
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
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
P2P Transfer
WebRTC
WebRTC
WebRTC
172.28.7.90:8888WebRTC?
WebRTC.
Now we can talk, what do we say?
- List content- Annotate links
List Content
List Content
List Content
khanacademy.org/math1nytimes.com/story1
wikipedia.org/Cat
List Content
Annotate Links
Annotate Links: naively
khanacademy.org/math1nytimes.com/story1
wikipedia.org/Catkhanacademy.org/math1nytimes.com/story1wikipedia.org/Cat……………
1000 pages * 51 characters = 51 kB10 peers * (51 * 9) = 4.59 MB40 peers * (51 * 39) = 79.59 MB
Hard on bandwidth
List
- Is this page available?- Yes, 100%!
Bloom Filter
- Is this page available?- Probably. 99.9%
Bloom Filter
https://en.wikipedia.org/wiki/Bloom_filter
Bloom Filter
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
0 1 1 0 0 1 0
80 MB to 3 MB with 40 peers
0 1 1 0 0 1 0
1 0 0 1 1 0 0
Bloom Filter
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
- Free- Can curate content- Piggybacks on distribution- Rachel and eGranary could use
this approach as well
Richard AndersonMatt Welsh
Clarice, Mitch, and JeffSaloni Parikh and the undergrads
Thank you!Questions?
Paul G. Allen School for Computer Science and Engineering