Abstract. Java middleware mechanisms, such as Java RMI or CORBA implementations, do not support thread coordination over the network: synchronizing on remote objects does not work correctly and thread identity is not preserved for executions spanning multiple machines. The current approaches dealing with the problem suffer from one of two weaknesses: either they require a new middleware mechanism, making them less portable, or they add overhead to the execution to propagate a thread identifier through all method calls. In this paper we present an approach that works with an unmodified middleware implementation, yet does not impose execution overhead. The key to our technique is the bytecode transformation of only stub routines, instead of the entire client application. We argue that this approach is portable and can be applied to mostly any middleware mechanism. At the same time, we show that, compared to past techniques, our approach eliminates an overhead of 5.5-12% (of the total execution time) for applications from the SPEC JVM suite.
In REF , they propose the implementation of DTs through bytecode transformation of stub routines only, instead of the entire client application.
Portable and Efficient Distributed Threads for Java
Middleware
Computer Science