Outline • Peer-to-Peer Middleware • Functional and non-functional requirements of P2P middleware
29/11/2021 Satish Srirama 2
Peer-to-Peer Middleware • A key problem in the design of peer-to-peer applications is providing a mechanism to enable clients to access data resources quickly and dependably – Wherever the peers may be located throughout the network • Napster maintained a unified index of available files – Gives the network addresses of their hosts • Second-generation peer-to-peer file storage systems such as Gnutella and Freenet employ partitioned and distributed indexes – The algorithms used are specific to each system • P2P middleware systems are designed specifically to meet the need for the automatic placement and subsequent location of the distributed objects
29/11/2021 Satish Srirama 3
Functional requirements of P2P middleware • The main function of P2P middleware is to simplify the construction of services that are implemented across many hosts in a widely distributed network – So, it must enable clients to locate and communicate with any individual resource made available to a service • Ability to add new resources and to remove them at will • Ability to add hosts to the service and remove them • Should offer a simple programming interface to application programmers – The interface should be independent of the types of distributed resource that the application manipulates
29/11/2021 Satish Srirama 4
Non-functional requirements of P2P middleware • Global scalability – P2P middleware must be designed to support applications that access millions of objects on tens of thousands or hundreds of thousands of hosts • Load balancing – Balanced distribution of workload across peers – Achieved by a random placement of resources together with the use of replicas of heavily used resources • Optimization for local interactions between neighbouring peers – The ‘network distance’ between nodes that interact has a substantial impact on the latency of individual interactions – The middleware should aim to place resources close to the nodes that access them the most
29/11/2021 Satish Srirama 5
Non-functional requirements of P2P middleware - continued • Accommodating to highly dynamic host availability – Most P2P systems are constructed from host computers that are free to join or leave the system at any time – A major challenge for P2P systems is to provide a dependable service despite these facts – As hosts join the system, they must be integrated into the system and the load must be redistributed to exploit their resources – Redistribute the load when the nodes leave – Studies of P2P applications and systems such as Gnutella and Overnet have shown a considerable turnover of participating hosts • Security of data in an environment with heterogeneous trust – Trust must be built up by the use of authentication and encryption mechanisms to ensure the integrity and privacy of information • Anonymity, deniability and resistance to censorship – Anonymity for the holders and recipients of data is a legitimate concern in many situations demanding resistance to censorship
29/11/2021 Satish Srirama 6
Peer-to-Peer Middleware - continued • How best to design a middleware layer to support global-scale P2P systems is therefore a difficult problem • The requirements for scalability and availability make it infeasible to maintain a database at all client nodes giving the locations of all the resources (objects) of interest • Knowledge of the locations of objects must be partitioned and distributed throughout the network • Each node is made responsible for maintaining detailed knowledge of the locations of nodes and objects in a portion of the namespace – Also responsible for a general knowledge of the topology of the entire namespace • A high degree of replication of this knowledge is necessary to ensure dependability in the face of the volatility – Replication factors as high as 16 are typically used
29/11/2021 Satish Srirama 7
Distribution of information in a routing overlay
29/11/2021 Satish Srirama 8
References & Books • Chapter 10, G. Coulouris, J. Dollimore, T. Kindberg, G. Blair (2011), Distributed Systems: Concepts and Design, Fifth Edition, Addison- Wesley. • Some of the slides are adapted from the lecture materials provided by the reference book https://www.cdk5.net/wp/