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

    View Slide

  2. 2
    Background

    View Slide

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

    View Slide

  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

    View Slide

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

    View Slide

  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”
    • …

    View Slide

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

    View Slide

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

    View Slide

  9. 9
    • Case Study
    • MAOMAO
    • MAOMAO Repository
    Outline

    View Slide

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

    View Slide

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

    View Slide

  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()

    View Slide

  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()

    View Slide

  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()

    View Slide

  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()

    View Slide

  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()

    View Slide

  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()

    View Slide

  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()

    View Slide

  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()

    View Slide

  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!

    View Slide

  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!

    View Slide

  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!

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  30. 30
    Other Examples
    New
    Techniques?

    View Slide

  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!

    View Slide

  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

    View Slide

  33. 33
    MAOMAO Repository
    Open Science
    Community

    View Slide

  34. 34
    Our Vision
    We need you!

    View Slide

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

    View Slide

  36. 36

    View Slide

  37. 37

    View Slide

  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

    View Slide