Haku

MVCI – Evolutionary, Dynamically Updatable Externally Multi-Versional Component Framework

QR-koodi

MVCI – Evolutionary, Dynamically Updatable Externally Multi-Versional Component Framework

With the proliferation of the software-as-a-service application model and other distributed computing models, ensuring the compatibility of the different pieces of the distributed solutions becomes a complicated task. This is further highlighted by the requirement for the availability of the solutions even during and after a dynamic update of the individual components within the distributed component ecosystem.

This thesis introduces the problem consisting of clients concurrently requiring different versions of the same server components within a component-based ecosystem. In the beginning, the solution domains for the problem are identified and the goals for the solution are laid out. A framework that solves the problem – MVCI – is then introduced. It runs a single version of a server component implementation and allows a number of clients to concurrently use multiple, mutually-incompatible versions of the interfaces of the server component. The framework provides automatic translation from the interface versions not directly supported by the implementation to the versions that are supported by the component implementation. Finally, a reference implementation of MVCI supporting automatic transitive translation of interface versions is described in detail. The reference implementation is a Java-based framework that meets most of the goals laid out in this thesis.

In conclusion, the MVCI framework supports independent evolution of components and provides them the capability for dynamic updates. The framework meets well the goals set in the beginning and the reference implementation of MVCI proves that it is feasible to implement such a system.

Key words and terms: dynamic update, installation, component, component framework, software evolution, interface version, interface translation, transitive translation

Tallennettuna: