From P2P to Web Services and Grids: Peers in a Client/Server World

In this theme, we take a look at middleware and applications, along with the supporting techniques that make these possible. We first take a look at a distributed-object based system, called Jini, which provides an overview of some of the underlying techniques that have been used to support distributed systems development (Chapter 5).
We then revisit peer to peer by taking a look at Gnutella, a system that popularised and helped redefine P2P, through its novel decentralised search protocol (Chapter 6). We show how such a model can be efficiently scaled, though the introduction of caching peers, and discuss the advantages and disadvantages of such an approach (Chapter 7).
To set the scene for the last two chapters within this theme, security within distributed systems is introduced (Chapter 8). We then show how many of these security and P2P techniques discussed so far have been used within a real-world system called Freenet (Chapter 9). By generalizing on these ideas, Jxta is introduced, which attempts to provide a middleware infrastructure for programmers by creating a P2P overlay (Chapter 10).