Distributed threads in Java
Danny Weyns, Eddy Truyen, Pierre Verbaeten · Lirias · 2002
In this paper, we study the problems of thread identity that arise with adapting a local Java program for execution in a distributed environment. When using a distributed control flow programming model like Java RMI or OMG CORBA, the programmer should take into account an inherent shift of semantics. We experienced a particular problem with shift of thread semantics when extending a serialization mechanism for JVM threads to a distributed setting. More specific, we encountered the problem of losing logical thread identity when the control crosses system boundaries. We solved this problem by introduced the generic notion of distributed thread identity in Java programming. Propagation of a globally unique, distributed thread identity provides a uniform mechanism by which all the program's constituent objects involved in a distributed control flow can uniquely refer to that distributed thread as one and the same computational entity. We have implemented distributed thread identity by means of byte code transformation of application programs. In the paper, we will use the serialization of a distributed execution state as a case to illustrate the value of our Java extension.