IMPLEMENTASI JXTA
SEBAGAI PLATFORM JARINGAN PEER TO PEER
PADA MOBILE DEVICE UNTUK APLIKASI FILE SHARING
Lusa Hasana1, Idris Winarno2
Mahasiswa Jurusan Teknologi Informasi1 , Dosen Pembimbing 2 Politeknik Elektronika Negeri Surabaya
Institut Teknologi Sepuluh Nopember Kampus PENS-ITS Keputih Sukolilo Surabaya 60111 Telp (+62)31-5947280, 5946114, Fax. (+62)31-5946114
Email : just_lusa@yahoo.com Makalah Proyek Akhir
ABSTRAK
Saat ini jaringan Peer-to-Peer (P2P) dan teknologi mobile device berkembang dengan pesat. Tekhnologi Peer-to Peer kebanyakan digunakan pada aplikasi filesharing dan komputer terdistribusi serta memiliki kelebihan daripada client server. JXTA (Juxtapose) dirancang sebagai platform jaringan P2P. Dengan JXTA dan J2ME, mobile device dapat saling bertukar content. Disinilah lahir istilah JXME, JXTA untuk J2ME.Pada Tugas Akhir ini dibangun aplikasi File Sharing pada mobile device berbasiskan sistem JXME. Aplikasi ini bersifat multi platform,sehingga dapat digunakan untuk melakukan pertukaran data antar peer tanpa bergantung pada peer tertentu.
Kata kunci : P2P,JXTA,J2ME,Performansi JXME.
1. PENDAHULUAN 1.1 Latar Belakang
Di dalam jaringan komputer terdapat 2 jenis koneksi antar node yaitu client-server dan peer-to-peer.Pada mode client-server semua node terhubung pada satu komputer yang disebut server,server tersebut bertugas untuk menyediakan service bagi semua node(client) yang terhubung padanya. Client hanya bisa menggunakan resource yang disediakan server sesuai dengan otoritas yang diberikan oleh administrator. Bila suatu saat terdapat satu node yang mengalami gangguan,maka keseluruhan jaringan tersebut akan terganggu.
Berbeda dari client-server,pada mode peer-to-peer arsitekturnya tidak tersentral,tiap peer mempunyai status yang sama untuk merequest dan menyediakan service,sehingga apabila satu peer mengalami gangguan,tidak berpengaruh pada peer lainnya.
Saat ini jaringan Peer-to-Peer (P2P) dan teknologi mobile device berkembang dengan pesat. P2P dengan aplikasi file sharing dan perangkat mobile pada konektifitas jaringan, kemampuan pemrosesan, jumlah kapasitas memori baik internal maupun eksternal, serta
dapat saling bertukar content.JXTA sendiri merupakan sekumpulan protokol yang dikembangkan oleh Sun Microsystem yang bersifat platform independence.
1.2 Rumusan Permasalahan
Berdasarkan uraian tersebut di atas, dalam pengerjaan proyek akhir ini timbul beberapa masalah diantaranya adalah :
1. Bagaimana menemukan peer tujuan di dalam peer group
2. Bagaimana peer tersebut dapat saling berkomunikasi dan berinteraksi satu dengan yang lain yang tujuan akhirnya yaitu dapat saling berbagi data antar peer.
1.3 Batasan Permasalahan
Pada penyelenggaraan proyek akhir ini, batasan permasalahannya adalah :
1. Menggunakan desain peer-to-peer secara global,sehingga tidak spesifik pada arsitektur peer-to-peer tertentu.
2. Ditujukan untuk mengatasi kelemahan jaringan client-server dimana apabila komputer server mengalami gangguan,maka
2. PERANCANGAN SISTEM
Gambar 2.1 Proses dalam perancangan sistem
MENENTUKAN FITUR PELAYANAN APLIKASI
Dari hasil eksplorasi terhadap aplikasi-aplikasi J2ME yang berkaitan dengan Tugas Akhir ini, Aplikasi File Sharing ini memiliki fitur-fitur sebagai berikut:
1.Fitur Konfigurasi,fitur ini digunakan saat pertama kali aplikasi di launch.Dalam fitur ini terdapat konfigurasi tentang relay host,relay port,identity dari peer tersebut,poll
interval,dan mode yang digunakan. 3.Fitur Koneksi ke Peer,fitur ini digunakan
ketika user ingin melakukan proses sharing dengan peer tertentu.Proses koneksi nya sendiri menggunakan protokol HTTP.
MEMBUAT TAMPILAN GUI
Tentu saja dalam pembangunan sebuah system,GUI harus dibangun terlebih dahulu sehingga terdapat skeleton untuk sistem.Tampilan yang ada pada aplikasi ini antara lain :
1) Form Konfigurasi 2) Form Online Buddies 3) Form Chat
4) List Share
Beberapa class juga diimport,khusunya 3 class JXME yang diperlukan untuk JXTA Network.
import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import java.io.*; import java.util.*; import net.jxta.j2me.PeerNetwork; import net.jxta.j2me.Message; import net.jxta.j2me.Element; Form Konfigurasi
Halaman ini merupakan halamn pertama yang akan ditampilkan saat aplikasi di launch.Dalam form ini user diminta untuk menginputkan nama peer nya,IP address relay dan juga nomor port HTTP yang digunakan pada relay.Tampilannya sebagai berikut :
Gambar 2.2 Halaman Konfigurasi
Form Online Buddies
Pada form ini,setelah command Go Online dipillih,maka akan muncul peer mana saja yang sedang aktif.Peer ditampilkan dalam bentuk ChoiceGroup,sehingga kita bias memilih salah satu peer.
Gambar 2.3 Halaman Online Buddies
Form Chat
Saat kita sudah memilih salah satu buddies,selanjutnya terdapat Menu Pilihan untuk Chat sebagai berikut :
Gambar 2.4 Tampilan Menu pada Form Online Buddies
Gambar 2.5 Tampilan Chat ke Peer
List Share
Pada List Share terdapat daftar file image sebagai berikut
KONEKSI KE RELAY
Aplikasi JXME berjalan pada mobile deviceyang terbatas dan tidak bisa menghandle sebagian besar keperluan dari JXTA peer yang biasanya,karena itu digunakan JXTA relay.
JXTA telah menyediakan implementasi J2ME based client-side yang mengimplementasikan semua komunikasi dengan relay.Disebut JXTA untuk J2ME atau JXME.Menggunakan JXME dengan relay memungkinkan client J2ME berjalan seperti peer. Agar dapat terkoneksi ke relay server dan ke JXTA network adalah dengan method createInstance() dan connect().
Pipe propagate khusus dibuat sehingga aplikasi dapat memberitahukan ke semua peer yang terkoneksi ke relay bahwa dia online.Pipe unicast khusus juga dibuat agar peer dapat menerima pesan dari peer lainnya.
Ada 2 tipe pesan yang dikirim ke network.Yang peratam adalah “I’m alive message” dikirim ke propagate pipe dan diterima oleh semua peer,dan “P2P message” yang hanya dikirimkan ke peer lain melalui unicast pipe.Ada 2 method yang digunakan untuk membuat message tersebut :
public Message
createImAliveMessage(String pName, String myPipeID)
{
Element[] elements = new Element[2]; elements[0] = new Element("ALIVE", pName.getBytes(), null,null); elements[1] = new Element("myPipeID",
myPipeID.getBytes(), null, null); Message message = new Message (elements);
return message; }
public Message
createP2PMessage(String pName, String myPipeID, String msgText)
{
Element[] elements = new Element[3];
elements[0] = new Element("P2P", pName.getBytes(), null, null);
elements[1] = new Element("myPipeID", myPipeID.getBytes(), null, null); elements[2] = new Element("P2PMessage",
msgText.getBytes(), null, null); Message message = new Message (elements);
return message; }
nama dan unicast pipe ID dari peer sehingga peer lain akan membalasnya.Pesan kedua berisi class Element yang menangani nama,pipe ID dan pesan yang ditulis di Chat Screen.
Agar aplikasi tahu apakah dia mempunyai pesan yang menunggu di relay server,aplikasi melakukan ”poll” ke server.Ini juga dilakukan untuk mengetahui siapa saja yang aktif di relay server.Poll ini berjalan menggunakan thread dan beriterasi.Pesan diterima kemudian diproses.Terdapat 2 polls yaitu yang dibuat oleh user dan poll method JXME class.
1.Tampilan Konfigurasi Relay
Gambar 2.2 Konfigurasi basic relay
Gambar 2.3 Konfigurasi basic relay
Gambar 2.4 Konfigurasi Rendezvous/Relays
OK,setting untuk JXME Proxy telah selesai.Kemudia Anda akan masuk halamn login sebagai berikut :
Gambar 2.5 Halaman Login Relay
3. Pengujian Peer
Untuk pengujian aplikasi peer,pertama anda akan masuk ke halaman konfigurasi sebagai berikut :
Gambar 3.1 Halaman awal konfigurasi peer Kemudian pada pilihan Menu terdapat beberapa pilihan yaitu Chat,Share atau Go Offline.Misalnya kita memilih Chat,Peer1 ingin Chat dengan Peer3.
Selanjutnya Anda akan mendapatkan warning seperti berikut :
Gambar 3.2 Warning saat connect ke relay Pilih Yes Untuk pengujian digunakan 4 peer
Gambar 3.3 Halaman Online buddies pada peer
Gambar 3.4 Peer1 melakukan chat dengan peer3
Selanjutnya saat kita memilih command Share,maka akan ada tampilan sbb :
Gambar 3.5 Tampilan Share File Dari sini user bisa langsung memilih file mana yang akan dishare dengan peer2.
3. KESIMPULAN DAN SARAN 4.1 Kesimpulan
Dari hasil uji coba perangkat lunak ini dapat ditarik beberapa kesimpulan:
• Untuk koneksi ke relay Server membutuhkan waktu sekitar 10 s untuk koneksi kabel dan sekitar 60 s untuk koneksi wíreless.
Saran
Aplikasi yang dibuat pada proyek akhir ini masih Sangat sederhana sekali.Diharapkan untuk pengembangan selanjutnya dapat membuat aplikasi yang lebih kompleks
Dibutuhkan tambahan fitur untuk menentukan file apa saja yang ingin dishare dan menampilkan file apa saja yang dishare dari keseluruhan peer
akhir ini dapat dibuat untuk mempermudah pengimplementasian aplikasi filesharing.
5. DAFTAR PUSTAKA
[1] MØrked,Tore.Peer-to-Peer Programming with Wireless Devices.University of New South Wales,Sydney Australia
[2] Espiritu,Troy.Universal Chat Client for J2ME Enabled Mobile Device Using the JXME Implementation of JXTA [3]Sutrisno,Eko.Proyek JXTA [4]Peer to Peer http://www.Wikipedia.org/P2P [5]http://jxta-jxme.dev.java.net [6]http://weblogs.java.net/blog/Hamada/archive/ community_jxta/index.html
[7]Mcrosystem ,Sun , 2002, JXTA Java Standard Edition v2.5 : Programmers Guide [8]http://www.jxta.org/