Slide 1

Slide 1 text

1 A Microservice Architecture for Online Mobile App Optimization Yixue Zhao, Nenad Medvidović University of Southern California May 25, 2019

Slide 2

Slide 2 text

2 Background

Slide 3

Slide 3 text

3 Background Auxiliary e.g., empirical study Detection e.g., security vulnerabilities Optimization e.g., bug repair

Slide 4

Slide 4 text

4 Background Limited Optimization Techniques • 48 papers (mobile domain) accepted at ICSE (2014 – 2018) • only 7 optimization techniques • Limited evaluation e.g., 5 apps

Slide 5

Slide 5 text

5 Motivation • Angry users want better apps • Developers want better apps • Researchers need to propose more optimization techniques to address real needs

Slide 6

Slide 6 text

6 Common Challenges • “It’s hard to use other research tools” • “They don’t have documentation” • “It’s so time-consuming to find subject apps” • “It’s hard to debug a research tool on real apps without domain-specific knowledge” • …

Slide 7

Slide 7 text

7 Problem Summary • Reusability issue of existing tools • Gap between researchers and developers

Slide 8

Slide 8 text

8 Our Solution • Reusability issue of existing tools MAOMAO (reference architecture) • Gap between researchers and developers Online Repository

Slide 9

Slide 9 text

9 • Case Study • MAOMAO • MAOMAO Repository Outline

Slide 10

Slide 10 text

10 Case Study: PALOMA • Leveraging Program Analysis to Reduce User- Perceived Latency in Mobile Applications (ICSE 2018) Static Analysis App Instrumentation Optimized App

Slide 11

Slide 11 text

11 PALOMA Workflow Static Analysis App Instrumenter Optimized App String Analyzer Callback Analyzer Original App Proxy Runtime Prefetching Origin Server offline online

Slide 12

Slide 12 text

12 PALOMA Reuse Opportunities String Analyzer Callback Analyzer App Instrumenter Violist (FSE 2015) Gator (ICSE 2015) PALOMA Proxy e.g., Insert_TriggerPrefetch() e.g., TriggerPrefetch()

Slide 13

Slide 13 text

13 PALOMA Reuse Opportunities String Analyzer Callback Analyzer App Instrumenter Violist (FSE 2015) Gator (ICSE 2015) PALOMA Proxy e.g., Insert_TriggerPrefetch() e.g., TriggerPrefetch()

Slide 14

Slide 14 text

14 PALOMA Reuse Opportunities String Analyzer Callback Analyzer App Instrumenter Violist (FSE 2015) Gator (ICSE 2015) PALOMA Proxy e.g., Insert_TriggerPrefetch() e.g., TriggerPrefetch()

Slide 15

Slide 15 text

15 PALOMA Reuse Opportunities String Analyzer Callback Analyzer App Instrumenter PALOMA Proxy Violist (FSE 2015) Gator (ICSE 2015) e.g., Insert_TriggerPrefetch() e.g., TriggerPrefetch()

Slide 16

Slide 16 text

16 PALOMA Reuse Opportunities String Analyzer Callback Analyzer App Instrumenter PALOMA Proxy Violist (FSE 2015) Gator (ICSE 2015) e.g., Insert_TriggerPrefetch() e.g., TriggerPrefetch()

Slide 17

Slide 17 text

17 Can we do it better? String Analyzer Callback Analyzer App Instrumenter PALOMA Proxy Violist (FSE 2015) Gator (ICSE 2015) Reflection e.g., Insert_TriggerPrefetch() e.g., TriggerPrefetch()

Slide 18

Slide 18 text

18 Can we do it better? String Analyzer Callback Analyzer App Instrumenter PALOMA Proxy Violist (FSE 2015) Gator (ICSE 2015) e.g., Insert_TriggerPrefetch() e.g., TriggerPrefetch()

Slide 19

Slide 19 text

19 Let’s do it better! String Analyzer Callback Analyzer App Instrumenter PALOMA Proxy Violist (FSE 2015) Gator (ICSE 2015) Static Analyzer e.g., Insert_TriggerPrefetch() e.g., TriggerPrefetch()

Slide 20

Slide 20 text

