Real-time features and software runtime adaptation are two requirements of modern software. On the one hand, the most important characteristics in real-time applications are their predictable behavior and deterministic execution time. On the other hand, runtime adaptive software are capable of being updated and reconfigured at execution time, making them more flexible and available.
The OSGi Service Platform has become the de facto platform for developing flexible and modular software, due to its simple service-oriented component model. Many Java applications are being migrated to and developed for the OSGi Platform's component model.
However, due to the popularization of real-time solutions such as the Real-Time Specification for Java, some of these applications may have timing constraints which cannot be respected because of the platform's dynamic behavior and the fact that service-oriented component-based application architectures may change at execution time.
This paper proposes to delay reconfigurations for after critical processing, according to Service Level Agreements established between service providers and consumers. We propose two approaches to tackle those issues:
1. an architecture freezing strategy, which blocks the application's architecture during real-time execution periods and delay reconfigurations after them; and,
2. an SLA-based monitoring system that controls the reconfigurations performed at non-critical execution periods.
We have implemented and validated one of our propositions on Apache Felix, an open source OSGi platform. It has been implemented as an extension to the iPOJO component model.
To read this external content in full, download the complete paper from the author online archives at Github.