15
65535 byte. Maka dari itu, penggunaan protokol UDP dapat dikatakan kurang tepat.
Pada TCP, Gambar 4, tidak seperti UDP yang tidak menyediakan segmentasi data, data
frame gambar dibagi kedalam ukuran yang
lebih kecil dan masing-masing urutan data tersebut ditandai pada sequence number.
Dengan demikian data tersebut dapat kembali disusun dalam urutan awal. Dengan alasan
kemampuannya untuk mengirim data yang besar TCP dipilih sebagai protokol pengiriman
dalam perangkat lunak IOSS.
Dari sisi client, perapan kode dilakukan melalui fungsi-fungsi yang ada pada kelas
ClientMachine. Objek kelas ClientMachine membangun sambungan ke server melalui
objek kelas Socket. Objek kelas Socket yang terbentuk dari proses sambungan kemudian
dilewatkan
ke dalam
parameter kelas
ThreadOutputStream dan ThreadInputStream untuk diproses menghasilkan output dan input
stream milik client yang terhubung dengan
output dan input stream milik server. Kode
pembangunan sambungan pada sisi client digambarkan oleh Gambar 21.
pada sisi kelas ClientMachine Socket aSocket = null;
aSocket = new SocketServerAddress, port; aThreadOutputStream
= new
ThreadOutputStream aSocket;
aThreadInputStream = new ThreadInputStream aSocket;
Gambar 21 Baris kode pembangunan sambungan pada sisi client.
3.2 Multithreading
Dalam sistem yang besar atau memiliki banyak subsistem, konkurensi memainkan
peranan yang penting untuk meningkatkan kinerja. Atas dasar kebutuhan pengguna untuk
menyediakan layanan screen sharing yang real-time
maka perangkat lunak ini diterapkan dengan prinsip konkurensi.
Penggunaan multithreading server sebagai strategi konkurensi dikarenakan sifatnya yang
ringan dan proses switch yang cepat. Hal lain yang
menjadi kelebihan
dibandingkan multiproses adalah thread menggunakan
sumber daya yang lebih sedikit Davis et al 2004. Gambaran multithreading server pada
IOSS diilustrasikan oleh Gambar 22. Sisi server
Gambar 22 Multithreading pada IOSS. Pemrograman
multithreading dalam
bahasa pemrograman Java dilakukan dengan mengimplementasikan interface Runnable
atau dapat juga dilakukan dengan membuat kelas yang menjadi turunan dari kelas Thread.
Kelas
kelas yang
diterapkan dengan
multithreading adalah kelas yang berada di
bawah package control. Konkurensi dalam perangkat lunak ini
dibagi menjadi dua, yaitu berkaitan dengan antar subsistem antar objek kelas dan yang
menangani request client. Pada
konkurensi antar
subsistem, perangkat lunak yang menyediakan fungsi
screen sharing dalam sebuah server akan
memiliki tugas mengambil gambar, menunggu request
dari client, mengirim gambar kepada client
yang terhubung serta meng-update antarmuka perangkat lunak. Tugas-tugas
tersebut haruslah dilakukan secara bersamaan, jika tidak kebutuhan sistem yang real-time
tidak dapat dipenuhi dengan baik.
Konkurensi terjadi
pada objek
ServerMachine yang membawahi objek-objek kelas
ServerMachineThread. Objek
ServerMachine bertindak sebagai thread utama
yang membuat
objek baru
ServerMachineThread dan menugaskannya untuk mengirim data frame kepada sebuah
client . Saat sambungan terhadap sebuah client
terputus atau sesi presentasi selesai, objek ServerMachineThread dihentikan kemudian
dimusnahkan oleh
parent thread
-nya, ServerMachine, sehingga sumber daya yang
dipergunakan oleh
child thread
, ServerMachineThread, dapat dibebaskan dan
dipergunakan oleh proses yang lain. Gambar 23 mengilustrasikan proses yang berjalan
secara konkuren pada IOSS.
ServerMachine
ClientMachine ServerMachine
Thread ServerMachine
Thread
ClientMachine
16
Sisi server
memulai
mengirim mengirim
request frame
mengirim frame
Gambar 23 Kelas-kelas yang berjalan secara konkuren.
4 Pengujian
Pengambilan data pengujian dilakukan dalam tiga kali perulangan untuk melihat
konsistensi data yang dihasilkan. Data frame rate
dan bandwidth diambil dalam selang waktu 10 detik sedangkan data response time
diambil 10 kali percobaan request dalam setiap perulangan. Hal ini dimaksudkan agar
data yang dihasilkan tidak terlalu sulit untuk diamati dan terlalu besar sehingga membebani
kinerja perangkat pendukung. Pengujian yang dilakukan menggunakan perhitungan waktu
dilakukan dengan menggunakan fungsi yang tersedia pada kelas MyTimerClass. Video
quality
kompresi gambar yang dipergunakan dalam pengujian adalah sebesar 50.
Untuk menjaga konsistensi pengujian, spesifikasi perangkat lunak dan perangkat
keras yang digunakan disamakan. Spesifikasi perangkat keras komputer yang digunakan
adalah sebagai berikut :
acer veriton M275 prosesor Intel core 2 duo e7500 2.93
GHz RAM 2048 MB
Ethernet 100 Mbps Sistem operasi pada komputer yang
digunakan yaitu Linux Ubuntu 10.10 Maveric Meerkat.
Topologi jaringan
yang dipergunakan
dalam pengujian
adalah topologi jaringan yang mewakili sebuah LAN
pada laboratorium komputer. Topologi LAN pada pengujian diilustrasikan oleh Gambar
24.
Gambar 24 Topologi jaringan pada pengujian.
4.1 Response Time