20 String Analyzer Callback Analyzer App Instrumenter PALOMA Proxy Violist (FSE 2015) Gator (ICSE 2015) Static Analyzer Static Analyzer e.g., Insert_TriggerPrefetch() e.g., TriggerPrefetch() Let’s do it better!

Slide 21

Slide 21 text

21 String Analyzer Callback Analyzer App Instrumenter PALOMA Proxy Violist (FSE 2015) Gator (ICSE 2015) Static Analyzer Static Analyzer App Instrumenter e.g., Insert_TriggerPrefetch() e.g., TriggerPrefetch() Let’s do it better!

Slide 22

Slide 22 text

22 String Analyzer Callback Analyzer App Instrumenter PALOMA Proxy Violist (FSE 2015) Gator (ICSE 2015) e.g., Insert_TriggerPrefetch() e.g., TriggerPrefetch() Static Analyzer Static Analyzer App Instrumenter Backend Service Let’s do it better!

Slide 23

Slide 23 text

23 • A Microservice Architecture for Online Mobile App Optimization • Light-weight, black-box microservices • Easy to reuse and adopt • Suitable for heterogeneous mobile domain e.g., different languages, technologies Let’s do it better with MAOMAO

Slide 24

Slide 24 text

24 MAOMAO Reference Architecture Original App Instrumented App Offline App Development Static Analyzer Backend Service Instrumented OS Online App Runtime Original OS Intermediate Representer Device Monitor OS Instrumenter App Instrumenter

Slide 25

Slide 25 text

25 MAOMAO Reference Architecture Original App Instrumented App Offline App Development Static Analyzer Backend Service Instrumented OS Online App Runtime Original OS Intermediate Representer Device Monitor OS Instrumenter App Instrumenter

Slide 26

Slide 26 text

26 Original App Instrumented App Offline App Development Static Analyzer Backend Service Instrumented OS Online App Runtime Original OS Intermediate Representer Device Monitor OS Instrumenter App Instrumenter MAOMAO Reference Architecture

Slide 27

Slide 27 text

27 Original App Instrumented App Offline App Development Static Analyzer Backend Service Instrumented OS Online App Runtime Original OS Intermediate Representer Device Monitor OS Instrumenter App Instrumenter MAOMAO Reference Architecture

Slide 28

Slide 28 text

28 Original App Instrumented App Offline App Development Static Analyzer Backend Service Instrumented OS Online App Runtime Original OS Intermediate Representer Device Monitor OS Instrumenter App Instrumenter MAOMAO Reference Architecture

Slide 29

Slide 29 text

29 MAOMAO Reference Architecture Original App Instrumented App Offline App Development Static Analyzer Backend Service Instrumented OS Online App Runtime Original OS Intermediate Representer Device Monitor OS Instrumenter App Instrumenter

Slide 30

Slide 30 text

30 Other Examples New Techniques?

Slide 31

Slide 31 text

31 MAOMAO Benefits • Loosely-coupled modular design • Easy to update individual components • Easy to reuse for researchers • Easy to adopt by developers • … Better Apps!

Slide 32

Slide 32 text

32 MAOMAO Repository Researchers App Developers Open Repository Microservice Pool Service Request Pool Benchmark Pool Test Script Pool Testing Environment Testing Engine Portal test results

Slide 33

Slide 33 text

33 MAOMAO Repository Open Science Community

Slide 34

Slide 34 text

34 Our Vision We need you!

Slide 35

Slide 35 text

35 Want to know more? J Contact: Yixue Zhao ([email protected]) Follow-up Paper: Mobile-App Analysis and Instrumentation Techniques Reimagined with DECREE (ICSE 2019, Doctoral Symposium) Follow-up Talk: May 30 Thursday, 12:57pm, Agora lobby (ROSE Festival)

Slide 36

Slide 36 text

36

Slide 37

Slide 37 text

37

Slide 38

Slide 38 text

38 Legend Intermediate Representation MAOMAO’s Components Program Point Configuration REST API API Documentation General Data Original App Instrumented App Offline App Development Static Analyzer Backend Service Instrumented OS Online App Runtime Original OS Intermediate Representer Device Monitor OS Instrumenter App Instrumenter