| << Prev | - Up - | Next >> |
This project started at CS Dept., UCL and CETIC within the framework of PEPITO and ORAGE research projects, and is continuing with others. Our goal is to develop peer-to-peer (P2P) and high-availability algorithms and applications mainly for collaborative work. We developed a P2P platform, that we called P2PS (see license), so that we can further develop and test P2P algorithms. We are using this platform to research and develop adequate functionalities for fault tolerance, group membership, and group communication primitives. It is our intention that the platform be so general that it can be used by different applications wishing to take advantage of P2P functionalities. Since we want it to be open and flexible, the API we provide is quite basic and simple. One can easily develop higher level abstractions. A good example is the abstraction offered by the P2PKit library.
The P2PS library offers primitives and services for building and working with P2P applications. Although independent of the underlying peer-to-peer technology, P2PS currently only supports Tango[1]. Tango is a structured peer-to-peer network organization, that we developed, to better structure relative exponential networks to increase their scalability. It has some commonalities with DKS[5] and, thus, with Chord[6] since DKS is a generalization of Chord. As in Chord and DKS, Tango is based on the idea of Distributed Hash Tables using a circular identifier space to which node identifiers and keys are mapped. As in DKS, an atomic join and a correction on use procedure are employed in Tango. Again, as in DKS, Tango provides a tradeoff between the maximum lookup length in the network and the size of the routing table at each node. However, Tango improves on DKS and Chord, allowing a larger network to be addressed by a routing table of a given size and, as such, increasing scalability in the network. Moreover, Tango provides a framework to exploit routing entry symmetry and, thus, reducing even more the number of routing table maintenance messages. For more details on Tango, see[1].
Employing the overlay network, we provide different communication primitives such as: best-effort and reliable one-to-one, multicast and broadcast. The multicast and broadcast are based on an idea presented in[2]. For more details on the functionality of P2PS see[4].
The P2PS library is undergoing research, and more functionality and attributes will be added. Further work includes the following issues:
make the group communication primitives reliable,
add more communication primitives,
provide group membership.
The P2PS library is implemented in Oz with the Mozart platform. Thus one needs the Oz virtual machine to compile and use it.
You can find the latest evolution of P2PS by attending our mailing list, or by following the announcements in Chapter 6.
This work was partially funded at CETIC (http://www.cetic.be) by the Walloon Region (DGTRE) and the European Union (ERDF and ESF), and at UCL by the Information Society Technologies programme of the European Commission, Future and Emerging Technologies under IST-2001-33234 PEPITO (http://www.sics.se/pepito).
| << Prev | - Up - | Next >> |