medusa: a programming framework for crowd-sensing applications moo-ryong ra, bin liu tom la porta,...
TRANSCRIPT
Medusa: A Programming Framework for Crowd-Sensing Applications
Moo-Ryong Ra, Bin LiuTom 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
3
Example: Documenting Social Events
SummariesFull Videos
Worker
Worker
WorkerWorker
WorkerWorker
User
Motivation Problem Design Evaluation Conclusion
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.
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
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
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
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
9
Medusa Design
MedScript Programming Language
Medusa Runtime
Motivation Problem Design Evaluation Conclusion
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
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
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
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
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
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
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
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
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
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