Abstracting remote object interaction in a peer-2-peer environment

Leveraged by the success of applications aiming at the "free" sharing of data in the Internet, the paradigm of peer-to-peer (P2P) computing has been devoted substantial consideration recently.This paper presents an abstraction for remote object interaction in a P2P environment, called borrow/lend (BL). We present the principles underlying our BL abstraction, and its implementation in Java. We contrast our abstraction with established abstractions for distributed programming such as the remote method invocation or the tuple space, illustrating how the BL abstraction, obviously influenced by such predating abstractions, unifies flavors of these, but also how it captures the constraints specific to P2P environments.

[1]  David R. Karger,et al.  Chord: A scalable peer-to-peer lookup service for internet applications , 2001, SIGCOMM '01.

[2]  Martin Odersky,et al.  Making the future safe for the past: adding genericity to the Java programming language , 1998, OOPSLA '98.

[3]  Dale Skeen,et al.  The Information Bus: an architecture for extensible distributed systems , 1994, SOSP '93.

[4]  Steve Benford,et al.  Collaborative virtual environments , 2001, CACM.

[5]  Geoffrey C. Fox,et al.  Object serialization for marshalling data in a Java interface to MPI , 1999, JAVA '99.

[6]  Michael Philippsen,et al.  A more efficient RMI for Java , 1999, JAVA '99.

[7]  Geoffrey C. Fox,et al.  The Narada Event Brokering System: Overview and Extensions , 2002, PDPTA.

[8]  James F. Doyle,et al.  Peer-to-Peer: harnessing the power of disruptive technologies , 2001, UBIQ.

[9]  Antony I. T. Rowstron,et al.  Pastry: Scalable, Decentralized Object Location, and Routing for Large-Scale Peer-to-Peer Systems , 2001, Middleware.

[10]  Robert J. Oberg Understanding and Programming COM+: A Practical Guide to Windows 2000 DNA , 1999 .

[11]  Massachusett Framingham,et al.  The Common Object Request Broker: Architecture and Specification Version 3 , 2003 .

[12]  Tim Brecht,et al.  Ajents: towards an environment for parallel, distributed and mobile Java applications , 1999, JAVA '99.

[13]  Ian Clarke,et al.  Freenet: A Distributed Anonymous Information Storage and Retrieval System , 2000, Workshop on Design Issues in Anonymity and Unobservability.

[14]  Ken Arnold,et al.  JavaSpaces¿ Principles, Patterns, and Practice , 1999 .

[15]  Darren Govoni,et al.  JXTA: Java P2P Programming , 2002 .

[16]  Peter Druschel,et al.  Pastry: Scalable, distributed object location and routing for large-scale peer-to- , 2001 .

[17]  Jason Maassen,et al.  Efficient replicated method invocation in Java , 2000, JAVA '00.

[18]  Roger Wattenhofer,et al.  Competitive Hill-Climbing Strategies for Replica Placement in a Distributed File System , 2001, DISC.

[19]  Anne-Marie Kermarrec,et al.  Lightweight probabilistic broadcast , 2003, TOCS.

[20]  Patrick Th. Eugster,et al.  On objects and events , 2001, OOPSLA '01.

[21]  Luís E. T. Rodrigues,et al.  Semantically reliable multicast protocols , 2000, Proceedings 19th IEEE Symposium on Reliable Distributed Systems SRDS-2000.

[22]  Richard Monson-Haefel,et al.  Java message service , 2000 .

[23]  Patrick Th. Eugster,et al.  Probabilistic multicast , 2002, Proceedings International Conference on Dependable Systems and Networks.

[24]  Denis Caromel,et al.  Towards seamless computing and metacomputing in Java , 1998 .

[25]  Jason Maassen,et al.  Object-based collective communication in Java , 2001, JGI '01.

[26]  Patrick Th. Eugster,et al.  OS support for P2P programming: a case for TPS , 2002, Proceedings 22nd International Conference on Distributed Computing Systems.