180 likes | 426 Views
Peer-to-Peer Computing. Colin J. MacDougall. Peer-to-Peer (P2P). Class of Systems and Applications “Employ distributed resources to perform a critical function in a decentralized manner” Distributed Resources Computing power, storage, bandwidth, etc. Critical Functions
E N D
Peer-to-Peer Computing Colin J. MacDougall
Peer-to-Peer (P2P) • Class of Systems and Applications • “Employ distributed resources to perform a critical function in a decentralized manner” • Distributed Resources • Computing power, storage, bandwidth, etc. • Critical Functions • Distributed computing, data sharing, communication, etc. • Decentralization • Algorithms, data, meta-data
History of P2P • Pre 1980s • Telephony – Communication between peers • 1980s – Early 1990s • FTP with Archie indexing • Mid 1990s • Abandoned in favor of client-server • 1999 • Napster • 2000s • SETI@home, Gnutella, JXTA, .NET, Groove,...
Goals of P2P • Cost Sharing and Reduction • Server normally handles the brunt of costs • Peers can share costs between them • Ex. Napster shared storage space among peers • Resource Aggregation and Interoperability • Huge amounts of storage, computation available • Sum of peer’s resources is accessible • Ex. SETI@home is faster than the fastest supercomputer in the world (as of 2003)
More Goals of P2P • Improved Scalability and Reliability • P2P has no (or little) central authority • Must be able to locate resources in a network of peers • Must remain operative when peers disconnect or networks fail • Increased Autonomy • Local nodes do work on behalf of their users • Users have control over their data and work
Even More Goals of P2P • Anonymity • Of Author, Publisher, Reader, Server, Document, Query • Uses multicasting, covert paths, identity spoofing, non-voluntary placement, encryption, etc. • Dynamism • Peers join and drop the network continuously • Must be able to allocate work to new resources • Must be able to recover from uncompleted work on dropped resources
Categories of P2P Systems • Distributed Computing • Sharing a computation intensive task between peers • Ex. SETI@home • File Sharing • Storing information on and retrieving information from peers • Ex. Napster, Gnutella • Communication & Collaboration • User interaction without central server • Ex. Instant Messaging • Platforms • Contain some capacity for all of the above services • Serve as an environment for P2P applications • Ex. JXTA, .NET
Distributed Computing • Divide problem into small, independentparts • Limited to embarrassingly parallel problems • Cluster-like communication ruled out by network latency • Single Process Multiple Data • Financial Applications • Complex market simulations • Portfolio pricing, risk hedge calculation, credit evaluation, etc. • Security concerns • Biotech Applications • Genome@home, Folding@home
File Sharing • Content storage and exchange • Circumvent bandwidth limitations • Technical Issues • Network Consumption • Security • Search Capabilities
Communication/Collaboration • Instant messaging, online games, shared applications • Generally event-driven • Technical Challenges • Location of peers • Fault Tolerance • Realtime Constraints
Platform Services • Execution environments providing layer between OS and applications • Support primary P2P components • Naming, discovery, communication, security, aggregation
Reference • D.S. Milojicic, V. Kalogeraki, R. Lukose, K. Nagaraja, J. Pruyne, B. Richard, S. Rollins, Z. Xu, Peer-to-peer computing, Technical Report HPL-2002-57R1, HP Laboratories, Palo Alto, USA, 3 July 2003