colin j. macdougall. class of systems and applications “employ distributed resources to perform...

16
Peer-to-Peer Computing Colin J. MacDougall

Upload: jonathan-boone

Post on 30-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Colin J. MacDougall.  Class of Systems and Applications  “Employ distributed resources to perform a critical function in a decentralized manner”  Distributed

Peer-to-Peer Computing

Colin J. MacDougall

Page 2: Colin J. MacDougall.  Class of Systems and Applications  “Employ distributed resources to perform a critical function in a decentralized manner”  Distributed

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

Peer-to-Peer (P2P)

Page 3: Colin J. MacDougall.  Class of Systems and Applications  “Employ distributed resources to perform a critical function in a decentralized manner”  Distributed

P2P vs. Client-Server vs. Hybrid

Page 4: Colin J. MacDougall.  Class of Systems and Applications  “Employ distributed resources to perform a critical function in a decentralized manner”  Distributed

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,...

History of P2P

Page 5: Colin J. MacDougall.  Class of Systems and Applications  “Employ distributed resources to perform a critical function in a decentralized manner”  Distributed

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)

Goals of P2P

Page 6: Colin J. MacDougall.  Class of Systems and Applications  “Employ distributed resources to perform a critical function in a decentralized manner”  Distributed

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

More Goals of P2P

Page 7: Colin J. MacDougall.  Class of Systems and Applications  “Employ distributed resources to perform a critical function in a decentralized manner”  Distributed

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

Even More Goals of P2P

Page 8: Colin J. MacDougall.  Class of Systems and Applications  “Employ distributed resources to perform a critical function in a decentralized manner”  Distributed

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

Categories of P2P Systems

Page 9: Colin J. MacDougall.  Class of Systems and Applications  “Employ distributed resources to perform a critical function in a decentralized manner”  Distributed

Divide problem into small, independent parts 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

Distributed Computing

Page 10: Colin J. MacDougall.  Class of Systems and Applications  “Employ distributed resources to perform a critical function in a decentralized manner”  Distributed

Content storage and exchange Circumvent bandwidth limitations Technical Issues

◦ Network Consumption◦ Security◦ Search Capabilities

File Sharing

Page 11: Colin J. MacDougall.  Class of Systems and Applications  “Employ distributed resources to perform a critical function in a decentralized manner”  Distributed

Instant messaging, online games, shared applications

Generally event-driven Technical Challenges

◦ Location of peers◦ Fault Tolerance◦ Realtime Constraints

Communication/Collaboration

Page 12: Colin J. MacDougall.  Class of Systems and Applications  “Employ distributed resources to perform a critical function in a decentralized manner”  Distributed

Execution environments providing layer between OS and applications

Support primary P2P components◦ Naming, discovery, communication, security,

aggregation

Platform Services

Page 13: Colin J. MacDougall.  Class of Systems and Applications  “Employ distributed resources to perform a critical function in a decentralized manner”  Distributed

Central Index Algorithm

Page 14: Colin J. MacDougall.  Class of Systems and Applications  “Employ distributed resources to perform a critical function in a decentralized manner”  Distributed

Flooded Request Algorithm

Page 15: Colin J. MacDougall.  Class of Systems and Applications  “Employ distributed resources to perform a critical function in a decentralized manner”  Distributed

Document Routing Algorithm

Page 16: Colin J. MacDougall.  Class of Systems and Applications  “Employ distributed resources to perform a critical function in a decentralized manner”  Distributed

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

Reference