2.1 Penelitian Terdahulu
Sebagai bahan acuan dalam tugas akhir ini akan dipaparkan hasil penelitian terdahulu yang pernah dibaca oleh penulis, diantaranya :
Penelitian yang dilakukan oleh Stephanos Androutsellis-Theotokis dan
Diomidis Spinellis dari University of Economics and Business, dengan judul Survey of Peer-to-Peer Content Distribution Technologies, dengan tujuan untuk membuat sebuah pendistribusi penyimpanan prasarana aman dan efisien, mengorganisir, pengindeksan, pencarian, memperbarui, dan pengambilan data. (S. Androutsellis-Theotokis, and D. Spinellis, 2004)
Pada penelitian tersebut dijelaskan bahwa sistem Peer-to-peer adalah sistem P2P file sharing yang terdiri dari node yang saling berhubungan, mampu mengatur diri ke dalam topologi jaringan dengan tujuan berbagi resource seperti konten, siklus CPU, Penyimpanan, dan bandwidth. Distribusi konten area terkemuka yang biasa disebut aplikasi peer-to-peer sistem, didasarkan pada sistem dan infrastruktur yang dirancang untuk berbagi digital media dan data lainnya antara pengguna. (S. Androutsellis-Theotokis, and D. Spinellis, 2004)
Dalam survei ini, kami mengusulkan sebuah framework untuk menganalisis konten peer-to-peer. Pendekatan kami berfokus pada karakteristik nonfunctional
seperti potensi manajemen keamanan, skalabilitas, kinerja, keadilan, dan
resource, dan memeriksa cara di mana karakteristik ini tercermin dalam dan
dipengaruhi oleh keputusan desain arsitektur yang diadopsi oleh arus sistem peer-to-peer. Saat ini sistem peer-to-peer dan teknologi infrastruktur dalam hal lokasi objek dan routing mekanisme mereka didistribusikan, pendekatan mereka untuk konten replikasi, caching dan migrasi, dukungan mereka untuk enkripsi, kontrol akses, otentikasi dan identitas, anonimitas, penyangkalan, akuntabilitas dan reputasi, dan penggunaan sumber daya perdagangan dan skema manajemen (S. Androutsellis-Theotokis, and D. Spinellis, 2004)
Saat ini kami belajar sistem peer-to-peer, teknologi infrastruktur dalam hal lokasi objek dan routing objek mekanisme terdistribusi, pendekatan mereka untuk konten replikasi konten, caching dan migration, enkripsi, kontrol akses, otentikasi
dan identitas, anonynity, deniability, akuntabilitas dan reputasi, dan mereka menggunakan resource trading dan skema manajemen. (S. Androutsellis-Theotokis, and D. Spinellis, 2004)
2.2 Dasar Teori
Pada dasar terori ini akan dibahas mengenai client server, peer to peer, Netbeans IDE, Framework JXTA, CMS(Content Managemen System).
2.2.1 Client Server
Client server adalah sebuah jaringan komputer yang saling terhubung satu sama lain, dimana ada satu komputer sebagai server dan ada atau lebih klien (workstation). Komputer server bertugas untuk menyediakan fasilitas bagi komputer-komputer lain yang terhubung kepada jaringan. Fasilitas yang dimaksud bisa berupa service, data maupun akses. Jadi arsitektur client-server adalah desain sebuah aplikasi terdiri dari client dan server yang saling berkomunikasi ketika mengakses server dalam suatu jaringan. Bisa dilihat pada gambar 2.1 .
7
Gambar 2.1 Client Server Sumber Refrensi : (Saktiaji, 2012)
Sistem Client Server mempunyai beberapa kelebihan dan kekurangan yang antara lain.
Kelebihan sistem client ser ver antara lain :
a. Komputer server dapat difungsikan sebagai pusat data, sehingga komputer
client dapat mengakses data secara terpusat dari satu sumber. Apabila sebuah
client rusak, maka data masih terdapat di server, sehingga tidak mengganggu kinerja client jika diperlukan pergantian piranti.
b. Terdapat administrator yang akan memantau baik segi keamanan maupun administrasi jaringan, sehingga sistem akan tetap terkendali dan terkontrol. Hal-hal yang dapat mengganggu kinerja sistem dapat dihindari seminimal mungkin. Administrator di sini bisa berupa personal (orang) atau dapat juga sebuah sistem otomatis yang dirancang untuk melakukan tindakan preventif
jika terjadi kegagalan sistem.
c. Sistem back up lebih baik dan terkendali. Back up data terkendali disebabkan terdapat pusat data yang ada di dalam server. Apabila pada komputer client
mengalami kerusakan, maka data masih tersedia pada back up sistem yang terdapat di server. Tentu saja, hal ini sangat tergantung dari arsitektur pembuatan server sendiri.
d. Kerusakan pada client tidak berpengaruh pada server. Sistem server dapat berdiri sendiri tanpa adanya client namun sebaliknya, client tidak dapat berdiri sendiri tanpa adanya server. Jika sebuah client mengalami kerusakan, maka sistem terpusat yang ada di server tidak akan mengalami gangguan. Paling cepat hanya sistem yang berhubungan dengan client itu saja yang bermasalah. (Saktiaji, 2012)
Kelemahan sistem client ser ver antara lain:
a. Kelancaran kinerja jaringan sangat tergantung pada server, server memainkan peran penting pada sistem client server. Semua hal terkait dengan service,
data dan jaringan sangat tergantung kepada kualitas server. Jika server
mengalami gangguan, maka dapat dipastikan seluruh sistem client yang tergantung pada server tersebut akan turut mengalami gangguan juga. Namun gangguan yang terjadi pada sebuah client, tidak akan berpengaruh pada kelancara kinerja server.
b. Membutuhkan biaya yang mahal. Sebuah piranti komputer yang difungsikan sebagai server harus mempunyai spesifikasi tertentu sehingga dapat menopang beban komputasi yang tinggi. Server harus mampu melayani satu atau lebih client dengan sedikit atau tanpa gangguan sama sekali. Untuk
9
mendapatkan kriteria piranti komputer semacam itu, tentulah dibutuhkan biaya lebih. (Saktiaji, 2012)
2.2.2 Peer To Peer
Tahun 1979, Usenet, sebuah aplikasi terdistribusi yang dibuat oleh Tom Truscott dan Jim Ellis, lahir di Amerika Serikat. Aplikasi ini umumnya melayani penggunanya dengan newsgroup. Pada tahun-tahun itu, dunia belum mengenal dan mampu menikmati layanan internet sebaik dan secepat seperti saat ini. Umumnya, berkas-berkas yang berada di dalam komputer milik pengguna usenet dipertukarkan dalam bentuk batch files (berkas yang berisi data yang diproses atau ditransmisikan mulai dari awal hingga akhir). Biasanya, para pengguna P2P saat itu saling bertukar data di malam hari yang larut. Itu adalah waktu di sebuah negara besar ketika jalur telepon untuk SLJJ (sambungan langsung jarak jauh) sedang sepi. Akibatnya, tidak ada cara yang efektif untuk membuat fungsi aplikasi ini menjadi tidak terdistribusi. Dengan kata lain, aplikasi ini tetap menjadi aplikasi yang tidak memiliki pusat kendali (server). Bahkan hingga hari ini. Aplikasi P2P generasi awal lain yang sukses dan populer adalah FidoNet. Laiknya Usenet, FidoNet juga digunakan secara terdistribusi. Aplikasi ini dibuat oleh Tom Jennings pada tahun 1984 sebagai cara untuk bertukar pesan diantara pengguna-penggunanya yang memiliki BBS (Bulletin Board System) yang berbeda. Baik Usenet maupun FidoNet dapat menjadi contoh betapa hebatnya teknologi P2P. Sampai detik ini, keduanya masih lestari. Uniknya, sekarang keduanya sudah tidak sendiri lagi. “Cucu-cucu” mereka sudah lahir dan ikut menggebrak dunia maya. Sebut saja Gnutella, Kazaa, Napster, dsb. (Ismail, 2012)
Jaringan komputer P2P termasuk sebuah cabang (subset) dari bidang komputasi terdistribusi. Namun komputasi terdistribusi sendiri bukanlah cabang dari P2P. Sebutan “peer-to-peer” mengisyaratkan sebuah hubungan kesetaraan (egalitarian relationship) diantara para peer Dan yang terpenting, hubungan ini haruslah menghasilkan interaksi langsung antara komputer pengguna yang satu dengan komputer pengguna lainnya. Tanpa embel-embel ada komputer yang berstatus sebagai client dan berstatus sebagai server. Secara teknis, jaringan P2P (peer-to-peer) adalah sebuah jaringan yang memungkinkan semua komputer dalam lingkungannya bertindak/berstatus sebagai server yang memiliki kemampuan untuk mendistribusikan sekaligus menerima berkas-berkas atau sumber. (Ismail, 2012)
Tugas Jaringan Komputer P2P 3daya (resource) yang ada dalam komputer mereka ke komputer lainnya. Jaringan bertipe ini sangat banyak dijumpai di kantor-kantor yang tidak membutuhkan sebuah sentral pengaturan laiknya jaringan client-server. Di internet, jaringan P2P hidup dan berkembang melalui aplikasi-aplikasi populer seperti Napster dan Gnutella. Klasifikasi P2P Berdasarkan tingkat/derajat sentralisasinya, jaringan P2P terbagi ke dalam 2 tipe, yakni:
1. P2P Murni (Pure P2P), dengan ciri-ciri sebagai berikut:
a. Masing-masing peer berstatus setara (egaliter), setiap peer berstatus sebagai client juga server.
b. Tidak ada server pusat yang mengatur jaringan. c. Tidak ada router yang menjadi pusat jaringan.
11
2. P2P Hybrid (Hybrid P2P), dengan ciri-ciri sebagai berikut:
a. Mempunyai server pusat yang memantau dan menjaga informasi yang berada di setiap peer sekaligus merespon peer ketika ada yang meminta informasi itu.
b. Setiap peer bertanggung jawab untuk menyediakan resource yang tersedia. Hal ini terjadi karena server pusat tentu diatur sedemikian rupa untuk tidak memilikinya. Selain itu, hal ini juga dilakukan agar server pusat tersebut dapat mengetahui resource apa saja yang akan didistribusikan di dalam jaringan.
c. Ada router yang menjadi pusat jaringan.
Manfaat peer to peer adalah agar semua peer dapat menyediakan sekaligus memanfaatkan resource komputer, termasuk bandwith, media penyimpanan, dan kemampuan komputasi yang ada di dalam jaringan tersebut. Dengan demikian, ketika node-node (komputer-komputer) telah banyak terhubung dan terjadi banyak permintaan terhadap sistem, kapasitas total yang dimiliki oleh sistem juga akan meningkat. Hal ini merupakan kontra produktif dengan apa yang terjadi pada sistem client-server. Dalam sistem client-server, bertambahnya client justru dapat menyebabkan melambatnya transfer data di dalam sistem. Sifat terdistribusi yang dimiliki oleh jaringan P2P ini juga dapat meningkatkan kestabilan/kekokohan (robustness) sistem dari kemungkinan kegagalan (system failure). Kestabilan ini disebabkan oleh dua faktor. Pertama, adanya replikasi/penggandaan data yang terjadi di antara para pengguna (peer). Kedua, dengan memanfaatkan resource komputer peer itu
sendiri untuk mencari data yang ada di dalam jaringan tanpa mengandalkan satu resource komputer server saja. (Ismail, 2012)
Topologi Jaringan P2P Shuman Ghosemajumder dalam makalahnya yang berjudul Advanced Peer-Based Technology Business Models yang diterbitkan pada tahun 2002 membagi topologi jaringan P2P ke dalam 2 tipe. Berikut tipe-tipe tersebut:
1. Centralized Model
Model ini adalah model yang digunakan oleh Napster. Semua
peer (pengguna) akan terhubung ke satu atau sekelompok (cluster) server.
Server ini berfungsi untuk memfasilitasi hubungan antara peer dalam jaringan tersebut.
Server tersebut dapat memainkan satu, dua atau ketiga peran berikut ini: a. Discovery. Server yang memainkan peran ini akan meyimpan
informasi tentang Tugas Jaringan Komputer : P2P 5 user yang sedang terhubung ke dalam sistem sekaligus memungkinkan semua user untuk mengetahui bagaimana cara menghubungi user tertentu yang sedang berada di dalam jaringan.
b. Lookup. Server dengan peran lookup memiliki kemampuan
server dengan peran discovery. Hanya saja, server ini juga akan menyediakan mekanisme pencarian yang tersentralisasi.
c. Content Delivery. Dalam peran ini, peer akan melakukan
upload pada semua atau beberapa data (content) milik mereka ke
13
lebih cepat ketimbang dengan kedua model peran sebelumnya. Dengan beberapa pertimbangan keadaan tentunya.
2. Decentralized Model
Model ini akan membuat semua peer memiliki status dan fitur yang sama dalam sebuah jaringan. Jadi, tidak akan ada server atau client di dalamnya. Contoh aplikasinya adalah Freenet. Dalam model terdesentralisasi, seorang
peer tidak akan dapat mengetahui Tugas Jaringan Komputer : P2P 6 jumlah
peer lainnya yang sedang terhubung di dalam jaringan. Selain itu, seorang peer
juga tidak akan dapat mengetahui alamat dari peer lain yang akan dihubunginya. Satu lagi kekurangan model ini adalah bahwa peer tidak dapat mengetahui isi (content) komputer milik peer lainnya yang sedang tersedia dalam jaringan. (Ismail, 2012)
Meskipun begitu, model desentralisasi juga memiliki kelebihan. Diantaranya berkaitan dengan masalah keamanan, baik itu dilihat dari segi teknologi maupun hukum hak cipta. Dari segi teknologi, model
desentralisasi menguntungkan karena akan lepas dari kemungkinan satu serangan tunggal yang dapat mematikan jaringan. Sedangkan dari segi hukum hak cipta, meskipun masih menyisakan bias, model ini relatif lebih bebas dari jerat undang-undang hak cipta karena content yang tersebar dalam jaringan merupakan data yang hendak saling dipertukarkan. Bukan untuk dijual atau dibajak. (Ismail, 2012)
Kesimpulan uraian di atas kita dapat mengambil beberapa poin sebagai kesimpulan. Berikut poin-poin tersebut:
a. Teknologi P2P masih akan terus berkembang selaras dengan perkembangan teknologi informasi dan komunikasi.
b. Semakin besar jumlah user yang menjadi peer dalam sebuah jaringan P2P maka akan semakin bagus pula jaringan tersebut. Baik jika dilihat dari sisi teknologi maupun sosial.
c. Berdasarkan derajat sentralisasinya, P2P terbagi ke dalam dua bagian, yakni; P2P Murni dan P2P Hybrid.
d. Berdasarkan topologinya, P2P terbagi ke dalam dua bagian, yakni; topologi model tersentralisasi, dan model terdesentralisasi. e. Masing-masing kategori P2P memiliki kelemahan dan
kelebihan masing-masing. User dapat memilih kategori mana yang paling sesuai dengan kebutuhan dan kemampuannya.
f. Keberadaan jaringan P2P masih sering menimbulkan konflik dalam hal hak cipta suatu karya intelektual. Terutama dalam dunia industri hiburan seperti musik, TV dan film. (Ismail, 2012)
2.2.3 Netbeans IDE
Netbeans Adalah sebuah lingkungan pengembangan - sebuah kakas untuk pemrogram menulis, mengompilasi, mencari kesalahan dan menyebarkan program. Netbeans IDE ditulis dalam Java - namun dapat mendukung bahasa pemrograman lain. Terdapat banyak modul untuk memperluas netbeans IDE. Netbeans IDE adalah sebuah produk bebas dengan tanpa batasan bagaimana digunakan. (Anonim, 2000)
15
Netbeans juga salah satu open source IDE berbasiskan Java dari Sun Microsystems yang berjalan di atas Swing. Swing sebuah teknologi Java untuk pengembangan aplikasi desktop yang multiframework. Netbeans IDE
mendukung pengembangan semua tipe aplikasi (Java J2SE, Web, EJB, Mobile Application). (Hendrawan, 2011)
2.2.4 Fr amewor k J XTA
JXTA adalah sebuah proyek open source yang menciptakan jaringan peer-to-peer overlay yang duduk di atas TCP/IP. Setiap peer pada jaringan diberikan nomor IP, bahkan jika mereka berada di belakang firewall atau tidak memiliki alamat IP yang stabil. Super peer di jaringan JXTA menjalankan router level aplikasi yang menyimpan informasi khusus seperti bagaimana untuk mencapai
peer, bagaimana untuk bergabung dengan sub-kelompok peer, dan peer konten apa membuat tersedia. JXTA level aplikasi relay dapat permintaan proxy antara
peer yang tidak biasanya akan mampu berkomunikasi firewall atau NAT perangkat. peer mengorganisir diri dalam peer group, yang lingkup seluruh permintaan pencarian dan bertindak sebagai tempat keamanan. Peer apapun dapat mempublikasikan dan membuat peer group dengan cara desentralisasi, dan peer
lain dapat mencari dan menemukan peer group ini menggunakan peer super. peer
berkomunikasi menggunakan pipe, sangat mirip dengan Unix pipe. Pipe abstrak dengan cara yang persis di mana dua peer berkomunikasi, memungkinkan teman-teman untuk berkomunikasi menggunakan peer lain sebagai perantara jika mereka biasanya tidak akan mampu berkomunikasi karena jaringan partisi. (Scott Oaks, Bernard Traversat, Li Gong, 2002)
Manfaat dari mengambil pendekatan ini beberapa kali lipat. Pertama, pemrograman dapat dengan mudah memanfaatkan pengetahuan mereka tentang standar TCP/IP socket dan socket server untuk bekerja di jaringan peer-to-peer
JXTA tanpa perlu belajar tentang JXTA. Kedua, Semua socket P2P kode subclass
standar java.net objek, seperti java.net.Socket, sehingga aplikasi jaringan yang ada dapat dengan cepat dipindahkan untuk bekerja di jaringan peer-to-peer. Proyek P2P socket sudah mencakup sejumlah besar perangkat lunak porting menggunakan peer-to-peer jaringan, termasuk web server (Jetty) yang dapat menerima permintaan dan melayani konten melalui jaringan peer-to-peer; servlet
dan JSP mesin (Dermaga dan Jasper) yang memungkinkan servlets yang ada dan JSP untuk melayani klien P2P; XML-RPC client dan server (Apache XML-RPC) untuk mengakses dan mengekspos Endpoint P2P XML-RPC; HTTP/1.1 klien (Apache Commons HTTP-klien) yang dapat akses P2P web server; gateway
(Smart Cache) untuk membuatnya mungkin untuk browser yang ada untuk mengakses P2P situs web; dan WikiWiki (JSPWiki) yang dapat digunakan untuk host WikiWikis pada komputer lokal Anda bahwa rekan-rekan lain dapat mengakses dan mengedit melalui jaringan P2P. Bahkan lebih baik, Semua software ini bekerja dan terlihat persis seperti yang terjadi sebelumnya sedang porting. Abstraksi P2P socket begitu kuat bahwa Port masing-masing dari potongan-potongan dari perangkat lunak mengambil sesedikit 30 menit sampai beberapa jam. Semuanya termasuk dalam proyek soket P2P adalah open source, sebagian besar di bawah lisensi BSD-jenis, dan karena lintas-framework, yang ditulis di Java. (Scott Oaks, Bernard Traversat, Li Gong, 2002)
17
2.2.5 Konsep Detail J XTA
Dibawah ini beberapa konsep yang terdapat pada framework JXTA:
a. Peer
Peer adalah perangkat jaringan yang mengimplementasikan satu atau lebih protokol JXTA. Peer dapat termasuk sensor, telepon, dan PDA, serta PC, server, dan super komputer. Setiap peer beroperasi secara independen dan asynchronous dari semua peer lainnya, dan secara unik diidentifikasi oleh peer ID. Peer mempublish satu atau lebih interface
jaringan untuk digunakan pada protokol JXTA.
Setiap interface di-publish sebagai peer terakhir, yang unik mengidentifikasi interface jaringan. Peer endpoints digunakan oleh peer
untuk membangun langsung koneksi point-to-point antara dua peer. Peer
tidak diharuskan untuk memiliki koneksi jaringan langsung point-to-point
antara mereka. peer perantara dapat digunakan untuk pesan rute ke peer
yang dipisahkan karena koneksi jaringan fisik atau konfigurasi jaringan (mis, Nat, firewall, proxy). Peer biasanya dikonfigurasi untuk secara spontan agar menemukan satu sama lain pada jaringan untuk membentuk grup sementara atau persisten hubungan yang disebut peer group. (Microsystems, 2003)
b. Peer Goup
Peer group adalah kumpulan peer yang telah disepakati pada
service. Peer mengatur dirinya sendiri menjadi peer group, masing-masing diidentifikasi dengan ID peer group yang unik. Setiap peer group dapat
menetapkan kebijakan keanggotaan sendiri dari terbuka (siapa saja dapat bergabung) sangat aman dan dilindungi (kredensial yang cukup diperlukan untuk bergabung).
Peer mungkin milik lebih dari satu peer group secara bersamaan. Secara default, kelompok pertama yang dipakai adalah Net Peer Group. Semua peer tergabung pada Net Peer Group. Peer dapat memilih untuk bergabung dengan peer group tambahan. Protokol JXTA menggambarkan bagaimana peer dapat menerbitkan, menemukan, bergabung, dan memantau peer group, mereka tidak mendeteksi kapan atau mengapa peer group dibuat. (Microsystems, 2003)
c. Network Service
Peer bekerja sama dan berkomunikasi untuk mempublikasikan, menemukan, dan aktifkan network service. Peer dapat mempublikasikan beberapa service. Peer menemukan network service melalui peer discoveryprotocol. Protokol JXTA mengakui dua tingkat network service. (Microsystems, 2003)
d. Peer Service
Peer service diakses hanya pada peer yang mempublishkan service
tersebut. Jika peer gagal, maka service juga gagal. Beberapa contoh
service dapat dijalankan pada peer yang berbeda, tetapi masing-masing contoh menerbitkan advertisement sendiri. (Microsystems, 2003)
19
e. Peer Group Service
Sebuah peer group service terdiri dari kumpulan contoh (berpotensi bekerja sama dengan satu sama lain) service berjalan pada beberapa anggota peer group. Jika salah satu peer gagal, peer group service tidak terpengaruh (dengan asumsi service ini masih tersedia dari anggota peer lain). Mengintai service grup yang diterbitkan sebagai bagian dari advertisement peer group. Service dapat berupa memberikan instal ke
peer atau diambil dari jaringan. Dalam rangka untuk benar-benar menjalankan Service, peer mungkin harus mencari implementasi yang cocok untuk runtime proses environment. Dalam proses melakukan
download dan memasang service pada jaringan mirip dengan melakukan pencarian di Internet untuk halaman web, mengambil halaman, dan kemudian menginstal yang diperlukan plugin. (Microsystems, 2003)
f. Advertisement
Semua resource jaringan JXTA - seperti peer, peer group, pipe, dan service yang diwakili oleh advertisement. Advertisement adalah bahasa netral struktur metadata direpresentasikan sebagai dokumen XML. JXTA protokol menggunakan advertisement untuk menggambarkan dan mempublikasikan keberadaan resource. Peers menemukan resource
pencarian advertisement yang sesuai dengan mereka, dan mungkin cache
setiap advertisement yang ditemukan secara lokal. Setiap advertisement
yang diterbitkan dengan jangka waktu lama yang menentukan ketersediaan
resource yang terkait. Jangka waktu lama memungkinkan penghapusannya
reosurce usang tanpa memerlukan kontrol terpusat. Sebuah advertisement
dapat dipublikasikan ulang (sebelum advertisement asli berakhir) untuk memperpanjang masa hidup resource. (Microsystems, 2003)
2.2.6 CMS (Content Management Service)
Content Management Service (CMS) memungkinkan peer untuk berbagi-data seperti dokumen teks, file grafis, file suara, dan media lainnya dengan peer
lainnya. Untuk menjaga konsistensi dengan spesifikasi, CMS bergantung pada
advertisement untuk memberikan informasi tentang media atau file yang akan
di-share, dan bergantung pada pipe JXTA pada mentransfer konten. CMS adalah contoh yang sangat baik dari layanan yang telah dibangun ke dalam sistem JXTA.
Peer dapat memilih untuk menggunakan layanan ini atau tidak, tergantung pada keinginannya untuk berbagi konten dalam peer group. Dengan menggunakan CMS, peer dibebaskan dari Rincian berbagi konten dan membuatnya tersedia untuk pencarian dan transfer. (Gradecki, 2002)
21