Multithreading Pengembangan Sistem IOSS (IPB Open Screen Sharing) Menggunakan Bahasa Pemrograman Java

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