Click the name of one of the new chapters above to see its contents.
Chapter 10 Peer-to-peer systems
10.2 Napster and its legacy
10.3 Peer-to-peer middleware
10.4 Routing overlays
10.5 Overlay case studies: Pastry, Tapestry
10.6 Application case studies: Squirrel, OceanStore, Ivy
Squirrel web cache; OceanStore file store; Ivy file system;
Peer-to-peer systems represent a paradigm for the construction of distributed systems and applications in which data and computational resources are contributed by many hosts on the Internet, all of which participate in the provision of a uniform service. Their emergence is a consequence of the very rapid growth of the Internet, embracing many millions of computers and similar numbers of users requiring access to shared resources.
A key problem for peer-to-peer systems is the placement of data objects across many hosts and subsequent provision for access to them in a manner that balances the workload and ensures availability without adding undue overheads. We describe several recently-developed systems and applications that are designed to achieve this. Peer-to-peer middleware systems are emerging that have the capacity to share computing resources, storage and data present in computers ‘at the edges of the Internet’ on a global scale. They exploit existing naming, routing, data replication and security techniques in new ways to build a reliable resource sharing layer over an unreliable and untrusted collection of computers and networks.
Peer-to-peer applications have been used to provide file sharing, web caching, information distribution and other services exploiting the resources of tens of thousands of machines across the Internet. They are at their most effective when used to store very large collections of immutable data. Their design diminishes their effectiveness for applications that store and update mutable data objects.