Chord: A scalable peer-to-peer lookup service for internet applications
Proceedings of the 2001 conference on Applications, technologies, architectures, and protocols for computer communications
Distributed Systems: Principles and Paradigms
Distributed Systems: Principles and Paradigms
A Note on Distributed Computing
MOS '96 Selected Presentations and Invited Papers Second International Workshop on Mobile Object Systems - Towards the Programmable Internet
A foundation for actor computation
Journal of Functional Programming
Concepts, Techniques, and Models of Computer Programming
Concepts, Techniques, and Models of Computer Programming
Introduction to Reliable Distributed Programming
Introduction to Reliable Distributed Programming
AmbientTalk: Object-oriented Event-driven Programming in Mobile Ad hoc Networks
SCCC '07 Proceedings of the XXVI International Conference of the Chilean Society of Computer Science
Practical Protocol Composition, Encapsulation and Sharing in Kompics
SASOW '08 Proceedings of the 2008 Second IEEE International Conference on Self-Adaptive and Self-Organizing Systems Workshops
Concurrency among strangers: programming in E as plan coordination
TGC'05 Proceedings of the 1st international conference on Trustworthy global computing
Failure handling in a network-transparent distributed programming language
Advanced Topics in Exception Handling Techniques
Hi-index | 0.00 |
The key issue in distributed programming is partial failure: how to handle failures of part of the system. This unavoidable property causes uncertainty because we cannot know whether a remote object is ever going to reply to a message. It is also the reason why RMI/RPC is difficult to use. In this paper we describe the most convenient object-oriented mechanism we have found to develop peer-to-peer applications effectively, namely by using active objects that communicate via asynchronous message passing and fault streams for failure handling. We show that this works better than the usual approach of using RMI to communicate and distributed exceptions for failure handling. We define our peers as lightweight actors and we use them to build a highly dynamic peer-to-peer network that deals well with partial failure and non-transitive connectivity. We give many code examples to show the simplicity and naturalness of our approach.