medusa: a programming framework for crowd-sensing applications moo-ryong ra, bin liu tom la porta,...

19
Medusa: A Programming Framework for Crowd- Sensing Applications Moo-Ryong Ra, Bin Liu Tom La Porta, and Ramesh Govindan MobiSys 2012

Upload: gwendoline-cross

Post on 21-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Medusa: A Programming Framework for Crowd-Sensing Applications Moo-Ryong Ra, Bin Liu Tom La Porta, and Ramesh Govindan MobiSys 2012

Medusa: A Programming Framework for Crowd-Sensing Applications

Moo-Ryong Ra, Bin LiuTom La Porta, and Ramesh Govindan

MobiSys 2012

Page 2: Medusa: A Programming Framework for Crowd-Sensing Applications Moo-Ryong Ra, Bin Liu Tom La Porta, and Ramesh Govindan MobiSys 2012

2

Growing Smartphone Users

Crowd-Sensing

Crowds Sensing

2012

2016

Camera/Mic.

GPS/WPS

Accelerometer

Compass/Gyro

Proximity

Motivation Problem Design Evaluation Conclusion

Page 3: Medusa: A Programming Framework for Crowd-Sensing Applications Moo-Ryong Ra, Bin Liu Tom La Porta, and Ramesh Govindan MobiSys 2012

3

Example: Documenting Social Events

SummariesFull Videos

Worker

Worker

WorkerWorker

WorkerWorker

User

Motivation Problem Design Evaluation Conclusion

Page 4: Medusa: A Programming Framework for Crowd-Sensing Applications Moo-Ryong Ra, Bin Liu Tom La Porta, and Ramesh Govindan MobiSys 2012

4

Other Crowd-Sensing Tasks

Auditioning

Collaborative Learning

Forensic Analysis

Motivation Problem Design Evaluation Conclusion

Television producer wants potential actors

to submit clips of their acting.

Mobile app developer wants samples of activities to train

classifier.

Security personnel wants to find pictures

of attack taken by mall visitors.

Page 5: Medusa: A Programming Framework for Crowd-Sensing Applications Moo-Ryong Ra, Bin Liu Tom La Porta, and Ramesh Govindan MobiSys 2012

5

Can be extremely labor-intensive

The Problem

Recruiting Workers

Providing Incentives

Coordinating worker actions

Gathering contributions

Automation using a high-level programming system

Motivation Problem Design Evaluation Conclusion

Stage 1

Stage 2

Stage 3

Stage 4

Page 6: Medusa: A Programming Framework for Crowd-Sensing Applications Moo-Ryong Ra, Bin Liu Tom La Porta, and Ramesh Govindan MobiSys 2012

6

Contributions

Describe crowd-sensing requirements

Devise design principles

Design and implement Medusa,a programming system for crowd-sensing

Evaluate using qualitatively different tasks

Motivation Problem Design Evaluation Conclusion

Page 7: Medusa: A Programming Framework for Crowd-Sensing Applications Moo-Ryong Ra, Bin Liu Tom La Porta, and Ramesh Govindan MobiSys 2012

7

Crowd-Sensing Requirements

RuntimeExpressivity

Worker Mediation

Access Stored Data

PrivacyConcurrent Tasks

Extensibility

Timeliness Support

IncentivesResource Usage Controls

SandboxingRobustness

Secure Communication

Anonymity

Motivation Problem Design Evaluation Conclusion

Unsynchronized ExecutionIn-network Processing

Page 8: Medusa: A Programming Framework for Crowd-Sensing Applications Moo-Ryong Ra, Bin Liu Tom La Porta, and Ramesh Govindan MobiSys 2012

8

Runtime Design Principles

Cloud (Server)

Mobile Devices

Partitioned Services

Dumb Smartphone

Opt-in Data Transfer

Cloud Runtime

Client Runtime

Task ManagementWorker Recruiting

Incentive Management

Sensing

In-network Processing

Motivation Problem Design Evaluation Conclusion

Page 9: Medusa: A Programming Framework for Crowd-Sensing Applications Moo-Ryong Ra, Bin Liu Tom La Porta, and Ramesh Govindan MobiSys 2012

9

Medusa Design

MedScript Programming Language

Medusa Runtime

Motivation Problem Design Evaluation Conclusion

Page 10: Medusa: A Programming Framework for Crowd-Sensing Applications Moo-Ryong Ra, Bin Liu Tom La Porta, and Ramesh Govindan MobiSys 2012

10

Expressivity of MedScript Language

Recruit CurateTakeVideo UploadSummary UploadVideo

HIT stage

SPC stage Preview outgoing data

Trigger

Incentives

Sensing Processing

Video Documentation

Worker Mediation

Communication

XML-based extensible language

ExtractSummary

Motivation Problem Design Evaluation Conclusion

Page 11: Medusa: A Programming Framework for Crowd-Sensing Applications Moo-Ryong Ra, Bin Liu Tom La Porta, and Ramesh Govindan MobiSys 2012

11

Fork-join construct

Other Language Features

Reverse IncentivesLocation-based TriggerAuthoring Tool

GetAccel.

GetGPS

Start Join

TypicalReverse

Triggering Stage Execution

New!

MedAuthor

Motivation Problem Design Evaluation Conclusion

Page 12: Medusa: A Programming Framework for Crowd-Sensing Applications Moo-Ryong Ra, Bin Liu Tom La Porta, and Ramesh Govindan MobiSys 2012

