Portable and efficient distributed threads for Java
Proceedings of the 5th ACM/IFIP/USENIX international conference on Middleware
JavaSymphony, a programming model for the Grid
Future Generation Computer Systems
Distributed real-time specification for Java: a status report (digest)
JTRES '06 Proceedings of the 4th international workshop on Java technologies for real-time and embedded systems
On concurrency improvements in enterprise SOA middleware
Proceedings of the ACM/IFIP/USENIX Middleware '08 Conference Companion
CSECS'08 Proceedings of the 7th conference on Circuits, systems, electronics, control and signal processing
J-Orchestra: Enhancing Java programs with distribution capabilities
ACM Transactions on Software Engineering and Methodology (TOSEM)
Mercury: a reflective middleware for automatic parallelization of Bags-of-Tasks
Proceedings of the 8th International Workshop on Adaptive and Reflective MIddleware
JavaSymphony, a programming model for the Grid
Future Generation Computer Systems
Automatic distribution of sequential code using javasymphony middleware
SOFSEM'06 Proceedings of the 32nd conference on Current Trends in Theory and Practice of Computer Science
Hi-index | 0.00 |
Remote method invocation in Java RMI allows the flow of control to pass across local Java threads and thereby span multiple virtual machines. However, the resulting distributed threads do not strictly follow the paradigm of their local Java counterparts for at least three reasons: Firstly, the absence of a global thread identity causes problems when reentering monitors. Secondly, blocks synchronized on remote objects do not work properly. Thirdly, the thread interruption mechanism for threads executing a remote call is broken. These problems make multi-threaded distributed programming complicated and error prone. We present a two-level solution: On the library level, we extend KaRMI, a fast replacement for RMI, with global thread identities for eliminating problems with monitor reentry. Problem with synchronization on remote objects are solved with a facility for remote monitor acquisition. Our interrupt forwarding mechanism enables the application to get full control over its distributed threads. On the language level, we integrate these extensions with JavaParty's transparent remote objects to get transparent distributed threads. We finally evaluate our approach with benchmarks that show costs and benefits of our overall design.