REX: A Development Platform and Online Learning Approach for Runtime Emergent Software Systems
Authors:
Barry Porter†, Matthew Grieves†, Roberto Rodrigues Filho† and David Leslie‡
†School of Computing and Communications; ‡Department of Mathematics and Statistics Lancaster University, UK
Overview:
It's a very interesting paper. This paper gives a new idea for developing software: components and runtime adaptor, and it divides the runtime adaptor into 3 layers. First, the paper designs a new "glue" language named Dana to describe component interface and low level relationships. Then it proposes the "Perception, Assembly and Learning" layer (PAL) for: connecting components (assembly) to a full software system, collecting component's metrics/performance (perception) and provide interface for the learning layer. The highest learning layer will analyze the provided metrics and given action feedback for dynamic tuning.
Main points in this paper:
REX: Dana, PAL and Learning
Dana:
- Describe components' interfaces and dependence relationship
- A protocol for seamless runtime adaptation (component to component)
- Object functionality: private state instantiation and pass references as parameters
PAL:
- SetMain for deciding the major software service, assembly the entire software system
- "Recorder" interface for monitoring components behavior
Learning:
- Baseline algorithm is multi-armed bandit problem and Thompson sampling
- Linear regression model for differentiating independent factors (components)
- Extra term for handling runtime environment in learning equation
Strength:
- A new direction for software design (pretty like hardware design: IP and system modeling process).
- It demonstrates good design in: system assembling, runtime learning and adaptation.
- It considers several variances between ideal learning algorithm and real software system like: shared components metrics and runtime reward changes.
Concerns:
- It's not clear the design handling data movement or other side effects leaded by reconfiguration/re-assembly. For sophisticated storage component, does REX work well in avoiding/mitigating migration overhead? Or for policy changing like cache replacement, how to transfer the old policy attributes to the new attributes (side effect)? e.g. if cache policy moves from LRU to LFU, the timestamp is useless and frequency information is needed.
- For adaptation protocol, REX provides adaptation at component level but misses for the entire software level, i.e. the adaptation order for many-components (which one adapts first?).
- Developers need to provide the complete components for REX to choose.
Own opinion:
This paper gives new idea about how to develop software system: more structured and runtime learning based reconfiguration. Even though some details not clear, but I pretty like this direction.
Blogger Minjun Wu, 04/03/2019
You are correct that certain adaptations may require very high overhead. The system might decide to avoid an adaptation that was too expensive if this cost was in the model. You're right that some adaptations might be very complex: it seems that the approach might require 'safe' points for adaptation. You raise another interesting point about component groups being the granularity of adaptation.
ReplyDelete