Professional Documents
Culture Documents
The architectures
Server-based architecture
Client-Server / Server-Cluster Problems
Limited resources All loads are centered on the server
Server-based architecture has low scalability. The setup and maintenance cost is high.
P2P architecture has high scalability. The setup and maintenance cost is low.
As the Internet usage grow, more and more PCs are connecting to the global net Most of the time PCs are idle Thin client Fat client
Decentralization
A key feature of peer-to-peer networks is decentralization. This has many implications:
robustness: handal availability of information: selalu ada & tersebar dimasing2 client fault-tolerance tends to come from redundancy => satu down yg lain bisa handle and shared responsibility: tugas dibagi
Technology Transition
- Pada jaringan tipe ini semua komputer berkedudukan sama, dapat bertindak sebagai sebuah PC client (information requestor) maupun PC server (information provider).
Hybrid P2P
- Mempunyai server pusat yang memantau dan menjaga informasi yang berada di setiap peer sekaligus merespon peer ketika ada yang meminta informasi tertentu. - Setiap peer bertanggung jawab untuk menyediakan resource yang tersedia.
Karena server pusat tidak memiliki resource tersebut, hal ini juga dilakukan agar server pusat tersebut dapat mengetahui resource apa saja yang akan didistribusikan di dalam jaringan.
Why P2P?
Information - Hard to find, impossible to catalog and index all of the information Bandwidth - Hot links get hotter
Makin bagus informasi, makin laris dan makin tak terbendung Makin banyak juga yg memilikinya dan tersebar dimana-mana
Computing resources - Heavily loaded nodes get overloaded, idle nodes remain idle
P2P Goals/Benefits
Cost/data sharing Reduce cost: operasional murah Resource aggregation (digabungkan) dari berbagai sumber Improved reliability : kerja jaringan tidak tergantung pada satu server Increased autonomy (kebebasan) pada masing-masing peer Anonymity/privacy masing2 peer
Scalability : since every peer is alike, it is possible to add
more peers to the system and scale to larger networks.
Process sharing
For large-scale computations Data analysis, data mining, scientific computing E.g.: SETI@Home, Folding@Home, distributed.net
Collaborative environments
For remote real-time human collaboration. Instant messaging, virtual meetings, shared whiteboards, teleconferencing, tele-presence. E.g.: talk, IRC, ICQ, AOL Messenger, Jabber, MS Netmeeting, NCSA Habanero, some of Games
SETI@Home
SETI Search for Extra-Terrestrial Intelligence @Home On your own computer A radio telescope in Puerto Rico that scans the sky for radio signals Its purpose is to analyze radio signals, searching for signs of extra terrestrial intelligence, and is one of many activities undertaken as part of SETI to prove the practicality of the 'volunteer computing' concept. Fills a DAT tape of 35GB in 15 hours That data have to be analyzed (very large computing)
SETI@Home - Example
Unjuk kerja lebih rendah dibandingkan dengan jaringan client-server, karena setiap komputer/peer disamping harus mengelola pemakaian fasilitas jaringan juga harus mengelola pekerjaan atau aplikasi sendiri.
Kelemahan P2P
Decentralized coordination
How to keep global state consistent? Need for distributed coherency protocols.
P2P Topologies
Centralized Ring Hierarchical
Decentralized
Hybrid
Centralized
Ring
Hieralchical
Decentralized
Hybrid
EXAMPLE P2P Centralized Napster P2P Decentralized KaZaA P2P Hybrid JXTA
Napster
The first large scale peer-to-peer network was Napster, set up in 1999 to share digital music files over the Internet. While Napster maintained centralized (and replicated) index, the music files were created and made available by individuals, usually with music copied from CDs to computer files. Music content owners sued Napster for copyright violations and succeeded in shutting down the service.
1. Users launch Napster and connect to Napster server 2. Napster creates dynamic directory from users personal .mp3 libraries 3.
beastieboy
s ong5
beastieboy
song1.mp3 song2.mp3 song3.mp3 song5.mp3
kingrook
song4.mp3 song5.mp3 song6.mp3
slashdot
song5.mp3 song6.mp3 song7.mp3
27
Gnutella =
Nutella
GNU
Gnutella History
Gnutella was written by Justin Frankel, the 21-year-old founder of Nullsoft. Nullsoft acquired by AOL, June 1999 Nullsoft (the maker of WinAmp) posted Gnutella on the Web, March 14, 2000. 23k users on Gnutella People had already downloaded and shared the program. Gnutella continues today, run by independent programmers.
Gnutella Protocol
Scenario: Joining Gnutella Network ping: discover hosts on network Gnutella Network pong: reply to ping query: search for a file query New PING hit: reply to query push: download request PING PONG The new node connects to a well known PING Anchor node or Bootstrap node. A Then sends a PING message to discover other nodes. PING PONG messages are sent in reply from PING hosts offering new connections with the new node. PING Direct connections are then made to the newly discovered nodes.
PONG
xyz.mp3 ?
Internet
15 14
1 2
14 [10,2)
3
12
Start 10+1 10+2 10+4 10+8 40/46 Int. [11,12) [12,14) [14,2) [2,10) node 12 12 14 2
10
14 [14,2)
JXTA
Website : https://jxta.dev.java.net/ Dimotori oleh Bill Joy dari Sun Microsystem, didukung oleh komunitas dari kalangan akademis dan industri JXTA dirancang untuk lebih baik dibanding solusi P2P yang sudah ada
JXTA
JXTA merupakan kependekan dari juxtapose, yang artinya mendekatkan/menghubungkan Tujuan utama JXTA yang : sebagai platform P2P
JXTA
Interoperability
Setiap vendor dapat mengeluarkan protokol P2P sendiri yang tidak sama, namun tetap dapat terkoneksi
Platform Independence
Dapat dijalankan di banyak platform, mendukung banyak bahasa pemrograman
Ubiquity
Tidak hanya PC, mobile device juga bisa terhubung dalam jaringan P2P JXTA ini
Messages
Data yang dipertukarkan antar peer (XML atau binary)
Pipes
Jalur yang digunakan untuk mengirim Message
Identifiers
Identitas unik setiap peer (UUID Identifier)
Rendezvous Nodes :
node yang dapat menerima dan mengeluarkan koneksi dari banyak node serta membetuk suatu group
Relay Nodes
JXTA routers, untuk akses network dari belakang firewall, NAT
JXTA Architecture
JXTA Applications JXTA Community Applications SUN JXTA Applications JXTA Shell
JXTA Services
SUN Indexing Peer JXTA Searching Commands Services File Sharing Peer Pipes Peer Monitoring
JXTA Core
Peer Groups
Security (authentication, authorization and on the wire) Any Peer on the extended Web
Virtual Mapping
Bluetooth TCP/IP
Physical Network
Firewall
Http Firewall
JXTA
Peer: A JXTA node. JXTA Group: a
Peer group is a set of JXTA nodes who share a common interest Peer Peer Peer Peer Peer
Peer Peer
Peer
JXTA Group
Peer Peer Peer Peer
Sekumpulan peer yang memiliki kesamaan layanan/resource, misalnya: file sharing, cpu sharing, dsb Setiap peer tergabung dalam satu group default yang bernama World Peer Group yang terdiri dari semua JXTA Peers
JXTA
Protokol pada JXTA Peers :
Discover each others Self organize into peers group Advertise and discover network service Communicate with each others Monitor each others
JXTA Pipe
Output Pipe Input Pipe
A JXTA Pipe
Peer 1
Actual Route
Peer 2
Peer 3
Peer 4
Firewall
JXTA Scenario
2 1 3
RV 2. New Node . 5. . 3. 4. 7
1. 4
5 6
Peer Discovery Protocol Peer Information Protocol Pipe Binding Protocol Peer Resolver Protocol Rendezvous Protocol
Fungsi-fungsi
Peer discovery protocol: untuk mencari resource yang diinginkan Peer information protocol: untuk menyimpan informasi mengenai suatu peer (uptime, trafic load, capabilities, state, dsb) Peer binding protocol: memungkinkan suatu peer membuat sebuah virtual channel (pipe) untuk pertukaran data Peer resolver protocol: memungkinkan suatu peer mengirimkan suatu kriteria pencarian resource Redezvous protocol: memungkinkan peer mengirimkan data ke semua peer (listener) pada layanan tertentu Peer end point protocol: untuk mengirimkan data dari suatu peer ke peer lainnya melalui jalur tertentu
NEXT
Multimedia dan Ubiquitous Computing