MVCI – Evolutionary, Dynamically Updatable Externally Multi-Versional Component Framework
HAAPSAARI, JOONAS (2008)
HAAPSAARI, JOONAS
2008
Tietojenkäsittelyoppi - Computer Science
Informaatiotieteiden tiedekunta - Faculty of Information Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2008-05-29
Julkaisun pysyvä osoite on
https://urn.fi/urn:nbn:fi:uta-1-18320
https://urn.fi/urn:nbn:fi:uta-1-18320
Tiivistelmä
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
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