Publication

Systems Group Master's Thesis, no. ETH Zürich; Department of Computer Science, January 2008
Supervised by: Prof. Gustavo Alonso
The OSGi framework is a Java-based technology which solves the problem of software modularization. Services are defined through a service interface and modularization is achieved with the use of bundles interacting through services. The Virtual OSGi Framework project explores the large-scale distribution of OSGi services over heterogeneous computer networks. OSGi bundles and services can be deployed to a virtual framework, which autonomoulsy allocates them to physical nodes. Such an environment requires fault-tolerance, high availability and balanced load in order to be functional and resilient to failures which can occur in distributed systems. This can be achieved with the use of service replication and migration. The setup is highly dynamic and it reacts to changes in the utilization and availability of resources. The dynamism of the environment imposes fluid replication mechanisms, which place a replica and not a copy of a service, wherever it is needed. In this thesis the replication and migration mechanisms of the Virtual OSGi Framework are presented and applied in real-world scenarios. The replication mechanism allows threads in a cluster of JVMs to interact with each other across the boundaries of a single virtual machine. It thereby extends the ideas of the OSGi standard and the Java VM to have a cluster-wide meaning. The clustering behavior is injected into the bytecode of the application classes at load time, without the need of changing the application. The migration mechanisms are applied at the application level providing portability at the cost of minor overhead. Thread state capturing code is injected at load time too, in order to attach a backup object to every thread which will contain the thread state in a serializable form.
@mastersthesis{abc,
	abstract = {The OSGi framework is a Java-based technology which solves the problem of
software modularization. Services are defined through a service interface and
modularization is achieved with the use of bundles interacting through services.
The Virtual OSGi Framework project explores the large-scale distribution of
OSGi services over heterogeneous computer networks. OSGi bundles and services
can be deployed to a virtual framework, which autonomoulsy allocates
them to physical nodes. Such an environment requires fault-tolerance, high
availability and balanced load in order to be functional and resilient to failures
which can occur in distributed systems. This can be achieved with the use of
service replication and migration. The setup is highly dynamic and it reacts to
changes in the utilization and availability of resources. The dynamism of the
environment imposes fluid replication mechanisms, which place a replica and
not a copy of a service, wherever it is needed.
In this thesis the replication and migration mechanisms of the Virtual OSGi
Framework are presented and applied in real-world scenarios. The replication
mechanism allows threads in a cluster of JVMs to interact with each other across
the boundaries of a single virtual machine. It thereby extends the ideas of the
OSGi standard and the Java VM to have a cluster-wide meaning. The clustering
behavior is injected into the bytecode of the application classes at load
time, without the need of changing the application. The migration mechanisms
are applied at the application level providing portability at the cost of minor
overhead. Thread state capturing code is injected at load time too, in order to
attach a backup object to every thread which will contain the thread state in a
serializable form.},
	author = {Damianos Maragkos},
	school = {ETH Z{\"u}rich},
	title = {Replication and Migration of OSGi Bundles in the Virtual OSGi Framework},
	year = {2008}
}