MULTILISP: a language for concurrent symbolic computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Fine-grained mobility in the Emerald system
ACM Transactions on Computer Systems (TOCS)
Modelling and programming in an object-oriented concurrent language ABCL/1
Object-oriented concurrent programming
Toward a method of object-oriented concurrent programming
Communications of the ACM
The design and performance of a real-time CORBA event service
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Advanced Exception Handling Mechanisms
IEEE Transactions on Software Engineering
Advances in exception handling techniques
Advances in exception handling techniques
Exception Handling during Asynchronous Method Invocation (Research Note)
Euro-Par '02 Proceedings of the 8th International Euro-Par Conference on Parallel Processing
ISOTAS '96 Proceedings of the Second JSSST International Symposium on Object Technologies for Advanced Software
Semantics for parameter passing in a type-complete persistent RPC
ICDCS '96 Proceedings of the 16th International Conference on Distributed Computing Systems (ICDCS '96)
Asynchronous and deterministic objects
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Solving Atomic Broadcast with Indirect Consensus
DSN '06 Proceedings of the International Conference on Dependable Systems and Networks
Advanced Topics in Exception Handling Techniques (Lecture Notes in Computer Science)
Advanced Topics in Exception Handling Techniques (Lecture Notes in Computer Science)
Expressive and Extensible Parameter Passing for Distributed Object Systems
ACM Transactions on Software Engineering and Methodology (TOSEM)
Hi-index | 0.00 |
Though often criticized for its inherent synchronization overhead and coupling, the remote method invocation (RMI) paradigm remains one of the most popular abstractions for building distributed applications. Many authors have suggested ways to overcome its drawbacks focusing mostly on the invoker's perspective, for example by multiplexing invocations to replicated server objects, through "future" return values, or even by prohibiting return values altogether. The more global perspective, and in particular the invokee side, has conversely only received little attention. In this paper we take a fresh look at the RMI paradigm, elaborating on argument passing semantics. We identify three lazy ways of passing arguments by value, differing by the moment at which the transfer of the arguments synchronizes with the execution of the method body. We present a preliminary library implementation of our argument passing semantics in Java RMI, and illustrate their individual benefits through examples. We characterize analytically and empirically application scenarios which benefit from lazy argument passing.