|M.Sc Student||Michael Ivry|
|Subject||A Multi-Threading Model for Distributed Mobile Objects|
|Department||Department of Electrical Engineering||Supervisor||Mr. Ben-Shaul Z.|
The emergence of large-scale networks has motivated a growing demand for wide spread applications. The "distributed mobile objects" programming model enables a programmer to specify a policy to dynamically deploy the location of the application's components. When specifying an application-based relocation policy, the application is aware of its components’ mobility and determines the destination site for migration. The application may include several executing threads aside from the relocating thread, in which case some of them should be aware of the components' mobility. To achieve this desired threads correlation without complicating the programming task, support of a multi-threading model is required. Applying a system-based relocation policy enables adjustment to changes in the execution environment. There is a need for a separation between the programming of the application's logic, which is static, and the location of its components, which can be dynamic. To achieve this, the mobility of the application components is not sufficient by itself. The state of the application's threads that are executing within the migrating components has to be handled as well.
In this research we present a novel multi-threading programming model for frameworks that combine distributed and mobile objects , and corresponding compile-time and runtime support that realize this model. Key contributions include an automatic thread partitioning scheme that provides the abstraction of logical distributed threads, while permitting arbitrary migration of components which contain parts of the distributed threads in themselves. The distributed mobile multi-threading model is transparent to the application programmer, who uses normal syntax to encode multi-threading applications, but can lower the overhead associated with the model by specifying the migratable components. The multi-threaded model was fully implemented in FarGo, a Java-based middleware for dynamically-relocatable distributed applications.