Predictable Dynamic Plugin Architectures

Abstract

Modern software systems are often assembled from collections of components. Ideally it should be possible to construct correctly functioning systems by simply deploying sets of independent components. It should also be straightforward to effect upgrades or reconfigurations after the application has been deployed. The notion of a self-organising system aims to remove as much of the configuration management effort as possible from the user or developer when working with such systems, passing the responsibility to the system itself. Unfortunately systems without explicitly defined architectures, and those subject to evolution, are prone to behaving in a surprising manner, as components from different sources are combined in different configurations. It is desirable to be confident that the system realised as the result of an upgrade or reconfiguration will behave correctly before a change is made.

We present an approach to dynamically extending applications based on plugin components. Plugins are optional components which can be used to enable the dynamic construction of flexible and complex systems. We present a model of plugin systems and a prototype implementation of a framework for managing them. We show how our model integrates closely with an object-oriented programming language, and requires minimal effort on behalf of the developer to create components that will work with the plugin framework.

In order to ensure the correctness of dynamic systems, some techniques for modelling and analysis are required. We generate models combining the structural and behavioural aspects of prospective system configurations and use model checking to discard those configurations that violate desired behavioural properties. In this way behavioural concerns can be used in choosing between potential configurations. By integrating our modelling and analysis techniques into the reconfiguration process, we can use the analysis that our technique provides to guide self-organisation and produce systems that behave in a predictable way.

Acknowledgements

Thankyou to everyone who supported me during my work on my thesis.

Thesis

The full thesis is available in PDF format.

Links