Ask any question about EPFL courses, lectures, exercises, research, news, etc. or try the example questions below.
DISCLAIMER: The Graph Chatbot is not programmed to provide explicit or categorical answers to your questions. Rather, it transforms your questions into API requests that are distributed across the various IT services officially administered by EPFL. Its purpose is solely to collect and recommend relevant references to content that you can explore to help you answer your questions.
Peer-to-peer (P2P) systems are strongly decentralized and asynchronous distributed settings involving a potentially large number of hosts. A common programing model for P2P infrastructures is that of a distributed hashtable (DHT), though which peers share resources they host. On the quest for a corresponding object-oriented high-level programming abstraction, a core question has turned out to be how to represent and handle resources, such that they could capture the broad variety of P2P applications. Answering this question has brought us to revisit parameter passing semantics. This papers presents lazy parameter passing, a parameter passing model which combines the best of pass-by-value and pass-by-reference semantics, and is not limited to P2P settings, but is appealing for any asynchronous distributed object setting. We have put lazy parameter passing to work in a high-level general abstraction for P2P programming, with prototypes for Java and .NET. In this paper, we illustrate the principle of lazy parameter passing through former prototype. We depict the role of Java's concept of dynamic proxies in the implementation of our novel parameter passing semantics, and other distinctive features of our abstraction, and present a general extension to that concept whose scope exceeds by far the context given by our abstraction.