performance aware open-world software in a 3-layer architecture
Open-world software is a new paradigm that stresses the concept of software service as a pillar for building applications. Services are unceasingly deployed elsewhere in the open-world and are used on demand. Consequently, the performance of these open-world applications relies on the performance of definitely unknown third-parties. Another consequence is that performance prediction methods can no longer assume that service times for software activities are well-known all over the time. More feasible solutions defend that they should be inferred from the environment, for example monitoring current services executions. So, there is a need for new performance prediction methods, and it is likely that they have to be applied not only when developing, but also during software execution, so to learn from the environment and to adapt to it. In this paper, we build on a three layer architecture, taken from literature, to present an architectural approach for performance prediction in open-world software. Once the approach is presented, the paper focuses on the intricacies of its more challeging component, i.e., the generator of strategies to meet performance goals by selecting the best available set of services.
open-world software software components self-managed systems uml-marte petri nets