HA
DEP
FAKULTAS MATEM
INSTI
HASRUL ADIPUTRA HARAHAP
EPARTEMEN ILMU KOMPUTER
EMATIKA DAN ILMU PENGETAHU
INSTITUT PERTANIAN BOGOR
BOGOR
2012
HASRUL ADIPUTRA HARAHAP
Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer pada
Departemen Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
ABSTRACT
HASRUL ADIPUTRA HARAHAP. Design A Peer-to-Peer Webcam Network Using JXTA Protocol. Supervised by SRI WAHJUNI.
Internet is a media for exchange of information and data. Network used on the internet today still implementing client-server network model. Clients need the information must related to the server and request the information needed. System established client-server network is a centralized system and can potentially commercial. If the server was down, the information requested by the client can’t be given and the whole network will be disrupted.
Peer-to-peer network is set up to reduce the problem of client-server. Peer-to-peer will not be affected to the problems that occur in each host. If one host to crash or be unable to connect, the network was still able to run. In this research we develop an application using JXTA protocol as a framework for peer-to-peer and API JMF as an additional feature integrated on a JXTA application. API JMF is used to access webcam and produces images or videos.
Video or image files generated by the API JMF can be distributed directly into the peer-to-peer network which has been formed. Other connected peers can directly search and download the video files or images. Downloaded files will be directly stored into a local folder on each peer. Files downloaded can be directly redistributed by every peer. If one peer dies, the other peer can share the data from the dead peer after the file is downloaded from the source peer.
Judul Skripsi : Rancang Bangun Jaringan Peer-to-Peer Webcam dengan Menggunakan Protokol JXTA
Nama : Hasrul Adiputra Harahap
NRP : G64096028
Disetujui Pembimbing
Ir Sri Wahjuni MT NIP 196805012005012001
Diketahui
Ketua Departemen Ilmu Komputer
Dr Ir Agus Buono MSi MKom NIP 196607021993021001
PRAKATA
Alhamdulillahirobbil’alamin, segala puji bagi Allah Subhanahu Wa Ta'ala untuk semua rahmat dan karunia yang selalu dicurahkan oleh-Nya. Selawat beserta salam tercurahkan kepada Nabi Muhammad Shallallahu ‘Alaihi Wa Sallam. Dengan petunjuk dan bimbingan-Nya, penelitian tugas akhir ini berhasil diselesaikan. Tugas akhir yang berjudul Rancang Bangun Jaringan Peer-to-Peer Webcam dengan Menggunakan Protokol JXTA.
Tentunya penyelesaian tugas akhir ini tidak luput dari bantuan berbagai pihak. Pada kesempatan ini, rasa terima kasih penulis ucapkan kepada:
1 Ayahanda M Rahim Harahap, Ibunda Ratna Dewi Siregar, saudara-saudaraku Rudi Hartono Harahap, Reny Ellina Harahap dan Yuyun Sarima Ulfa Harahap beserta semua keluarga besar atas semua doa dan dukungan yang senantiasa diberikan.
2 Ibu Ir Sri Wahjuni MT selaku dosen pembimbing yang senantiasa mencurahkan waktu, tenaga
dan pikiran untuk penyelesaian tugas akhir ini.
3 Bapak Endang Purnama Giri SKom MKom dan Bapak Ahmad Ridha SKom MS sebagai dosen
penguji atas segala masukan yang diberikan.
4 Seluruh dosen pengajar Departemen Ilmu Komputer FMIPA IPB untuk semua yang telah
mereka berikan selama Saya mengikuti proses pembelajaran.
5 Seluruh staf yang telah membantu proses pembelajaran hingga selesai.
6 Aoki, Lina, Yuni, Dura, Laila, Anela, Anis, Debby, Mono, Icha, Rany, Bangun, Desta, Andri,
Pauzi, Canggih, dan semua teman-teman seangkatan Ilkom X4 atas persahabatan dan kebersamaan selama ini. Semoga kebersamaan kita akan terus berjalan untuk selamanya.
7 Ibu Lusi, Ibu Sari, Pak Dedi, Pak Ringga, dan semua keluarga besar Yayasan Pembangunan I
atas doa, dukungan, dan bantuan yang senantiasa diberikan.
8 Agus, Rasyid, Junaidi, Rahmat, dan Oky atas persahabatan dan kebersamaannya.
9 Pihak-pihak lain yang tidak mungkin disebutkan satu persatu untuk bantuannya dalam
penyelesaian tugas akhir ini.
Akhir kata, penelitian tugas akhir ini tentu masih jauh dari sempurna. Masukan dari berbagai pihak tentu amat diharapkan untuk membangun apa yang telah dicapai penelitian ini hingga menjadi lebih baik lagi. Semoga penelitian ini memberikan manfaat untuk dunia terlebih lagi di akhirat.
Bogor, Agustus 2012
RIWAYAT HIDUP
v
DAFTAR ISI
Halaman
DAFTAR GAMBAR ... vi
DAFTAR LAMPIRAN ... vi
PENDAHULUAN Latar Belakang ... 1
Tujuan... 1
Ruang Lingkup ... 1
TINJAUAN PUSTAKA Peer-to-peer ... 1
Arsitektur Peer-to-peer ... 2
JXTA ... 2
Arsitektur JXTA ... 3
JMF ... 3
METODE PENELITIAN Perancangan Jaringan Peer-to-peer ... 4
Implementasi ... 4
Pengujian ... 4
HASIL DAN PEMBAHASAN Perancangan Jaringan Peer-to-peer ... 4
Implementasi ... 5
Pengujian ... 7
KESIMPULAN DAN SARAN Kesimpulan ... 12
Saran ... 12
DAFTAR PUSTAKA ... 12
vi
DAFTAR GAMBAR
Halaman
1 Arsitektur jaringan terpusat (Morkved 2005). ... 2
2 Arsitektur jaringan desentralisasi (Morkved 2005). ... 2
3 Arsitektur jaringan P2P hibrida (Morkved 2005). ... 2
4 JXTA Layer (Gradecki 2002). ... 3
5 Metode Penelitian. ... 4
6 Jaringan Peer-to-peer. ... 4
7 Flowchart program utama... 5
8 Flowchart capture gambar. ... 6
9 Flowchart capture video. ... 6
10 Aplikasi tidak menemukan file "config.ini". ... 7
11 Pemilihan path folder yang dibagi. ... 7
12 Login ke dalam jaringan JXTA peer-to-peer. ... 7
13 Tab connection log aplikasi utama... 8
14 Proses unduh. ... 8
15 Media capture gambar. ... 8
16 Media capture video. ... 9
17 Daftar share file sebelum capture gambar dan video. ... 9
18 Daftar share file setelah capture gambar dan video. ... 9
19 Preview gambar. ... 9
20 Preview video. ... 10
21 Daftar file yang dibagi peer 1. ... 10
22 Daftar file yang dibagi peer 2. ... 10
23 Daftar peer pada peer 3 sebelum peer 1 mati. ... 10
24 Daftar peer pada peer 3 setelah peer 1 mati. ... 10
25 Hasil pencarian oleh peer 3... 11
26 Proses unduh oleh peer 3 ... 11
DAFTAR LAMPIRAN
Halaman 1 Pencarian file dengan memasukkan nama file dan tanpa nama file ... 142 Daftar content yang dibagi ... 15
3 Daftar peer yang tergabung ... 16
PENDAHULUAN
Latar BelakangInternet merupakan media tempat untuk bertukar informasi dan data. Jaringan yang digunakan pada internet saat ini masih
menerapkan model jaringan client-server.
Informasi dapat diperoleh dari server. Client
yang membutuhkan informasi harus
berhubungan dengan server dan meminta
informasi yang dibutuhkan. Layanan yang diberikan oleh server dapat berupa web content, transfer file, dan lain-lain. Namun, setiap layanan tersebut merupakan layanan terpusat dan dapat berpotensi komersial. Permasalahan lain yang timbul adalah jika server mengalami gangguan, data, atau informasi yang diminta
oleh client tidak dapat diberikan dan
keselurahan jaringan tersebut akan terganggu.
Jaringan peer-to-peer dibentuk untuk
mengurungi masalah sistem terpusat. Jaringan peer-to-peer tidak akan terpengaruh terhadap masalah yang terjadi pada masing-masing host. Jika salah satu host mengalami gangguan atau tidak dapat terhubung, jaringan ini tetap dapat
berjalan. Jaringan peer-to-peer merupakan
jaringan yang dikhususkan untuk file sharing, terutama untuk file video dan audio (Liebau et al. 2005). File video atau gambar dapat diperoleh dengan menggunakan perangkat atau media yang disebut kamera. Kamera yang digunakan untuk komunikasi di jaringan atau yang terhubung langsung dengan komputer sering disebut dengan istilah webcam. Banyak situs dan aplikasi yang mengintegrasikan webcam sebagai media komunikasi atau perangkat yang digunakan untuk menghasilkan video atau gambar, seperti Facebook, Yahoo Messengger, Skype, dan masih banyak situs serta aplikasi lain yang menyediakan fitur yang sama. Namun, komunikasi yang dilakukan oleh setiap situs dan aplikasi-aplikasi tersebut pada umumnya menggunakan direktori terpusat sebagai tempat penyimpanan data video atau gambar dari webcam. Direktori terpusat yang digunakan oleh situs tersebut dapat berpotensi komersial.
Jaringan peer-to-peer berbasis webcam bisa menjadi solusi, karena dapat digunakan tanpa
perlu web server dan direktori terpusat.
Pengguna hanya memerlukan pengetahuan teknis yang sangat sedikit untuk terhubung ke
dalam jaringan peer-to-peer dan melakukan
capture video atau gambar dari webcam yang dimilikinya. Video atau gambar yang dihasilkan dapat langsung dibagi pada jaringan peer-to-peer. Pengguna lain yang terhubung dapat mengunduh file yang telah dibagi. Jaringan ini
mengorganisir diri sendiri (self-organising) dan tidak tergantung pada penyedia komponen terpusat (berpotensi komersial).
Tujuan
Tujuan penelitian ini adalah
mengimplementasikan jaringan peer-to-peer
webcam yang dapat membagi file video atau gambar dan dapat diunduh langsung oleh pengguna yang tergabung pada jaringan peer-to-peer.
Ruang Lingkup
Ruang lingkup dalam penelitian ini adalah sebagai berikut:
1 Hanya pengguna yang telah tergabung
dalam jaringan peer-to-peer yang dapat
mengunduh file yang dibagi.
2 Hanya pengguna yang memiliki webcam
dan memasang API JMF yang dapat menghasilkan file video atau gambar.
3 Protokol peer-to-peer yang digunakan
adalah JXTA.
4 Pengaksesan webcam menggunakan API
JMF.
5 Tidak membahas koneksi fisik secara detail. 6 Pengujian menggunakan mesin virtual yang
terhubung dalam jaringan virtual.
TINJAUAN PUSTAKA
Peer-to-peerPeer-to-peer (P2P) merupakan salah satu teknologi komputasi terdistribusi yang memberi
kemudahan sebuah peer untuk melakukan
koneksi dengan peer lain secara langsung dan melakukan pertukaran data antara dua komputer atau peer dalam jaringan tanpa perantara (Kwok et al. 2005). Sebelumnya, peer-to-peer dikenal sebagai konsep host-to-host saat pertama kali digunakan untuk komunikasi setara antara dua peer. Pada konsep ini, setiap peer dapat bertindak sebagai server dan client secara bersamaan (Saeed 2007).
Kurniawan (2005) menyatakan peer pada
jaringan P2P dapat disebut juga sebagai servent karena peer tersebut berperan sebagai client dan server dalam jaringan. Dwifungsi peer tersebut terjadi secara bergantian tergantung aktivitas yang dilakukan. Secara umum aktivitas yang dilakukan sebuah peer terbagi menjadi dua fase, yaitu fase pencarian dan fase pengunduhan.
Pada fase pencarian, sebuah peer A
menanyakan keberadaan file yang diinginkan
kepada peer lain dengan cara mengirimkan
query. Peer B yang memiliki file yang
Selanjutnya peer A mengadakan koneksi langsung dan mengunduh file dari peer B.
Arsitektur Peer-to-peer
Sampai saat ini sudah ada tiga model jaringan P2P yaitu terpusat, desentralisasi, dan hibrida. Contoh dari aplikasi P2P yang menggunakan arsitektur jaringan yang pertama adalah Napster. Arsitektur jaringan terpusat menggunakan server sebagai pusat indeks untuk menadah sebuah database setiap pengguna. Database akan diperbaharui setiap kali peer atau penggunanya akan masuk ke jaringan P2P tersebut, berikut ilustrasi pada Gambar 1 (Morkved 2005).
Gambar 1 Arsitektur jaringan terpusat (Morkved 2005).
Contoh aplikasi P2P generasi kedua yang menggunakan arsitektur jaringan desentralisasi adalah Gnutella. Arsitektur ini dirancang untuk menghindari kelemahan dari arsitektur terpusat. Masing-masing peer dari arsitektur ini dapat bertindak sebagai server ataupun client, berikut adalah ilustrasi pada Gambar 2 (Morkved 2005).
Gambar 2 Arsitektur jaringan desentralisasi (Morkved 2005).
Generasi ketiga adalah gabungan dari arsitektur terpusat dan arsitektur desentralisasi yang biasa disebut dengan arsitektur jaringan hibrida. Pada saat peer client masuk ke dalam jaringan, peer tersebut akan membuat koneksi langsung ke peer pusat dan akan menyimpan informasi peer lainnya yang terhubung dengan
pusat. Apabila peer yang satu ingin
berhubungan dengan peer lainnya, peer tersebut bisa mengambil alamat informasi dari pusat.
Contoh dari arsitektur hibrida ini adalah Direct Connect (DC) network. Lebih jelasnya akan diilustrasikan pada Gambar 3 (Morkved 2005).
Gambar 3 Arsitektur jaringan P2P hibrida (Morkved 2005).
JXTA
JXTA adalah sebuah proyek open source
yang bertujuan mengembangkan framework
untuk aplikasi peer-to-peer (Nocentini 2010). JXTA dirancang untuk lebih baik dibanding
solusi P2P yang sudah ada.Nama JXTA berasal
dari kata juxtaposed (menghubungkan) dan
bermaksud untuk menekankan konsep
kolaborasi dengan model client-server. JXTA menyediakan platform umum yang berisi fitur berikut, yang direkomendasikan oleh jaringan peer-to-peer.
1 Interoperability
Setiap vendor dapat mengeluarkan protokol P2P sendiri yang tidak sama, namun tetap dapat terkoneksi
2 Platform Independence
Dapat dijalankan di banyak platform dan mendukung banyak bahasa pemrograman. 3 Ubiquity
Tidak hanya PC, sistem dapat dijalankan pada berbagai perangkat seperti mobile device yang juga bisa terhubung dalam jaringan P2P JXTA ini.
Pada JXTA, semua peralatan yang
terhubung ke dalam jaringan dapat bertukar pesan dalam format XML dan bekerja sama. JXTA tidak bergantung kepada topologi jaringan yang mendasari (underlying). JXTA berbasiskan format XML dan dapat digunakan pada berbagai bahasa pemrograman modern seperti Java, C#, dan C/C++. Tujuan dari
protokol JXTA adalah setiap peer dapat
membagi sumber daya tanpa mengkhawatirkan tentang topologi jaringan (Saeed 2007). Tujuan dasar yang dicapai platform JXTA meliputi.
1 Setiap Peer dapat menemukan satu sama
lain tanpa ada server terpusat.
3 Peer kemudian dapat mencari, membuat,
dan bergabung dengan group yang telah
ditentukan. Di lain pihak, peer harus
mengorganisir diri ke dalam peer group. 4 Peer kemudian mengiklankan dan mencoba
untuk menemukan sumber daya pada jaringan yang tersedia.
5 Peer harus dapat berkomunikasi satu sama lain.
6 Peer dapat memantau satu sama lain.
7 Setiap Peer dalam jaringan JXTA tidak
diharuskan mengetahui topologi jaringan untuk dapat berkomunikasi satu sama lain. Protokol JXTA dirancang menjadi jaringan
yang dapat berdiri sendiri dan tidak
memerlukan penggunaan proses pengesahan apapun, keamanan atau model enkripsi. JXTA sangat sederhana dan platform umum yang dirancang dengan fungsi dasar untuk menjadi host bagi semua jenis layanan jaringan. Protokol ini juga dapat diimplementasikan pada protokol jaringan lainnya seperti TCP/IP, Bluetooth, dan HTTP.
Ada 6 protokol yang terdapat pada sistem JXTA (Gradecki 2003).
1 Peer Resolver Protocol (PRP) digunakan untuk mengirimkan query ke sejumlah peer lain dan untuk menerima respon.
2 Peer Discovery Protocol (PDP) digunakan untuk mencari resource yang diinginkan. 3 Peer Information Protocol (PIP) digunakan
untuk memperoleh informasi status peer
(uptime, trafic load, capabilities, state, dsb). 4 Pipe Binding Protocol (PBP) digunakan
untuk membuat jalur komunikasi dan pertukaran data antara peer.
5 Peer Endpoint Protocol (PEP) digunakan untuk menemukan rute dari satu peer ke peer yang lain.
6 Rendezvous Protocol (RVP) digunakan untuk menyebarkan pesan dalam jaringan.
Arsitektur JXTA
Perangkat lunak JXTA terdiri atas tiga
lapisan. Ketiga lapisan tersebut akan
ditunjukkan pada Gambar 4.
Gambar 4 JXTA Layer (Gradecki 2002).
1 Core Layer
Core layer terbentuk dari semua faktor utama dan umum dari jaringan P2P. Faktor tersebut adalah peer, peer discovery, peer monitoring, komunikasi peer, dan yang terkait dengan keamanan primitif. Lapisan ini dibagi antara semua perangkat peer-to-peer sehingga memungkinkan proses interoperabilitas.
2 Service Layer
Lapisan ini berada di atas lapisan Core dan merupakan lapisan umum untuk jaringan P2P, tetapi bukan merupakan kebutuhan mutlak untuk jaringan P2P. Contoh layanan jaringan meliputi file sharing, layanan transfer pesan
(AOL messenger), penyimpanan, sistem file
terdistribusi, dan translasi protokol. 3 Application Layer
Pada lapisan ini, aplikasi perangkat lunak dapat dilihat sebagai layanan bagi peer lainnya. Akibatnya, lapisan ini dapat dikembangkan oleh pengembang yang membuat aplikasi JXTA dan dapat digunakan untuk membuat lapisan service bagi peer lainnya.
JMF
Java Media Framework (JMF) adalah Application Programming Interface (API) yang dapat digunakan untuk memasukan data-data media, baik itu audio maupun video ke dalam aplikasi dan applet Java (Priyanggoro 2005).
JMF mengembangkan kemampuan framework
dengan menyediakan dukungan terhadap proses capturing dan storing data media, mengontrol tipe pemrosesan yang dilakukan selama playback, dan melakukan pemrosesan tertentu pada media stream. Implementasi terakhir dari API ini adalah JMF 2.1.1e, yang telah memiliki beberapa pengembangan dalam komponen RTP/RTSP dan bug-fixes.
Komponen JMF secara umum dapat diklasifikasikan menjadi 3 kelompok (Olson 2002).
1 Input
Input mendeskripsikan beberapa jenis media yang digunakan sebagai masukan ke bagian Process.
2 Process
Process melakukan beberapa tindakan pada input. Process memiliki input dan output yang berbeda. sejumlah process yang tersedia dapat
diterapkan pada input atau kelompok input.
Process ini dapat dihubungkan bersama-sama sehingga ouput dari satu process digunakan sebagai input untuk process lain.
3 Output
METODE PENELITIAN
Penelitian ini terdiri atas beberapa tahapanproses untuk membentuk jaringan webcam
peer-to-peer. Tahapan proses tersebut dapat dilihat pada gambar 5.
Gambar 5 Metode Penelitian.
Perancangan Jaringan Peer-to-peer
Jaringan peer-to-peer memiliki beberapa
arsitektur. Penelitian ini menerapkan arsitektur
desentralisasi
sebagai tahap awal dariperancangan jaringan peer-to-peer.
Implementasi
Proses implementasi penelitian ini
menggunakan perangkat keras dan perangkat lunak. Spesifikasi untuk perangkat keras adalah sebagai berikut.
1 Processor Intel Centrino 2.2 GHz,
2 RAM kapasitas 2 GB, dan
3 Harddisk kapasitas 160 GB.
Perangkat lunak yang digunakan untuk penelitian, yaitu:
1 Windows Vista sebagai sistem operasi, dan
2 Netbeans IDE 6.8.1 sebagai editor dan
kompilasi program.
Implementasi dilakukan pada framework
JXTA setelah perancangan jaringan
peer-to-peer diterapkan. Penerapan dilakukan pada perangkat keras dan perangkat lunak yang telah disebutkan. Implementasi JXTA menggunakan bahasa pemrograman Java. Implementasi pada JXTA dilakukan dengan merancang kembali aplikasi Peer-to-Peer File Sharing yang dibuat oleh Saeed (2007).
Proses implemetasi melibatkan API JMF. Proses ini dilakukan agar perangkat yang dibutuhkan dapat diakses. Perangkat yang diakses tersebut adalah kamera komputer atau webcam. Webcam tersebut digunakan untuk melakukan capture video atau gambar.
Pengujian
Pengujian dilakukan setelah aplikasi selesai
diimplementasikan. Proses pengujian
membutuhkan perangkat uji. Perangkat uji yang digunakan untuk mencoba aplikasi ini adalah 3
buah PC. Dua PC dibentuk dengan
menggunakan aplikasi mesin virtual dan 1 PC merupakan PC utama yang mengontrol mesin virtual. PC utama telah terintegrasi dengan kamera atau webcam.
Pengujian dilakukan dengan menggunakan 3 peer atau node yang disesuaikan dengan
perangkat uji. Peer yang memiliki media
webcam akan berperan sebagai peer sumber dan dapat juga berperan sebagai peer client. Peer
yang tidak memiliki webcam hanya dapat
berperan sebagai peer client yang mengunduh data video atau gambar yang disediakan oleh peer yang memiliki webcam.
HASIL DAN PEMBAHASAN
Perancangan Jaringan Peer-to-peerArsitektur desentralisasi dirancang untuk menghindari kelemahan dari arsitektur terpusat. Masing-masing peer dari arsitektur ini dapat
bertindak sebagai server ataupun client.
Komunikasi dilakukan dalam arsitektur ini
dengan mengirimkan pesan berbentuk query
kepada setiap peer yang terhubung. Pesan
tersebut berupa request data yang dibutuhkan.
Jika peer yang menerima query tersebut
memiliki data yang dibutuhkan, peer tersebut akan merespon mengirimkan pesan bahwa data
ditemukan. Jika peer tersebut tidak
menyediakan data yang diminta, peer tersebut
akan menyebarkan query yang diberikan ke
peer lain yang terhubung dengan peer sebelumnya dan proses ini akan berlangsung sampai data yang dibutuhkan telah ditemukan.
Proses penyebaran request data ditunjukkan
pada Gambar 6.
Implementasi
Implementasi dalam JXTA dilakukan
setelah persyaratan sistem dan desain jaringan peer-to-peer telah dirancang. Implementasi dilakukan berdasarkan perancangan arsitektur
desentralisasi yang telah ditetapkan.
Implementasi dilakukan dengan menerapkan aplikasi Peer-to-peer File Sharing yang telah dibuat oleh Saeed (2007). Berikut ini beberapa hal yang perlu dilakukan untuk membentuk aplikasi peer-to-peer JXTA (Saeed 2007). 1 Menyediakan jalur yang aman untuk setiap
peer untuk login ke jaringan JXTA
2 Pengguna harus mampu dan memiliki hak
istimewa untuk membuat file konfigurasi
untuk penggunaan lebih lanjut.
3 Pengguna dapat memilih direktori untuk
dibagi dalam peer group.
4 Peer harus bisa login ke jaringan default JXTA (dikenal sebagai NetPeerGroup) 5 Peer harus dapat mencari group yang telah
ditetapkan
6 Jika group tidak ditemukan dalam proses pencarian, setiap peer harus dapat membuat kelompok mereka dengan UID kelompok yang telah ditetapkan.
7 Peer harus bisa login ke peer group.
8 Peer harus dapat menemukan satu sama lain dalam kelompok.
9 Peer harus bisa berbagi content dengan peer yang lain pada group yang sama.
10 Peer harus dapat menunggu permintaan yang diterima dan dapat menanggapi permintaan yang diterima dari peer lainnya. 11 Peer harus dapat berkomunikasi satu sama
lain dan mencari content tertentu.
12 Jika setiap peer tidak bisa menemukan query yang diminta, mereka harus menyebarkan permintaan query tersebut untuk peer lain dalam group.
13 Peer harus dapat chatting dengan satu sama lain.
14 Peer harus dapat membuat daftar peer lain dalam group yang sama.
15 Peer harus dapat mengunggah data mereka.
16 Pengguna harus dapat mendaftar dan
melihat data mereka sendiri bersama. 17 Peer harus memastikan bahwa proses unduh
tidak rusak dengan melakukan verifikasi. 18 file yang diunduh, setelah sepenuhnya
diunduh.
Flowchart aplikasi utama merupakan flowchart yang dirancang untuk aplikasi ini. Flowchart ini menggambarkan proses umum yang berjalan pada aplikasi dan terdapat proses tambahan dari yang telah dirancang oleh Saeed (2007) seperti ditunjukkan pada bagian yang
dilingkari warna merah pada Gambar 7. Proses tambahan tersebut berupa mengubah nama file
sebelum diunduh jika file yang diunduh
memiliki nama yang sama dengan nama file
yang berada pada folder lokal. Jika nama file yang diunduh tidak sama dengan nama file yang ada pada folder lokal, file dapat langsung diunduh.
Agar dapat mengakses kamera atau webcam yang terhubung dengan komputer, dibutuhkan API JMF yang diintegrasikan pada aplikasi utama. Fitur yang ditambahkan pada tahapan ini
adalah capture gambar, capture video,
menampilkan gambar, dan menampilkan video. Alur dari proses capture gambar dimulai
dengan menjalankan media untuk capture
gambar. Media ini akan mengakses webcam dan
menampilkan gambar secara bersamaan.
Pengguna dapat melakukan capture gambar
dengan memberikan perintah capture. Hasil
yang dari capture tersimpan ke dalam folder lokal yang telah ditentukan. Pengguna dapat
melakukan capture gambar kembali selama
belum keluar dari aplikasi. flowchart untuk capture gambar ditunjukkan pada Gambar 8.
Gambar 8 Flowchart capture gambar.
Proses yang berlangsung antara capture
video dan capture gambar memiliki perbedaan karena video merupakan gambar bergerak dan harus memiliki suara. Alur yang terjadi akan membutuhkan waktu yang lebih lama agar dapat menghasilkan video. Alur untuk proses capture video dimulai dengan menjalankan
media untuk capture. Media tersebut akan
menampilkan menu interaksi untuk melakukan capture video. Pengguna akan melakukan
interaksi dengan memulai capture. Proses
capture akan terus berlangsung dengan berupa input video dan audio yang tertangkap oleh media dan proses akan berhenti ketika
pengguna memberikan perintah untuk
menghentikan proses capture video. File hasil capture tersebut akan tersimpan ke dalam folder lokal yang telah ditentukan. Pengguna dapat
melakukan capture video kembali dan akan
berhenti saat pengguna memberikan perintah untuk menghentikan proses capture. Pengguna akan keluar dari interaksi capture video saat pengguna memberikan perintah untuk keluar. flowchart untuk capture video ditunjukkan pada Gambar 9 berikut.
Pengujian
Langkah awal setting lingkungan pengujian dilakukan dengan menjalankan mesin virtual. Aplikasi mesin virtual yang digunakan adalah
VirtualBox. Pengujian dilakukan dengan
menjalankan 2 komputer virtual yang berada pada mesin virtual dan terpasang sistem operasi Windows XP dan komputer utama yang terpasang sistem operasi Windows Vista. Komputer virtual tersebut dihubungkan dengan komputer utama dengan menggunakan adapter jaringan Host-only Adapter yang terdapat pada
komputer virtual. Masing-masing adapter
jaringan yang terdapat pada komputer diberi alamat IP dan dipasang aplikasi yang telah diimplementasi sebelumnya. Alamat IP yang digunakan adalah 192.168.1.1, 192.168.1.2, dan 192.168.1.3.
Pengujian dimulai dengan menjalankan aplikasi. Aplikasi tersebut berupa file dengan
nama “myPackge.jar”. Aplikasi yang telah
berjalan akan mencari path folder untuk
menetapkan path yang akan dibagi pada
jaringan peer-to-peer. Path ini berupa data teks yang tersimpan pada file bernama “config.ini” dan ditempatkan pada direktori yang sama dengan file aplikasi utama. Jika aplikasi tidak
menemukan file tersebut, aplikasi akan
menjalankan pemilihan folder yang akan dibagi.
Proses pemilihan path folder yang dibagi
ditunjukkan pada Gambar 10 dan Gambar 11.
Gambar 10 Aplikasi tidak menemukan file "config.ini".
Gambar 11 Pemilihan path folder yang dibagi.
Folder yang dipilih pada pengujian ini adalah folder bernama capture. Folder ini akan
dirujuk sebagai tempat penyimpanan hasil capture gambar dan video. Path dari folder yang dipilih tersebut akan disimpan pada file “config.ini” dan aplikasi utama akan membaca file setiap kali aplikasi dijalankan.
Pengujian proses login ke dalam jaringan peer-to-peer dilakukan setelah path folder ditentukan. Proses ini membutuhkan informasi nama peer, password, dan verifikasi password. Password yang dimasukkan paling sedikit
memuat 8 karater. Informasi nama peer,
password, dan verifikasi password disimpan pada folder bernama “.jxta”. Jika data ini sudah tersedia sebelumnya, aplikasi akan melewati proses ini. Proses login ke dalam jaringan JXTA peer-to-peer ditunjukkan pada Gambar 12.
Gambar 12 Login ke dalam jaringan JXTA peer-to-peer.
Pada tahap selanjutnya, aplikasi akan mencari group pada jaringan peer-to-peer. Jika group tidak ditemukan, aplikasi akan membuat group baru dengan nama yang sudah ditentukan dan akan bergabung dengan group yang dibuat tersebut.
Setelah aplikasi membuat atau menemukan group, aplikasi akan membuat jalur data untuk
komunikasi chat dengan peer lain yang
tergabung dalam group yang sama dan
melakukan pembagian content yang terdapat
pada folder yang dibagi. Semua proses dari
pemilihan path folder sampai pembagian
Gambar 13 Tab connection log aplikasi utama.
Proses pengujian pencarian file yang
diinginkan dapat dilakukan tanpa memasukkan nama file yang dicari. Hasil dari pencarian ini adalah semua file yang dibagi oleh semua peer
yang berada pada group yang sama. Jika
pencarian dilakukan dengan memasukkan nama file, hasil yang didapat adalah file yang sesuai
dengan nama yang dimasukkan. Proses
pencarian file ditunjukkan pada Lampiran 1. File yang ada dalam daftar hasil pencarian dapat diunduh setelah menghentikan proses pencarian dan memilih salah satu kolom dari daftar hasil pencarian. Proses pencarian ini akan berhasil jika ada peer yang tergabung dalam jaringan
dan melakukan pembagian content yang
dimiliki peer tersebut.
Proses pengujian unduh file dilakukan
dengan menekan tombol download pada bagian tab search dan progres unduh akan tampil pada tab downloads. Proses unduh dapat dibatalkan
dengan menekan tombol cancel. Hasil unduh
dapat diverifikasi untuk mengecek apakah terjadi perubahan data atau informasi yang terdapat pada file. Proses pengecekan file hasil
unduh dilakukan dengan menggunakan
algoritme checksum 32 bit. Jika terdapat
perubahan pada file, verifikasi tidak akan berhasil dan dinyatakan gagal. Jika tidak ada perubahan pada file, proses verifikasi akan berhasil. Proses unduh ditunjukkan pada Gambar 14.
Gambar 14 Proses unduh.
Pengujian proses capture gambar dan
capture video dilakukan dari peer yang memiliki kamera atau webcam. Proses capture
dilakukan pada media capture gambar dan
media capture video yang dibentuk dari API
JMF. Media Capture gambar terdiri atas player
yang menghasilkan gambar dari webcam,
tombol untuk melakukan capture terhadap
gambar dari webcam, dan preview dari hasil capture. Hasil gambar atau video dari proses capture tersimpan langsung dalam direktori
yang telah dibagi. Media capture gambar
ditunjukkan pada Gambar 15.
Media capture video merupakan media yang digunakan untuk mengambil hasil video melalui webcam. Video yang dihasilkan merupakan dari format file yang dipilih. Media capture video ini hanya memiliki format file berekstensi avi. Jenis video yang dihasilkan dapat berupa gambar RGB dan YUV. Resolusi video yang
tersedia adalah 160x120, 320x240, dan
640x480. Channel audio yang tersedia adalah 44100, 22050, dan 8000. Format audio yang disediakan adalah Mono dan Stereo dengan kualitas 8 bit dan 16 bit. Media capture video ditunjukkan pada Gambar 16. Proses capture video dilakukan dengan pemilihan format yang
sesuai dan kemudian menekan tombol start
pada media capture video. Proses mengakhiri capture video dilakukan dengan menekan tombol end pada media capture video.
Gambar 16 Media capture video.
Nama file yang dihasilkan dari proses hasil dari capture disesuaikan dengan jenis file yang
dihasilkan. Nama file dari proses capture
gambar adalah image dan diikuti dengan nama peer masing-masing. Nama file dari proses capture video adalah video dan diikuti dengan nama peer masing-masing. Proses ini dilakukan
agar file yang dibagi dapat diketahui
sumbernya, kecuali file yang telah diunduh oleh peer lain dan dibagi kembali dengan mengubah
nama file. Hasil capture image dan video
tersebut akan masuk pada daftar content yang dibagi. Nama file yang telah dihasilkan dan
dibagi pada daftar content yang dibagi
ditunjukkan pada Gambar 17 dan Gambar 18.
Gambar 17 Daftar file yang dibagi sebelum capture gambar dan video.
Gambar 18 Daftar file yang dibagi setelah capture gambar dan video.
File hasil capture gambar dapat dilihat
hasilnya melalui media preview. Media ini
berupa player yang dibentuk oleh JMF untuk dapat membaca format gambar. Hasil preview salah satu gambar ditunjukkan pada Gambar 19.
Gambar 19 Preview gambar.
Gambar 20 Preview video.
Pengujian untuk melihat content yang dibagi dalam jaringan dilakukan dengan menekan tombol reload. Setiap ada perubahan terhadap content yang dibagi, proses reload harus dilakukan agar informasi content yang dibagi dapat diketahui. Pengujian melihat content yang dibagi ditunjukkan pada Lampiran 2.
Pengujian lain yang dilakukan adalah dengan membagi file video dan gambar oleh peer 1 yang memiliki webcam. Peer 2 melakukan unduh terhadap file tersebut. File hasil unduh tersebut dibagi kembali oleh peer 2 dan peer 3 dapat mengunduh kembali hasil capture gambar dan video peer 1 dari peer 2 walaupun peer 1 telah tidak tergabung lagi dalam jaringan. Daftar file yang dibagi oleh
peer 1 ditunjukkan pada Gambar 21.
File yang
dibagi oleh peer 1 adalah “imagepeer1.jpg”
dan “videopeer1.avi”.
Gambar 21 Daftar file yang dibagi peer 1.
Peer 2 melakukan unduh file “imagepeer1.jpg” dan “videopeer1.jpg” dari peer 1. Peer 2 kemudian melakukan pembagian
kembali terhadap file yang sudah diunduh
tersebut. Daftar file yang dibagi oleh peer 2 ditunjukkan pada Gambar 22.
Gambar 22 Daftar file yang dibagi peer 2.
Peer 3 melihat daftar peer yang tergabung
dalam group dan peer 1 masih tergabung.
Daftar peer sebelum peer 1 mati ditunjukkan pada Gambar 23.
Gambar 23 Daftar peer pada peer 3 sebelum peer 1 mati.
Peer 1 mati dan peer 3 mengecek kembali peer yang tergabung. Daftar peer setelah peer 1 mati ditunjukkan pada Gambar 24.
Gambar 24 Daftar peer pada peer 3 setelah peer 1 mati.
Peer 3 melakukan pencarian dan
menemukan file “imagepeer1.jpg” dan
Gambar 25 Hasil pencarian oleh peer 3.
Peer 3 melakukan unduh berdasarkan hasil pencarian yang ditemukan. File yang diunduh
adalah file “imagepeer1.jpg” dan
“videopeer1.avi” dari peer 2. Proses unduh ditunjukkan pada Gambar 26.
Gambar 26 Proses unduh oleh peer 3.
Pengujian Daftar peer yang tergabung dapat
dilihat dengan menekan tombol find peers pada
tab list of peers. Peer yang terdaftar merupakan peer yang tergabung dalam group yang sama pada jaringan peer-to-peer. Pengujian untuk melihat daftar peer yang tergabung ditunjukkan pada Lampiran 3.
Pengujian chat dengan peer lain yang
terhubung dalam satu group dapat dilakukan dengan mengisi pesan pada kolom teks dan mengirimkan pesan tersebut ke dalam Area chat dengan menekan tombol send. Area chat akan menampilkan informasi nama peer, waktu, dan isi pesan yang dikirim. Proses pengujian chat pada aplikasi ditunjukkan pada Lampiran 4.
Prosedur pengujian fungsi aplikasi meliputi pemilihan folder yang akan dibagi, login ke dalam jaringan JXTA default group, pencarian file berdasarkan nama file, capture gambar, capture video, preview gambar, preview video, unduh file, chat dengan peer yang berada dalam satu group, menampilkan peer yang tergabung dengan group, dan keluar dari aplikasi. Hasil prosedur pengujian yang dilakukan terhadap aplikasi dan dijalankan pada 3 komputer yang
terhubung pada jaringan virtual ditunjukkan pada Tabel 1.
Tabel 1 Prosedur pengujian aplikasi.
Prosedur Pengujian
Masukan Keluaran yang diharapkan Hasil yang didapat Pemilihan
folder yang
akan dibagi Memilih Path folder File config.ini berisi path
folder yang
dibagi
Berhasil
Login ke
dalam jaringan JXTA default group Peer Name, Password , verify password Masuk ke dalam jaringan peer-to-peer dan mencari group Berhasil
Pencarian file
berdasarkan nama file
teks berupa nama file
Daftar file
yang sesuai dengan nama file Berhasil Capture gambar dari webcam
Webcam File gambar
berformat jpg yang tersimpan pada direktori yang dibagi Berhasil
Capture video
dari webcam
Webcam File video
berformat avi yang tersimpan pada direktori yang dibagi Berhasil Preview gambar
Gambar Menampilkan gambar
Berhasil
Preview video Video Menampilkan
player video
Berhasil
Unduh file File File
tersimpan pada direktori yang dibagi
Berhasil
Chat dengan
peer yang berada dalam satu group
Text Daftar chat
tampil pada area text
semua peer
yang tergabung
Berhasil
Menampilkan
peer yang tergabung dengan group
- Daftar peer
yang tergabung dalam group
Berhasil
Keluar dari aplikasi
- Aplikasi tertutup
KESIMPULAN DAN SARAN
KesimpulanBerdasarkan penelitian yang dilakukan, diperoleh kesimpulan sebagai berikut:
1 file yang dibagi pada jaringan peer-to-peer tidak dapat diunduh oleh user yang belum tergabung dalam group tersebut.
2 Durasi untuk mengunduh file akan berbeda sesuai dengan ukuran file dan koneksi yang terjadi antara masing-masing peer.
3 Peer yang tidak memiliki perangkat kamera
tidak dapat menggunakan fitur capture
video dan gambar namun dapat melakukan
pembagian file dengan mengunduh dan
menempatkan kembali file tersebut ke dalam
direktori yang telah dibagi atau
menambahkan file lain dari direktori yang tidak dibagi ke dalam direktori yang dibagi. 4 File yang sudah terhapus tetap masuk dalam
daftar pencarian selama proses propagasi masih berlangsung.
Saran
Saran yang dapat digunakan untuk
penelitian selanjutnya antara lain:
1 Menghubungkan webcam pada jaringan
peer-to-peer agar webcam dapat diakses langsung oleh peer lain.
2 Mengintegrasikan video streaming pada
jaringan peer-to-peer.
3 Menerapkan arsitektur lain pada penerapan jaringan peer-to-peer webcam.
4 Membuat peer group baru jika tidak
menemukan group dalam jaringan
peer-to-peer.
5 Menghubungkan jaringan peer-to-peer pada
jaringan middleboxes (NATs dan firewalls).
DAFTAR PUSTAKA
Gradecki JD. 2003. Mastering JXTA: Building Java Peer-to-peer Applications. Canada: John Wiley & Sons.
Kurniawan H. 2007. Quality of service
perpustakaan digital berbasis peer-to-peer [tesis]. Jakarta: Fakultas Ilmu Komputer, Universitas Indonesia.
Kwok SH, Chan KY, Cheung YM. 2005. A Server-mediated Peer-to-peer System. ACM SIGecom Exchanges 5: 38–47.
Liebau NC, Heckmann O, Hubbertz I,
Steinmetz R. 2005. A Peer-to-peer Webcam
Network.
ftp://www.kom.tu-darmstadt.de/papers/LHHS05-1-paper.pdf [21 Okt 2011]
Morkved T. 2005. Peer-to-Peer Programming with Wireless Devices [tesis]. Grimstad:
Departemen Information and
Communication Technology, Agder
University College.
Nocentini C. 2010. JXTACh documentation.
http://www.dsi.unifi.it/~nocentin/jxtach/files /jxtach.pdf [21 Okt 2011].
Olson EA. 2002. Java Media Framework basic. http://www.ibm.com/developerworks/java/t utorials/j-jmf/j-jmf-pdf.pdf [3 Jun 2012].
Priyanggoro S. 2003. Membuat Media Player
dengan Java Media Framework (JMF) 2.1.
http://www.ilmukomputer.org/wp-content/uploads/2006/08/sigit-jmf.zip [6 Jul 2012].
ABSTRACT
HASRUL ADIPUTRA HARAHAP. Design A Peer-to-Peer Webcam Network Using JXTA Protocol. Supervised by SRI WAHJUNI.
Internet is a media for exchange of information and data. Network used on the internet today still implementing client-server network model. Clients need the information must related to the server and request the information needed. System established client-server network is a centralized system and can potentially commercial. If the server was down, the information requested by the client can’t be given and the whole network will be disrupted.
Peer-to-peer network is set up to reduce the problem of client-server. Peer-to-peer will not be affected to the problems that occur in each host. If one host to crash or be unable to connect, the network was still able to run. In this research we develop an application using JXTA protocol as a framework for peer-to-peer and API JMF as an additional feature integrated on a JXTA application. API JMF is used to access webcam and produces images or videos.
Video or image files generated by the API JMF can be distributed directly into the peer-to-peer network which has been formed. Other connected peers can directly search and download the video files or images. Downloaded files will be directly stored into a local folder on each peer. Files downloaded can be directly redistributed by every peer. If one peer dies, the other peer can share the data from the dead peer after the file is downloaded from the source peer.
PENDAHULUAN
Latar BelakangInternet merupakan media tempat untuk bertukar informasi dan data. Jaringan yang digunakan pada internet saat ini masih
menerapkan model jaringan client-server.
Informasi dapat diperoleh dari server. Client
yang membutuhkan informasi harus
berhubungan dengan server dan meminta
informasi yang dibutuhkan. Layanan yang diberikan oleh server dapat berupa web content, transfer file, dan lain-lain. Namun, setiap layanan tersebut merupakan layanan terpusat dan dapat berpotensi komersial. Permasalahan lain yang timbul adalah jika server mengalami gangguan, data, atau informasi yang diminta
oleh client tidak dapat diberikan dan
keselurahan jaringan tersebut akan terganggu.
Jaringan peer-to-peer dibentuk untuk
mengurungi masalah sistem terpusat. Jaringan peer-to-peer tidak akan terpengaruh terhadap masalah yang terjadi pada masing-masing host. Jika salah satu host mengalami gangguan atau tidak dapat terhubung, jaringan ini tetap dapat
berjalan. Jaringan peer-to-peer merupakan
jaringan yang dikhususkan untuk file sharing, terutama untuk file video dan audio (Liebau et al. 2005). File video atau gambar dapat diperoleh dengan menggunakan perangkat atau media yang disebut kamera. Kamera yang digunakan untuk komunikasi di jaringan atau yang terhubung langsung dengan komputer sering disebut dengan istilah webcam. Banyak situs dan aplikasi yang mengintegrasikan webcam sebagai media komunikasi atau perangkat yang digunakan untuk menghasilkan video atau gambar, seperti Facebook, Yahoo Messengger, Skype, dan masih banyak situs serta aplikasi lain yang menyediakan fitur yang sama. Namun, komunikasi yang dilakukan oleh setiap situs dan aplikasi-aplikasi tersebut pada umumnya menggunakan direktori terpusat sebagai tempat penyimpanan data video atau gambar dari webcam. Direktori terpusat yang digunakan oleh situs tersebut dapat berpotensi komersial.
Jaringan peer-to-peer berbasis webcam bisa menjadi solusi, karena dapat digunakan tanpa
perlu web server dan direktori terpusat.
Pengguna hanya memerlukan pengetahuan teknis yang sangat sedikit untuk terhubung ke
dalam jaringan peer-to-peer dan melakukan
capture video atau gambar dari webcam yang dimilikinya. Video atau gambar yang dihasilkan dapat langsung dibagi pada jaringan peer-to-peer. Pengguna lain yang terhubung dapat mengunduh file yang telah dibagi. Jaringan ini
mengorganisir diri sendiri (self-organising) dan tidak tergantung pada penyedia komponen terpusat (berpotensi komersial).
Tujuan
Tujuan penelitian ini adalah
mengimplementasikan jaringan peer-to-peer
webcam yang dapat membagi file video atau gambar dan dapat diunduh langsung oleh pengguna yang tergabung pada jaringan peer-to-peer.
Ruang Lingkup
Ruang lingkup dalam penelitian ini adalah sebagai berikut:
1 Hanya pengguna yang telah tergabung
dalam jaringan peer-to-peer yang dapat
mengunduh file yang dibagi.
2 Hanya pengguna yang memiliki webcam
dan memasang API JMF yang dapat menghasilkan file video atau gambar.
3 Protokol peer-to-peer yang digunakan
adalah JXTA.
4 Pengaksesan webcam menggunakan API
JMF.
5 Tidak membahas koneksi fisik secara detail. 6 Pengujian menggunakan mesin virtual yang
terhubung dalam jaringan virtual.
TINJAUAN PUSTAKA
Peer-to-peerPeer-to-peer (P2P) merupakan salah satu teknologi komputasi terdistribusi yang memberi
kemudahan sebuah peer untuk melakukan
koneksi dengan peer lain secara langsung dan melakukan pertukaran data antara dua komputer atau peer dalam jaringan tanpa perantara (Kwok et al. 2005). Sebelumnya, peer-to-peer dikenal sebagai konsep host-to-host saat pertama kali digunakan untuk komunikasi setara antara dua peer. Pada konsep ini, setiap peer dapat bertindak sebagai server dan client secara bersamaan (Saeed 2007).
Kurniawan (2005) menyatakan peer pada
jaringan P2P dapat disebut juga sebagai servent karena peer tersebut berperan sebagai client dan server dalam jaringan. Dwifungsi peer tersebut terjadi secara bergantian tergantung aktivitas yang dilakukan. Secara umum aktivitas yang dilakukan sebuah peer terbagi menjadi dua fase, yaitu fase pencarian dan fase pengunduhan.
Pada fase pencarian, sebuah peer A
menanyakan keberadaan file yang diinginkan
kepada peer lain dengan cara mengirimkan
query. Peer B yang memiliki file yang
Selanjutnya peer A mengadakan koneksi langsung dan mengunduh file dari peer B.
Arsitektur Peer-to-peer
Sampai saat ini sudah ada tiga model jaringan P2P yaitu terpusat, desentralisasi, dan hibrida. Contoh dari aplikasi P2P yang menggunakan arsitektur jaringan yang pertama adalah Napster. Arsitektur jaringan terpusat menggunakan server sebagai pusat indeks untuk menadah sebuah database setiap pengguna. Database akan diperbaharui setiap kali peer atau penggunanya akan masuk ke jaringan P2P tersebut, berikut ilustrasi pada Gambar 1 (Morkved 2005).
Gambar 1 Arsitektur jaringan terpusat (Morkved 2005).
Contoh aplikasi P2P generasi kedua yang menggunakan arsitektur jaringan desentralisasi adalah Gnutella. Arsitektur ini dirancang untuk menghindari kelemahan dari arsitektur terpusat. Masing-masing peer dari arsitektur ini dapat bertindak sebagai server ataupun client, berikut adalah ilustrasi pada Gambar 2 (Morkved 2005).
Gambar 2 Arsitektur jaringan desentralisasi (Morkved 2005).
Generasi ketiga adalah gabungan dari arsitektur terpusat dan arsitektur desentralisasi yang biasa disebut dengan arsitektur jaringan hibrida. Pada saat peer client masuk ke dalam jaringan, peer tersebut akan membuat koneksi langsung ke peer pusat dan akan menyimpan informasi peer lainnya yang terhubung dengan
pusat. Apabila peer yang satu ingin
berhubungan dengan peer lainnya, peer tersebut bisa mengambil alamat informasi dari pusat.
Contoh dari arsitektur hibrida ini adalah Direct Connect (DC) network. Lebih jelasnya akan diilustrasikan pada Gambar 3 (Morkved 2005).
Gambar 3 Arsitektur jaringan P2P hibrida (Morkved 2005).
JXTA
JXTA adalah sebuah proyek open source
yang bertujuan mengembangkan framework
untuk aplikasi peer-to-peer (Nocentini 2010). JXTA dirancang untuk lebih baik dibanding
solusi P2P yang sudah ada.Nama JXTA berasal
dari kata juxtaposed (menghubungkan) dan
bermaksud untuk menekankan konsep
kolaborasi dengan model client-server. JXTA menyediakan platform umum yang berisi fitur berikut, yang direkomendasikan oleh jaringan peer-to-peer.
1 Interoperability
Setiap vendor dapat mengeluarkan protokol P2P sendiri yang tidak sama, namun tetap dapat terkoneksi
2 Platform Independence
Dapat dijalankan di banyak platform dan mendukung banyak bahasa pemrograman. 3 Ubiquity
Tidak hanya PC, sistem dapat dijalankan pada berbagai perangkat seperti mobile device yang juga bisa terhubung dalam jaringan P2P JXTA ini.
Pada JXTA, semua peralatan yang
terhubung ke dalam jaringan dapat bertukar pesan dalam format XML dan bekerja sama. JXTA tidak bergantung kepada topologi jaringan yang mendasari (underlying). JXTA berbasiskan format XML dan dapat digunakan pada berbagai bahasa pemrograman modern seperti Java, C#, dan C/C++. Tujuan dari
protokol JXTA adalah setiap peer dapat
membagi sumber daya tanpa mengkhawatirkan tentang topologi jaringan (Saeed 2007). Tujuan dasar yang dicapai platform JXTA meliputi.
1 Setiap Peer dapat menemukan satu sama
lain tanpa ada server terpusat.
3 Peer kemudian dapat mencari, membuat,
dan bergabung dengan group yang telah
ditentukan. Di lain pihak, peer harus
mengorganisir diri ke dalam peer group. 4 Peer kemudian mengiklankan dan mencoba
untuk menemukan sumber daya pada jaringan yang tersedia.
5 Peer harus dapat berkomunikasi satu sama lain.
6 Peer dapat memantau satu sama lain.
7 Setiap Peer dalam jaringan JXTA tidak
diharuskan mengetahui topologi jaringan untuk dapat berkomunikasi satu sama lain. Protokol JXTA dirancang menjadi jaringan
yang dapat berdiri sendiri dan tidak
memerlukan penggunaan proses pengesahan apapun, keamanan atau model enkripsi. JXTA sangat sederhana dan platform umum yang dirancang dengan fungsi dasar untuk menjadi host bagi semua jenis layanan jaringan. Protokol ini juga dapat diimplementasikan pada protokol jaringan lainnya seperti TCP/IP, Bluetooth, dan HTTP.
Ada 6 protokol yang terdapat pada sistem JXTA (Gradecki 2003).
1 Peer Resolver Protocol (PRP) digunakan untuk mengirimkan query ke sejumlah peer lain dan untuk menerima respon.
2 Peer Discovery Protocol (PDP) digunakan untuk mencari resource yang diinginkan. 3 Peer Information Protocol (PIP) digunakan
untuk memperoleh informasi status peer
(uptime, trafic load, capabilities, state, dsb). 4 Pipe Binding Protocol (PBP) digunakan
untuk membuat jalur komunikasi dan pertukaran data antara peer.
5 Peer Endpoint Protocol (PEP) digunakan untuk menemukan rute dari satu peer ke peer yang lain.
6 Rendezvous Protocol (RVP) digunakan untuk menyebarkan pesan dalam jaringan.
Arsitektur JXTA
Perangkat lunak JXTA terdiri atas tiga
lapisan. Ketiga lapisan tersebut akan
ditunjukkan pada Gambar 4.
Gambar 4 JXTA Layer (Gradecki 2002).
1 Core Layer
Core layer terbentuk dari semua faktor utama dan umum dari jaringan P2P. Faktor tersebut adalah peer, peer discovery, peer monitoring, komunikasi peer, dan yang terkait dengan keamanan primitif. Lapisan ini dibagi antara semua perangkat peer-to-peer sehingga memungkinkan proses interoperabilitas.
2 Service Layer
Lapisan ini berada di atas lapisan Core dan merupakan lapisan umum untuk jaringan P2P, tetapi bukan merupakan kebutuhan mutlak untuk jaringan P2P. Contoh layanan jaringan meliputi file sharing, layanan transfer pesan
(AOL messenger), penyimpanan, sistem file
terdistribusi, dan translasi protokol. 3 Application Layer
Pada lapisan ini, aplikasi perangkat lunak dapat dilihat sebagai layanan bagi peer lainnya. Akibatnya, lapisan ini dapat dikembangkan oleh pengembang yang membuat aplikasi JXTA dan dapat digunakan untuk membuat lapisan service bagi peer lainnya.
JMF
Java Media Framework (JMF) adalah Application Programming Interface (API) yang dapat digunakan untuk memasukan data-data media, baik itu audio maupun video ke dalam aplikasi dan applet Java (Priyanggoro 2005).
JMF mengembangkan kemampuan framework
dengan menyediakan dukungan terhadap proses capturing dan storing data media, mengontrol tipe pemrosesan yang dilakukan selama playback, dan melakukan pemrosesan tertentu pada media stream. Implementasi terakhir dari API ini adalah JMF 2.1.1e, yang telah memiliki beberapa pengembangan dalam komponen RTP/RTSP dan bug-fixes.
Komponen JMF secara umum dapat diklasifikasikan menjadi 3 kelompok (Olson 2002).
1 Input
Input mendeskripsikan beberapa jenis media yang digunakan sebagai masukan ke bagian Process.
2 Process
Process melakukan beberapa tindakan pada input. Process memiliki input dan output yang berbeda. sejumlah process yang tersedia dapat
diterapkan pada input atau kelompok input.
Process ini dapat dihubungkan bersama-sama sehingga ouput dari satu process digunakan sebagai input untuk process lain.
3 Output
METODE PENELITIAN
Penelitian ini terdiri atas beberapa tahapanproses untuk membentuk jaringan webcam
[image:30.595.103.254.148.427.2]peer-to-peer. Tahapan proses tersebut dapat dilihat pada gambar 5.
Gambar 5 Metode Penelitian.
Perancangan Jaringan Peer-to-peer
Jaringan peer-to-peer memiliki beberapa
arsitektur. Penelitian ini menerapkan arsitektur
desentralisasi
sebagai tahap awal dariperancangan jaringan peer-to-peer.
Implementasi
Proses implementasi penelitian ini
menggunakan perangkat keras dan perangkat lunak. Spesifikasi untuk perangkat keras adalah sebagai berikut.
1 Processor Intel Centrino 2.2 GHz,
2 RAM kapasitas 2 GB, dan
3 Harddisk kapasitas 160 GB.
Perangkat lunak yang digunakan untuk penelitian, yaitu:
1 Windows Vista sebagai sistem operasi, dan
2 Netbeans IDE 6.8.1 sebagai editor dan
kompilasi program.
Implementasi dilakukan pada framework
JXTA setelah perancangan jaringan
peer-to-peer diterapkan. Penerapan dilakukan pada perangkat keras dan perangkat lunak yang telah disebutkan. Implementasi JXTA menggunakan bahasa pemrograman Java. Implementasi pada JXTA dilakukan dengan merancang kembali aplikasi Peer-to-Peer File Sharing yang dibuat oleh Saeed (2007).
Proses implemetasi melibatkan API JMF. Proses ini dilakukan agar perangkat yang dibutuhkan dapat diakses. Perangkat yang diakses tersebut adalah kamera komputer atau webcam. Webcam tersebut digunakan untuk melakukan capture video atau gambar.
Pengujian
Pengujian dilakukan setelah aplikasi selesai
diimplementasikan. Proses pengujian
membutuhkan perangkat uji. Perangkat uji yang digunakan untuk mencoba aplikasi ini adalah 3
buah PC. Dua PC dibentuk dengan
menggunakan aplikasi mesin virtual dan 1 PC merupakan PC utama yang mengontrol mesin virtual. PC utama telah terintegrasi dengan kamera atau webcam.
Pengujian dilakukan dengan menggunakan 3 peer atau node yang disesuaikan dengan
perangkat uji. Peer yang memiliki media
webcam akan berperan sebagai peer sumber dan dapat juga berperan sebagai peer client. Peer
yang tidak memiliki webcam hanya dapat
berperan sebagai peer client yang mengunduh data video atau gambar yang disediakan oleh peer yang memiliki webcam.
HASIL DAN PEMBAHASAN
Perancangan Jaringan Peer-to-peerArsitektur desentralisasi dirancang untuk menghindari kelemahan dari arsitektur terpusat. Masing-masing peer dari arsitektur ini dapat
bertindak sebagai server ataupun client.
Komunikasi dilakukan dalam arsitektur ini
dengan mengirimkan pesan berbentuk query
kepada setiap peer yang terhubung. Pesan
tersebut berupa request data yang dibutuhkan.
Jika peer yang menerima query tersebut
memiliki data yang dibutuhkan, peer tersebut akan merespon mengirimkan pesan bahwa data
ditemukan. Jika peer tersebut tidak
menyediakan data yang diminta, peer tersebut
akan menyebarkan query yang diberikan ke
peer lain yang terhubung dengan peer sebelumnya dan proses ini akan berlangsung sampai data yang dibutuhkan telah ditemukan.
Proses penyebaran request data ditunjukkan
pada Gambar 6.
[image:30.595.335.492.662.745.2]Implementasi
Implementasi dalam JXTA dilakukan
setelah persyaratan sistem dan desain jaringan peer-to-peer telah dirancang. Implementasi dilakukan berdasarkan perancangan arsitektur
desentralisasi yang telah ditetapkan.
Implementasi dilakukan dengan menerapkan aplikasi Peer-to-peer File Sharing yang telah dibuat oleh Saeed (2007). Berikut ini beberapa hal yang perlu dilakukan untuk membentuk aplikasi peer-to-peer JXTA (Saeed 2007). 1 Menyediakan jalur yang aman untuk setiap
peer untuk login ke jaringan JXTA
2 Pengguna harus mampu dan memiliki hak
istimewa untuk membuat file konfigurasi
untuk penggunaan lebih lanjut.
3 Pengguna dapat memilih direktori untuk
dibagi dalam peer group.
4 Peer harus bisa login ke jaringan default JXTA (dikenal sebagai NetPeerGroup) 5 Peer harus dapat mencari group yang telah
ditetapkan
6 Jika group tidak ditemukan dalam proses pencarian, setiap peer harus dapat membuat kelompok mereka dengan UID kelompok yang telah ditetapkan.
7 Peer harus bisa login ke peer group.
8 Peer harus dapat menemukan satu sama lain dalam kelompok.
9 Peer harus bisa berbagi content dengan peer yang lain pada group yang sama.
10 Peer harus dapat menunggu permintaan yang diterima dan dapat menanggapi permintaan yang diterima dari peer lainnya. 11 Peer harus dapat berkomunikasi satu sama
lain dan mencari content tertentu.
12 Jika setiap peer tidak bisa menemukan query yang diminta, mereka harus menyebarkan permintaan query tersebut untuk peer lain dalam group.
13 Peer harus dapat chatting dengan satu sama lain.
14 Peer harus dapat membuat daftar peer lain dalam group yang sama.
15 Peer harus dapat mengunggah data mereka.
16 Pengguna harus dapat mendaftar dan
melihat data mereka sendiri bersama. 17 Peer harus memastikan bahwa proses unduh
tidak rusak dengan melakukan verifikasi. 18 file yang diunduh, setelah sepenuhnya
diunduh.
Flowchart aplikasi utama merupakan flowchart yang dirancang untuk aplikasi ini. Flowchart ini menggambarkan proses umum yang berjalan pada aplikasi dan terdapat proses tambahan dari yang telah dirancang oleh Saeed (2007) seperti ditunjukkan pada bagian yang
dilingkari warna merah pada Gambar 7. Proses tambahan tersebut berupa mengubah nama file
sebelum diunduh jika file yang diunduh
memiliki nama yang sama dengan nama file
[image:31.595.321.543.185.743.2]yang berada pada folder lokal. Jika nama file yang diunduh tidak sama dengan nama file yang ada pada folder lokal, file dapat langsung diunduh.
Agar dapat mengakses kamera atau webcam yang terhubung dengan komputer, dibutuhkan API JMF yang diintegrasikan pada aplikasi utama. Fitur yang ditambahkan pada tahapan ini
adalah capture gambar, capture video,
menampilkan gambar, dan menampilkan video. Alur dari proses capture gambar dimulai
[image:32.595.97.297.176.562.2]dengan menjalankan media untuk capture
gambar. Media ini akan mengakses webcam dan
menampilkan gambar secara bersamaan.
Pengguna dapat melakukan capture gambar
dengan memberikan perintah capture. Hasil
yang dari capture tersimpan ke dalam folder lokal yang telah ditentukan. Pengguna dapat
melakukan capture gambar kembali selama
belum keluar dari aplikasi. flowchart untuk capture gambar ditunjukkan pada Gambar 8.
Gambar 8 Flowchart capture gambar.
Proses yang berlangsung antara capture
video dan capture gambar memiliki perbedaan karena video merupakan gambar bergerak dan harus memiliki suara. Alur yang terjadi akan membutuhkan waktu yang lebih lama agar dapat menghasilkan video. Alur untuk proses capture video dimulai dengan menjalankan
media untuk capture. Media tersebut akan
menampilkan menu interaksi untuk melakukan capture video. Pengguna akan melakukan
interaksi dengan memulai capture. Proses
capture akan terus berlangsung dengan berupa input video dan audio yang tertangkap oleh media dan proses akan berhenti ketika
pengguna memberikan perintah untuk
menghentikan proses capture video. File hasil capture tersebut akan tersimpan ke dalam folder lokal yang telah ditentukan. Pengguna dapat
melakukan capture video kembali dan akan
[image:32.595.315.512.181.726.2]berhenti saat pengguna memberikan perintah untuk menghentikan proses capture. Pengguna akan keluar dari interaksi capture video saat pengguna memberikan perintah untuk keluar. flowchart untuk capture video ditunjukkan pada Gambar 9 berikut.
Pengujian
Langkah awal setting lingkungan pengujian dilakukan dengan menjalankan mesin virtual. Aplikasi mesin virtual yang digunakan adalah
VirtualBox. Pengujian dilakukan dengan
menjalankan 2 komputer virtual yang berada pada mesin virtual dan terpasang sistem operasi Windows XP dan komputer utama yang terpasang sistem operasi Windows Vista. Komputer virtual tersebut dihubungkan dengan komputer utama dengan menggunakan adapter jaringan Host-only Adapter yang terdapat pada
komputer virtual. Masing-masing adapter
jaringan yang terdapat pada komputer diberi alamat IP dan dipasang aplikasi yang telah diimplementasi sebelumnya. Alamat IP yang digunakan adalah 192.168.1.1, 192.168.1.2, dan 192.168.1.3.
Pengujian dimulai dengan menjalankan aplikasi. Aplikasi tersebut berupa file dengan
nama “myPackge.jar”. Aplikasi yang telah
berjalan akan mencari path folder untuk
menetapkan path yang akan dibagi pada
jaringan peer-to-peer. Path ini berupa data teks yang tersimpan pada file bernama “config.ini” dan ditempatkan pada direktori yang sama dengan file aplikasi utama. Jika aplikasi tidak
menemukan file tersebut, aplikasi akan
menjalankan pemilihan folder yang akan dibagi.
Proses pemilihan path folder yang dibagi
[image:33.595.317.511.273.522.2]ditunjukkan pada Gambar 10 dan Gambar 11.
Gambar 10 Aplikasi tidak menemukan file "config.ini".
Gambar 11 Pemilihan path folder yang dibagi.
Folder yang dipilih pada pengujian ini adalah folder bernama capture. Folder ini akan
dirujuk sebagai tempat penyimpanan hasil capture gambar dan video. Path dari folder yang dipilih tersebut akan disimpan pada file “config.ini” dan aplikasi utama akan membaca file setiap kali aplikasi dijalankan.
Pengujian proses login ke dalam jaringan peer-to-peer dilakukan setelah path folder ditentukan. Proses ini membutuhkan informasi nama peer, password, dan verifikasi password. Password yang dimasukkan paling sedikit
memuat 8 karater. Informasi nama peer,
password, dan verifikasi password disimpan pada folder bernama “.jxta”. Jika data ini sudah tersedia sebelumnya, aplikasi akan melewati proses ini. Proses login ke dalam jaringan JXTA peer-to-peer ditunjukkan pada Gambar 12.
Gambar 12 Login ke dalam jaringan JXTA peer-to-peer.
Pada tahap selanjutnya, aplikasi akan mencari group pada jaringan peer-to-peer. Jika group tidak ditemukan, aplikasi akan membuat group baru dengan nama yang sudah ditentukan dan akan bergabung dengan group yang dibuat tersebut.
Setelah aplikasi membuat atau menemukan group, aplikasi akan membuat jalur data untuk
komunikasi chat dengan peer lain yang
tergabung dalam group yang sama dan
melakukan pembagian content yang terdapat
pada folder yang dibagi. Semua proses dari
pemilihan path folder sampai pembagian
[image:33.595.97.297.451.751.2]Gambar 13 Tab connection log aplikasi utama.
Proses p