1 of 102

Leveraging the Mobile Web in Low-Resource Settings

Sam Sudar

2 of 102

  1. ICTD
  2. DUCES Model
  3. Siskin

3 of 102

  • ICTD
  • DUCES Model
  • Siskin

4 of 102

Information and

Communication

Technology for

Development

5 of 102

‘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

6 of 102

7 of 102

8 of 102

9 of 102

10 of 102

11 of 102

Image Credit: JGI

12 of 102

13 of 102

14 of 102

15 of 102

16 of 102

17 of 102

18 of 102

19 of 102

In the Developing World:

  • 80% have access to a mobile phone
  • 31% have internet access

The World Bank. World Development Report 2016: Digital Dividends.

20 of 102

My Work

21 of 102

D.U.C.E.S.

22 of 102

D.U.C.E.S.

23 of 102

  • ICTD
  • DUCES Model
  • Siskin

24 of 102

DUCES: helps people tweak requirements to fit technology

25 of 102

  • Data collection
  • Mobile workflows
  • Where is complexity hiding?

Focus

26 of 102

Hope Study

0

3

6

27 of 102

  • Desktop web app
  • Log in, edit online
  • Server sends email reminders
  • Logic programmed on server

Seattle-based Study

28 of 102

  • Must work offline
  • Mobile-based edits
  • Hired workers
  • Shared mobile phones

Kenya-based Study

29 of 102

Hope Study

0

3

6

30 of 102

  • Requires a developer
  • They don’t have a developer

Problem

31 of 102

  • Requirements can be flexible
  • Don’t know what to change

DUCES insight

32 of 102

Data flow

User interface

Connectivity

Edit model

Server

Sources of Complexity

33 of 102

Data Flow

Unidirectional

Bidirectional

34 of 102

User Interface

Form-based

App-UI

35 of 102

Connectivity and Edit Model

Connected

Unordered

Disconnected

Transactional

  • One-time creation
  • e.g. logging temperature
  • Logical edits
  • e.g. bank withdrawals

36 of 102

Server

Bucket

Processed

37 of 102

Hope Study

0

3

6

38 of 102

UI

form-based

Data Flow

bidirectional

Connectivity

disconnected

Server

processed

Edit Model

unordered

39 of 102

Hope Study

0

3

6

40 of 102

Server

unprocessed

Data Flow

unidirectional

UI

form-based

Data Flow

bidirectional

Connectivity

disconnected

Server

processed

Edit Model

unordered

41 of 102

  • Running for over 4 years
  • Limited tech support
  • DUCES helped identify complexity

Hope Study

42 of 102

My Work

43 of 102

  • ICTD
  • DUCES Model
  • Siskin

44 of 102

Offline Educational Resources

45 of 102

46 of 102

47 of 102

48 of 102

Image Credit: Widernet

49 of 102

  • $$$
  • Can’t add content
  • Hard to maintain

Not Perfect

50 of 102

  • Free on existing infrastructure
  • Local content curation
  • Easy installation
  • Minimal configuration

Ideally

51 of 102

Siskin lets you save and share web content directly from the browser.

52 of 102

Demo

53 of 102

In case the demo gods were against us...

54 of 102

55 of 102

56 of 102

57 of 102

58 of 102

Extension

App

Architecture

wikipedia.org/Cat

59 of 102

  • Saves pages
  • Annotates links
  • Redirects to local resources

Extension

60 of 102

  • Discovers peers
  • Talks to peers
  • List UI

App

61 of 102

  • Find peers?
  • Transfer data?
  • Annotate Links?

How does this work?

62 of 102

How do we find peers?

63 of 102

Multicast DNS

  • Network-local DNS

DNS-Based Service Discovery

  • Use DNS as a database

Zero-conf: it just works

64 of 102

Review: Regular IP

172.28.7.80 Goes to one device

172.28.7.80

172.28.7.80

65 of 102

Review: Multicast IP

224.0.0.* Goes to all devices

224.0.0.*

224.0.0.*

66 of 102

Review: DNS

Response comes from remote server

A? www.google.com

A 216.58.216.164

67 of 102

Multicast DNS (mDNS)

Response comes from device on local network

A? www.google.com

A 216.58.216.164

224.0.0.251:5353

68 of 102

DNS-Based Service Discovery (DNS-SD)

Tyrion

172.28.7.90:8888

69 of 102

DNS-Based Service Discovery (DNS-SD)

Jon

Arya

Tyrion

PTR?

172.28.7.90:8888

70 of 102

DNS-Based Service Discovery (DNS-SD)

Jon

Arya

Tyrion

PTR

PTR

PTR

Arya.siskin.tcp

PTR

Tyrion.siskin.tcp

172.28.7.90:8888

71 of 102

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

72 of 102

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

73 of 102

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

74 of 102

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

75 of 102

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

76 of 102

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

77 of 102

P2P Transfer

78 of 102

WebRTC

79 of 102

WebRTC

80 of 102

WebRTC

172.28.7.90:8888

WebRTC?

WebRTC.

81 of 102

Now we can talk, what do we say?

  • List content
  • Annotate links

82 of 102

List Content

83 of 102

List Content

84 of 102

List Content

khanacademy.org/math1

nytimes.com/story1

wikipedia.org/Cat

85 of 102

List Content

86 of 102

Annotate Links

87 of 102

Annotate Links: naively

khanacademy.org/math1

nytimes.com/story1

wikipedia.org/Cat

khanacademy.org/math1

nytimes.com/story1

wikipedia.org/Cat

88 of 102

1000 pages * 51 characters = 51 kB

10 peers * (51 * 9) = 4.59 MB

40 peers * (51 * 39) = 79.59 MB

Hard on bandwidth

89 of 102

List

  • Is this page available?
  • Yes, 100%!

Bloom Filter

  • Is this page available?
  • Probably. 99.9%

90 of 102

Bloom Filter

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

91 of 102

Bloom Filter

92 of 102

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

93 of 102

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

94 of 102

Does this work?

95 of 102

Transfer Speed

96 of 102

97 of 102

Query Latency: 30 peers; 1000 pages

98 of 102

Bandwidth Impact: 1,000 pages per peer

99 of 102

Conclusion

  • Free
  • Can curate content
  • Piggybacks on distribution
  • Rachel and eGranary could use this approach as well

100 of 102

101 of 102

Richard Anderson

Matt Welsh

Clarice, Mitch, and Jeff

Saloni Parikh and the undergrads

102 of 102

Thank you!

Questions?

Paul G. Allen School for Computer Science and Engineering