An An ¡ ¡Empirical ¡ ¡Characterization ¡ ¡of ¡ ¡IFTTT ¡ ¡ Ecosystem, ¡Usage, ¡and ¡Performance Xianghang Mi, ¡ ¡Feng ¡Qian, ¡ ¡Ying ¡Zhang, ¡ ¡XiaoFeng Wang Indiana ¡University ¡Bloomington, ¡ ¡Facebook ¡Research 1
Ou Outlin line 2
Wh What is is ¡ ¡IFTTT IFTTT User Define, ¡Run ¡and ¡Publish ¡ IF ¡This ¡Then ¡That ¡ Workflows ¡Called ¡ Applets Service ¡ Configure ¡and ¡Publish ¡ Services Consisting ¡of ¡ Provider Triggers and ¡ Actions 3
Wh What is is ¡ ¡IFTTT : ¡ : ¡ Ap Applets 4
Wh Why ¡ ¡IFTTT 5
Ho How ¡ ¡IFTTT ¡ ¡Works Set ¡up ¡ Request ¡Trigger ¡Events an ¡Applet Return ¡Trigger ¡Events . ¡. ¡. ¡. ¡. ¡. ¡ Sync ¡ Status Request ¡Trigger ¡Events Return ¡New ¡ Trigger ¡Events Send ¡Action ¡Request Sync ¡ Status Return ¡Action ¡Result 6
Ho How ¡ ¡IFTTT ¡ ¡Works 7
Ho How ¡ ¡IFTTT ¡ ¡Evolves: ¡ ¡ Me Methodology We ¡crawled ¡IFTTT ¡every ¡week ¡for ¡its ¡services ¡and ¡ Crawl applets ¡between ¡Nov ¡2016 ¡and ¡May ¡2017 Overall, ¡we ¡crawled ¡ 200G data ¡and ¡we ¡have ¡ Dataset open ¡sourced ¡it ¡on ¡our ¡project ¡website. Service ¡categories ¡and ¡distribution, ¡ ¡IoT usage, ¡ Measure applet ¡properties. 8
Ho How ¡ ¡IFTTT ¡ ¡Evolves: ¡ ¡ St Statistics Aspect Sep 2015 Apr 2017 Services 220 408 Triggers Triggers 768 768 1490 1490 Actions 368 957 Applets 224K 320K Applet Contributors 106K 135K Adoptions 12 millions 24 millions 9
Ho How ¡ ¡IFTTT ¡ ¡Per erforms : ¡ Ap Applet ¡ ¡Selection A1 Hue Wemo is ¡turned ¡on Turn ¡on ¡ Light Switch Google ¡ A2 Wemo is ¡turned ¡on Add ¡line ¡to ¡ Spreadsheet Switch Hue A3 gets ¡a ¡email Blink ¡ Gmail ¡ Light A4 Google ¡ gets ¡new ¡attach ¡ Save ¡to Gmail ¡ Drive Hue Amazon ¡ gets ¡ ¡a ¡voice ¡CMD A5 Turn ¡off Light Alexa A6 Wemo Amazon ¡ gets ¡ ¡a ¡voice ¡CMD Turn ¡on ¡ Switch Alexa A7 Google ¡ Amazon ¡ plays a ¡ ¡song Add ¡line ¡to ¡ Spreadsheet Alexa 10
Ho How ¡ ¡IFTTT ¡ ¡Per erforms : ¡ : ¡ En End2En End ¡ ¡Latency 6. ¡Turn ¡on ¡Hue 5. ¡Turn ¡on ¡Hue 4. ¡Turn ¡on ¡Hue Hue ¡Hub Hue ¡Light 7. ¡Hue ¡is ¡ turned ¡on Home ¡Router 2. ¡Sync ¡to ¡ 1. ¡Turn ¡on ¡ 3. ¡Sync ¡to ¡ Server Wemo IFTTT Test ¡Controller Wemo Switch 11
Ho How ¡ ¡IFTTT ¡ ¡Per erforms : ¡ : ¡ En End2En End ¡ ¡Latency A 1 to A 4 A 5 to A 7 Each ¡applet ¡is ¡tested ¡50 ¡times ¡at ¡ 1 different ¡hours ¡of ¡a ¡3-‑day ¡period. 0.8 A1-‑A4 ¡show ¡ large and ¡ highly ¡ 0.6 CDF variable latency. ¡ ¡ 0.4 25 th : ¡58s, ¡50 th : ¡84s, ¡75 th : ¡122s 0.2 A5-‑A7 ¡involve ¡Amazon ¡Alexa 0 whose ¡applet ¡execution ¡seem to ¡ 10 0 10 1 10 2 10 3 be ¡specially ¡customized. ¡ ¡ T2A Latency (s) 12
Ho How ¡ ¡IFTTT ¡ ¡Per erforms : ¡ : ¡ Id Iden entif ify ¡ ¡Bottlen lenec ecks Who ¡incurs ¡the ¡high ¡latency? 5. ¡Turn ¡on ¡Hue 6. ¡Turn ¡on ¡Hue 4. ¡Turn ¡on ¡Hue Hue ¡Hub Hue ¡Light 7. ¡Hue ¡is ¡turned ¡on Home ¡Router 1. ¡Turn ¡on Wemo 2. ¡Sync ¡to ¡Server 3. ¡Sync ¡to ¡IFTTT Test ¡Controller Wemo Switch 13
Ho How ¡ ¡It ¡ t ¡Per erforms : ¡ : ¡ Id Iden entif ify ¡ ¡Bottlen lenec ecks E2: ¡Replace ¡Both ¡Trigger ¡and ¡ E1: ¡Replace ¡Trigger ¡Service Action ¡Services Our ¡Action ¡ 6. ¡Turn ¡on ¡Hue Server 4. ¡Turn ¡on ¡Hue 5.2 ¡Turn ¡on ¡Hue Hue ¡Hub Hue ¡Light 5.1 ¡Turn ¡on ¡ 7. ¡Hue ¡is ¡ Our ¡ Hue turned ¡on Proxy 2.2 ¡Sync ¡to ¡Server Home ¡Router 2.1 ¡Sync ¡to ¡Proxy Our ¡Trigger ¡ 3. ¡Sync ¡to ¡IFTTT 1. ¡Turn ¡on ¡Wemo Server Test ¡Controller Wemo Switch 14
Ho How ¡ ¡It ¡ t ¡Per erforms : ¡ : ¡ Id Iden entif ify ¡ ¡Bottlen lenec ecks Low ¡polling ¡frequency ¡of ¡ E1: ¡Replace ¡Trigger ¡Service Redo ¡the ¡latency ¡experiment IFTTT ¡leads ¡to ¡high ¡latency ¡ Our ¡Action ¡ 6. ¡Turn ¡on ¡Hue Server 4. ¡Turn ¡on ¡Hue 5.2 ¡Turn ¡on ¡Hue Clock: ¡82.1s Hue ¡Hub Clock: ¡83.0s Hue ¡Light 5.1 ¡Turn ¡on ¡Hue 7. ¡Hue ¡is ¡turned ¡on Our ¡ Clock: ¡83.0s Clock: ¡83.8s Proxy 2.2 ¡Sync ¡to ¡Server Clock: ¡0.16s Home ¡Router 2.1 ¡Sync ¡to ¡Proxy Clock: ¡0s Our ¡Trigger ¡ Clock: ¡0.04s 1. ¡Turn ¡on ¡Wemo 3. ¡IFTTT ¡poll ¡events Server Clock: ¡81.1s Test ¡Controller Wemo Switch 15
Di Discussion: ¡ ¡ Per erforman ance Low Low ¡polling ¡frequency ¡is ¡not ¡suitable ¡for ¡ Polling ¡ time-‑sensitive ¡workflows. High High ¡polling ¡frequency ¡will ¡add ¡untenable ¡ Polling ¡ pressure ¡to ¡the ¡server ¡side. High Adoptions: ¡24 ¡millions, ¡Frequency: ¡20/min Polling ¡ Polls/Day: ¡691.2 ¡billions 16
Di Discussion: ¡ ¡ Per erforman ance Intuitively ¡works, ¡requires ¡various ¡service ¡ Push providers ¡to ¡support ¡subscription ¡ ¡ Edge ¡ Deploy ¡workflow ¡engines ¡in ¡edging ¡or ¡local ¡ Computing environment: ¡security ¡issues We ¡need ¡a ¡more Efficient and ¡Responsive Solution
Di Discussion: ¡ ¡ Sec ecurit ity Least ¡ Least ¡Privilege ¡rule ¡is ¡broken. Privilege IFTTT ¡requires ¡max ¡privileges ¡for ¡each ¡service. Privilege ¡authorization ¡is ¡not ¡binding ¡to ¡specific ¡ Binding applets ¡and ¡is ¡valid ¡even ¡if ¡no ¡applets ¡require ¡it. We ¡need ¡a ¡more Secure Solution
Di Discussion: ¡ ¡ In Intellig elligen ence Infinite ¡ Loop Trigger ¡ Trigger ¡ Action ¡A1 Action ¡A1 T1 T2 Trigger Action Action ¡ Burst when email arrives, blink hue light 0 100 200 300 400 We ¡need ¡a ¡Smarter Solution Time (second)
Da Data ¡ ¡Release Applets 7 ¡Snapshots, ¡each ¡per ¡month ¡across ¡Nov ¡2016 ¡to ¡ Services May ¡2017. Source ¡ Performance ¡testbed, ¡self-‑implemented ¡IFTTT ¡ Code service, ¡measurement ¡scripts, ¡data ¡crawling ¡scripts. https://www.cs.indiana.edu/~fengqian/ifttt_measurement/
Q&A xm xmi@iu.edu
Recommend
More recommend