Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

Yixue Zhao

May 25, 2019
Tweet

More Decks by Yixue Zhao

Other Decks in Research

Transcript

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

    Zhao, Nenad Medvidović University of Southern California May 25, 2019
  2. 4 Background Limited Optimization Techniques • 48 papers (mobile domain)

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

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

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

    (reference architecture) • Gap between researchers and developers Online Repository
  7. 10 Case Study: PALOMA • Leveraging Program Analysis to Reduce

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

    Analyzer Callback Analyzer Original App Proxy Runtime Prefetching Origin Server offline online
  9. 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()
  10. 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()
  11. 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()
  12. 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()
  13. 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()
  14. 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()
  15. 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()
  16. 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()
  17. 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!
  18. 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!
  19. 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!
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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
  27. 31 MAOMAO Benefits • Loosely-coupled modular design • Easy to

    update individual components • Easy to reuse for researchers • Easy to adopt by developers • … Better Apps!
  28. 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
  29. 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)
  30. 36

  31. 37

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