A Microservice Architecture for Online Mobile App Optimization

A Microservice Architecture for Online Mobile App Optimization

Presentation slides of the paper "A Microservice Architecture for Online Mobile App Optimization" at the International Conference on Mobile Software Engineering and Systems (MOBILESoft) 2019.

The presentation can be found at
Pre-print can be found at https://arxiv.org/abs/1902.08879

E4ec94f3e536e3066279a59adc0cf14d?s=128

Yixue Zhao

May 25, 2019
Tweet

Transcript

  1. 1 A Microservice Architecture for Online Mobile App Optimization Yixue

    Zhao, Nenad Medvidović University of Southern California May 25, 2019
  2. 2 Background

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

    Optimization e.g., bug repair
  4. 4 Background Limited Optimization Techniques • 48 papers (mobile domain)

    accepted at ICSE (2014 – 2018) • only 7 optimization techniques • Limited evaluation e.g., 5 apps
  5. 5 Motivation • Angry users want better apps • Developers

    want better apps • Researchers need to propose more optimization techniques to address real needs
  6. 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” • …
  7. 7 Problem Summary • Reusability issue of existing tools •

    Gap between researchers and developers
  8. 8 Our Solution • Reusability issue of existing tools MAOMAO

    (reference architecture) • Gap between researchers and developers Online Repository
  9. 9 • Case Study • MAOMAO • MAOMAO Repository Outline

  10. 10 Case Study: PALOMA • Leveraging Program Analysis to Reduce

    User- Perceived Latency in Mobile Applications (ICSE 2018) Static Analysis App Instrumentation Optimized App
  11. 11 PALOMA Workflow Static Analysis App Instrumenter Optimized App String

    Analyzer Callback Analyzer Original App Proxy Runtime Prefetching Origin Server offline online
  12. 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()
  13. 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()
  14. 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()
  15. 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()
  16. 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()
  17. 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()
  18. 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()
  19. 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()
  20. 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!
  21. 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!
  22. 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!
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. 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
  30. 30 Other Examples New Techniques?

  31. 31 MAOMAO Benefits • Loosely-coupled modular design • Easy to

    update individual components • Easy to reuse for researchers • Easy to adopt by developers • … Better Apps!
  32. 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
  33. 33 MAOMAO Repository Open Science Community

  34. 34 Our Vision We need you!

  35. 35 Want to know more? J Contact: Yixue Zhao (yixue.zhao@usc.edu)

    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)
  36. 36

  37. 37

  38. 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