12

Task Execution Example

Task Initiation

Create ‘Recruit’

Sign-up to ‘Recruit’

Sign-up to ‘Recruit’

TakingVideo

TakingVideo

UploadingVideo

UploadingVideo

Initiate ‘TakeVideo’

Initiate ‘UploadVideo’

Got the Video

Sending the Video to Alice

Medusa

Alice

Bob

Charlie

Time Flow

User

Runtime

Worker

Worker

Opt-in Privacy

Resource Usage Controls

UnsynchronizedExecution

Motivation Problem Design Evaluation Conclusion

Cloud-InitiatedStage Execution

Page 13: Medusa: A Programming Framework for Crowd-Sensing Applications Moo-Ryong Ra, Bin Liu Tom La Porta, and Ramesh Govindan MobiSys 2012

13

Medusa Runtime Design

AmazonMechanical

Turk

stage

stage

Data Transfer Cloud (Server)

Mobile Devices

CharlieBob

Stage Library Task Tracker

Worker Manager

DataRepository

MedBox

TransformManager

StorageManager

SensorManager

Stage Tracker

UploadManager

InterpretedMedScript Program

C2DM

Motivation Problem Design Evaluation Conclusion

Page 14: Medusa: A Programming Framework for Crowd-Sensing Applications Moo-Ryong Ra, Bin Liu Tom La Porta, and Ramesh Govindan MobiSys 2012

14

Medusa Prototype

Evaluation

Implementation

Python + LAMP

Android

10 crowd-sensing tasks

Robustness

Concurrent Execution

Expressivity

Performance

Motivation Problem Design Evaluation Conclusion

Java Servlet + Tomcat

Page 15: Medusa: A Programming Framework for Crowd-Sensing Applications Moo-Ryong Ra, Bin Liu Tom La Porta, and Ramesh Govindan MobiSys 2012

15

Application LOC Sensors Properties

Video Documentation 86 Camera In-network Processing, Crowd Curation

Collaborative Learning 62 Accel., Mic. Different Sensors

Auditioning 86 Camera Reverse Incentives, Crowd Curation

Forensic Analysis 86 GPS, Mic. Access to Stored Data

Spot Reporter 45 Camera, Mic. Text/Voice Tagging

Road Monitoring 90 Accel. Fork-join Construct (from PRISM, MobiSys’10)

Citizen Journalist 45 GPS Multiple Triggers (from PRISM, MobiSys’10)

Party Thermometer 62 GPS, Mic. Location triggering (from PRISM, MobiSys’10)

WiFi/Bluetooth Scanner 45 Net. Sensors From AnonySense, MobiSys’08

Expressivity

vs 8,763

vs 7,076

vs 17,238Fewer than 100 LOC for tasks.

Motivation Problem Design Evaluation Conclusion

Page 16: Medusa: A Programming Framework for Crowd-Sensing Applications Moo-Ryong Ra, Bin Liu Tom La Porta, and Ramesh Govindan MobiSys 2012

16

Concurrent execution on both Medusa and usersEach task has a Different number of stages.Workers may start each stage at different times.Each stage has a different execution time.

19h08m 19h10m 19h12m 19h14m 19h16m 19h18m 19h20m 19h22m 19h32m

Concurrent Execution

sss

ss

s

ss

ss

Worker I

Worker II

Worker III

Worker IV

(1)(2)(3)(4)(5)(6)

(7)(8)

(9)(10)

Tasks

Stage Execution

Command Arrival via SMS

s Worker subscribed to the Task

Time Flow

2

4

Motivation Problem Design Evaluation Conclusion

Page 17: Medusa: A Programming Framework for Crowd-Sensing Applications Moo-Ryong Ra, Bin Liu Tom La Porta, and Ramesh Govindan MobiSys 2012

17

~30ms initialization delay, 5ms for tracking stageTotal runtime delay is only 100ms per stage.

System Performance

Cloud RuntimeOverhead

NotificationDelay

Mobile Device Runtime

Overheads

Medusa runtime has very small overheads.

Motivation Problem Design Evaluation Conclusion

C2DM gives much less latency

Page 18: Medusa: A Programming Framework for Crowd-Sensing Applications Moo-Ryong Ra, Bin Liu Tom La Porta, and Ramesh Govindan MobiSys 2012

18

Related Work

Smartphone SensingCrowd-Sourcing

PEIR, MobiSys’09

SoundSense, MobiSys’09

AnonySense, MobiSys’08

PRISM, MobiSys’10

SensingIn-network Processing

Amazon Mechanical Turk

CrowdDB, SIGMOD’11

Turkit, UIST’10

CrowdSearch, MobiSys’10

Human-in-the-

loopIncentives Medusa

Motivation Problem Design Evaluation Conclusion

Page 19: Medusa: A Programming Framework for Crowd-Sensing Applications Moo-Ryong Ra, Bin Liu Tom La Porta, and Ramesh Govindan MobiSys 2012

19

Summary

a. Identified requirements and principles to design high-level programming framework for crowd-sensing applications.

b. Design and implementation of the Medscript programming language and associated runtime system.

c. Prototyped 10 crowd-sensing applications.

Medusa: A High-Level Programming Frameworkfor Crowd-Sensing Applications

Code

Demo Video

http://code.google.com/p/medusa-crowd-sensing/

http://youtu.be/jL1dGA21ciA