The LBX Mini-HOWTO Paul D. Smith, psmith@baynetworks.com Diterjemahkan oleh: Yaya Heryadi, yheryadi@necnusa.co.id V1.04, 11 December 1997 Terj. 8 January 1999 LBX (Low Bandwidth X) merupakan perluasan X Server untuk dapat melakukan kompresi menggunakan protokol X. LBX ditujukan untuk digu- nakan dalam hubungannya dengan aplikasi X dan sebuah X Server yang dipisahkan oleh sebuah koneksi terhadap jaringan berkecepatan rendah, dengan tujuan untuk meningkatkan waktu tampilan dan waktu respon. ______________________________________________________________________ Table of Contents 1. Pendahuluan 2. Bagaimana status LBX? 3. Target pemakai LBX? 4. Siapa yang tidak membutuhkan LBX? 5. Bagaimana cara LBX bekerja? 6. Apa yang saya butuhkan untuk menggunakan LBX? 7. Apa yang tidak saya butuhkan dalam menggunakan LBX? 8. Bagaimana saya menjalankan LBX? 9. Masalah-masalah yang sering dijumpai 10. Dokumentasi 11. Alternatif-alternatif 11.1 (TT 11.1.1 Keuntungan 11.1.2 Kerugian 11.1.3 Di mana saya bisa mendapatkan 11.2 Ssh (Secure Shell) 11.3 Mana yang lebih baik? 12. Catatan dari penterjemah: ______________________________________________________________________ 1. Pendahuluan Low-Bandwith X (LBX) dibuat atas dasar bahwa pada saat ini tidak setiap orang memiliki akses terhadap LAN yang cepat atau berada terlalu jauh dari sistem tempat berjalannya aplikasi mereka. Protokol X dapat menghasilkan jumlah trafik yang luar biasa, terutama untuk hal-hal yang nampak sederhana seperti membuat window baru. Seperti setiap orang yang telah mencoba menggunakan X melalui sebuah modem dial-in dengan kecepatan 28.8 maupun dengan kecepatan lain yang lebih tinggi yang dapat digunakan, pembuatan window-window baru dengan X menyebabkan waktu tunggu yang sangat lama. LBX pada dasarnya merupakan sebuah skema untuk melakukan kompresi dan caching yang dirancang untuk meminimumkan besar trafik X yang dihasilkan di antara kedua sistem. 2. Bagaimana status LBX? Sejak X Consortium mengeluarkan X11R6.3 pada bulan Desember 1996, LBX merupakan sebuah perluasan penuh dari protokol X. Bagi orang-orang XFree86, yang dimaksud adalah versi 3.3 dari XFree86. 3. Target pemakai LBX? Apabila Anda menggunakan sebuah modem untuk melakukan dial terhadap sebuah service provider, kemudian menjalankan aplikasi X pada komputer remote dengan variabel DISPLAY-nya ditetapkan untuk menggunakan komputer Anda (atau sebaliknya), LBX akan mempercepat koneksi tsb. Demikian pula, jika Anda men-set variable DISPLAY dari sistem-sistem yang dipisahkan melalui WAN (misalnya dari negara-negara lain), ataupun melalui sambungan berkecepatan rendah lainnya, LBX akan membantu. 4. Siapa yang tidak membutuhkan LBX? LBX tidak akan berguna, tentunya, apabila Anda hanya menjalankan aplikasi yang bersifat lokal, atau apabila Anda sama sekali tidak menjalankan X. Demikian pula, apabila Anda menjalankan X melalui suatu LAN yang cepat, LBX tidak akan banyak membantu Anda. Seseorang mengatakan "Jika LBX mengurangi trafik jaringan, apakah juga akan baik untuk digunakan meskipun dalam LAN yang cepat sekalipun?" Mungkin saja, Jika tujuan Anda adalah mengurangi trafik jaringan. Namun apabila tujuan Anda adalah mendapatkan waktu respon yang lebih baik maka LBX mungkin bukan yang Anda butuhkan. Meskipun LBX memperkenalkan caching dan kompresi, namun menimbulkan beban pada kedua sisi (tambahan memori untuk kebutuhan caching, extra CPU untuk melakukan dekompresi). Apabila kecepatan sambungan Anda hanya sedang-sedang saja maka LBX akan mengakibatkan perlambatan secara keseluruhan. 5. Bagaimana cara LBX bekerja? LBX bekerja dengan menggunakan sebuah server proxy pada sisi klien, yang melakukan caching dan kompresi. X Server mengetahui penggunaan sebuah server proxy oleh klien, dan melakukan dekompresi yang dibutuhkan. Berikut ini sebuah setup normal bagi klien-klien X yang bersifat remote. Dalam pembicaraan kita, LOCAL selalu merupakan komputer yang ada didepan Anda, memiliki monitor yang Anda lihat; sedangkan REMOTE merupakan komputer remote, merupakan tempat dimana aplikasi sebenarnya berjalan. REMOTE LOCAL +-----+ +-----+ | APP |-\ Network +----------+ | |\ +-----+ \--------------------------->| X SERVER |=>| || +-----+ / (X Protocol) +----------+ +-----+\ | APP |-/ /_____// +-----+ Pada saat menggunakan LBX, sebuah proxy server (lbxproxy) digunakan pada sisi remote, dan aplikasi tidak berhubungan langsung dengan server LOCAL melainkan berhubungan dengan lbxproxy. Proses tsb (lbxproxy) kemudian melakukan caching dan kompresi terhadap permintaan-permintaan (requests) X dan mengrimkannya. Hal itu dapat digambarkan seperti berikut: REMOTE LOCAL +-----+ +-----+ +-------+ Network +----------+ | |\ | APP |->| PROXY |----------------------------->| X SERVER |=>| || +-----+ +-------+ (LBX/X Protocol) +----------+ +-----+\ +-----+ / /_____// | APP |--/ +-----+ Apa saja yang dilakukan pada saat melakukan caching dan kompresi secara terperinci berada diluar ruang lingkup dari dokumen ini. 6. Apa yang saya butuhkan untuk menggunakan LBX? Anda membutuhkan sebuah X Server pada sistem LOCAL yang Anda miliki dengan tambahan LBX yang terkompile kedalamnya. Kecuali apabila Anda meminta secara eksplisit untuk tidak melakukan enable pada saat membangunnya, server-server X11R6.3 akan melakukan enable terhadap LBX secara otomatis. Demikian pula, semua server dari XFree86 versi 3.3 akan melakukan hal yang sama secara default. Anda dapat menggunakan perintah xdpyinfo untuk melihat apakah server yang Anda miliki telah memiliki tambahan LBX: jalankan xdpyinfo dan lihat daftar tepat dibawah number of extensions (jumlah tambahan); Anda seharusnya melihat LBX termasuk kedalam daftar itu. Selanjutnya, Anda harus mengkompile sebuah program lbxproxy untuk digunakan pada sistem REMOTE. Ini merupakan bagian yang agak sulit. Jika sistem remote tidak memiliki tipe yang sama dengan sistem lokal Anda, maka lbxproxy yang berada pada sistem lokal Anda tidak akan berguna, tentu saja. Disayangkan bahwa tidak ada keluaran distribusi dari lbxproxy, sehingga Anda harus melakukan: o Mengambil dan membangun, jika tidak keseluruhannya, X11R6.3 bagi sistem remote, atau o Mendapatkan suatu tempat untuk mendapatkan pra-kompilasi biner lbxproxy untuk sistem Anda. Pilihan kedua ini lebih mudah dilakukan tentunya. lbxproxy merupakan sebuah program tunggal yang langsung dapat dieksekusi. Program itu tidak memiliki file-file konfigurasi, file resource, dsb yang terkait dengannya. 7. Apa yang tidak saya butuhkan dalam menggunakan LBX? Sistem REMOTE tidak memerlukan X Server baru (sistem REMOTE selalu tidak membutuhkan X Server satupun). Aplikasi yang ingin Anda jalankan tidak perlu di-link dengan versi X, maupun librari-librari manapun; Penulis menggunakan secara teratur aplikasi X11R5 komersial melalui LBX tanpa mendapatkan kesulitan. Anda tidak memerlukan hak akses sebagai root atau lainnya terhadap sistem REMOTE; proses lbxproxy berjalan dengan permission akses yang normal. Lebih lanjut lagi, Anda dapat menjalankannya langsung dari direktori home Anda: lbxproxy tidak perlu diinstal dimanapun. 8. Bagaimana saya menjalankan LBX? Baiklah, Inilah dia... sesungguhnya semuanya sangat sederhana. Gantillah LOCAL dan REMOTE dibawah ini masing-masing dengan nama komputer untuk komputer lokal Anda maupun untuk sistem remote (awas jangan sampai tertukar!) Pada komputer LOCAL 1. Jalankan X Server Anda 2. Buatlah agar X Server memberikan izin akses bagi sistem remote. Dengan menggunakan metoda daftar-host, ketiklah xhost +REMOTE. Jika Anda menggunakan xauth maka Anda perlu melakukan lebih dari ini; silahkan baca halaman manual xauth(1) untuk mendapatkan informasi lebih lanjut. Anda harus membaca Remote X Apps Mini-HOWTO apabila Anda merasa kurang berpengalaman dalam men-setup permission akses bagi remote X. Pada komputer REMOTE 1. Jalankan lbxproxy dan perintahkan lbproxy agar mengirimkan sesuatu ke X Server, seperti berikut: $ lbxproxy -display LOCAL:0 :1 & Perintah ini memerintahkan lbxproxy untuk menggunakan tampilan :1 pada sistem REMOTE; apabila sistem itu memiliki lebih dari satu jumlah tampilan maka Anda dapat menggunakan tampilan :2 atau yang lainnya. 2. Set variabel environment DISPLAY yang Anda miliki untuk menunjuk kepada tampilan yang disediakan oleh lbxproxy sebagai ganti dari tampilan normal. $ DISPLAY=:1 $ export DISPLAY Atau, apabila Anda menggunakan csh atau shell yang sejenis: % setenv DISPLAY :1 3. Apabila Anda menggunakan xauth maka Anda perlu memastikan bahwa cookie tersedia secara lokal. Silahkan baca Remote X Apps Mini- HOWTO untuk mendapat informasi lebih lengkap mengenai hal ini. 4. Jalankan aplikasi X Anda. Selesailah sudah; semua aplikasi X yang telah dijalankan yang menunjuk ke :1 akan menggunakan LBX. Tentu saja tidak ada alasan bahwa Anda tidak dapat menjalankan aplikasi X dengan menunjuk ke LOCAL:0 serta menjalankan keduanya secara bersama-sama. 9. Masalah-masalah yang sering dijumpai Beberapa masalah umum adalah: Q) lbxproxy keluar dengan kesalahan access denied (akses ditolak) A) Ini berarti bahwa sistem LOCAL tidak menerima koneksi yang berasal dari sistem REMOTE yang disebabkan oleh kesalahan permission. Silahkan baca Remote X Apps Mini-HOWTO untuk mendapat informasi lebih terperinci mengenai hal ini. Sebagai tindakan troubleshooting yang sederhana, cobalah menjalankan sebuah aplikasi X sederhana seperti xclock pada REMOTE dan tampilkan pada sistem lokal tanpa menggunakan lbxproxy. $ xclock -display LOCAL:0 Jika hal ini tidak berhasil maka masalahnya terdapat pada xhost ataupun hal-hal yang mendasar lainnya dari X, dan tidak terletak pada LBX. 10. Dokumentasi Satu-satunya dokumentasi yang tersedia didalam distribusi standar X adalah halaman manual lbxproxy(1). Apabila Anda memiliki akses kedalam struktur direktori dari X source maka informasi yang menarik mengenai LBX terdapat didalam: o xc/doc/specs/Xext/lbx.mif (Framemaker MIF) o xc/doc/hardcopy/Xext/lbx.PS.Z (Compressed Postscript) o xc/doc/hardcopy/Xext/lbxTOC.html (HTML) Pembicaraan lebih terperinci mengenai algoritma tertentu terdapat didalam: o xc/doc/specs/Xext/lbxalg.mif(Framemaker MIF) o xc/doc/specs/Xext/lbxalg.PS.Z(Compressed Postscript) Apabila Anda tidak memiliki akses ke dalam source X11, Anda dapat menemukan file-file tsb didalam situs FTP X Consortium. 11. Alternatif-alternatif Jika Anda tidak menyukai lbxproxy karena berbagai sebab: Anda tidak puas dengan kinerjanya, tidak berjalan sesuai keinginan Anda, Anda tidak mau bersusah-payah membuat lbxproxy untuk komputer remote, atau hanya karena Anda tertarik untuk menggunakan pilihan-pilihan lain maka sekurang-kurangnya ada paket lain untuk melakukan kompresi protokol X (adakah yang memiliki paket lainnya?) 11.1. dxpc - Differential X Protocol Compressor o Penulis asli: Brian Pane, brianp@cnet.com o Maintainer saat ini: Zachary Vonler, lightborn@mail.utexas.edu dxpc pada pokoknya bekerja seperti LBX. Namun, untuk menghindarkan keharusan untuk mengimplementasikan suatu perluasan X serta memodifikasi program X Server maka dxpc menggunakan dua buah proxy: sebuah proxy yang berjalan pada komputer REMOTE seperti halnya lbxproxy, dan satu proxy lagi berjalan pada komputer LOCAL. Proxy pada komputer REMOTE melakukan komunikasi diantara klien-klien X dengan proxy komputer LOCAL, sedangkan proxy komputer LOCAL melakukan komunikasi diantara X Server dengan proxy komputer REMOTE. Sehingga bagi klien-klien X maupun X Server, dxpc seolah-olah sebagai protokol X biasa. 11.1.1. Keuntungan o dxpc merupakan suatu aplikasi yang sama sekali terpisah yang tidak membutuhkan internal X, oleh karena itu dxpc sangat lebih sederhana untuk dikompilasi maupun diinstal o dxpc di-maintain secara terpisah maka Anda tidak harus menunggu OSF untuk mendapatkan versi-versi baru dari X untuk mendapatkan peningkatan maupun perbaikan. o dxpc memberikan informasi serta data statistik mengenai kompresi yang lebih banyak dan lebih baik dibandingkan lbxproxy. 11.1.2. Kerugian o Bukan merupakan suatu bagian standar dari X; Anda harus mendapatkan dan membangunnya secara terpisah o Sedikit lebih rumit dalam men-setup, karena membutuhkan sebuah proxy pada sisi LOCAL maupun pada sisi REMOTE. 11.1.3. Source bagi dxpc tersedia diurlnam . Ada sebuah homepage WWW bagi dxpc yang memberikan banyak informasi yang baik, termasuk petunjuk bagaimana berlangganan milis dxpc , akses terhadap source code, serta sejumlah binari untuk berbagai platform:urlnam Di mana saya bisa mendapatkan dxpc ? 11.2. Ssh (Secure Shell) Ken Chase, lbxhowto@sizone.org, mencatat bahwa ssh dapat digunakan untuk melakukan kompresi. Meskipun kegunaan utamanya adalah untuk memberikan sekuriti, ssh melakukan kompresi terhadap data yang dikirimkannya. Sehingga jika Anda menjalankan X menggunakan suatu sambungan ssh maka Anda akan mendapatkan sejumlah kompresi secara otomatis. 11.3. Mana yang lebih baik? Penulis tidak mengetahuinya. LBX dan dxpc keduanya lebih baik dalam melakukan kompresi raw dibandingkan dengan ssh. Tentu saja, ssh memberikan keuntungan tambahan dalam hal sekuriti. Dan tentunya, Anda tidak memiliki alasan untuk tidak menggunakan keduanya, ssh dan salah satu dari LBX atau dxpc, untuk mendapatkan kompresi yang baik maupun sekuriti. Seharusnya tidak terlalu sukar untuk menjalankan beberapa benchmark terhadap pilihan-pilihan diatas untuk mendapatkan pengukuran kinerja baik secara secara subjektif maupun statistik. Namun demikian, penulis belum pernah melakukannya juga belum mengetahui seorangpun yang pernah melakukannya. 12. Catatan dari penterjemah: Penterjemah sudah berusaha menterjemahkan tulisan aslinya sedapat mungkin, namun tidak mustahil masih ada kekurangan dalam penterjemahan disana-sini. Apabila ada saran-saran untuk memperbaiki penterjemahan tulisan ini silahkan disampaikan via e-mail ke penterjemah, yheryadi@necnusa.co.id, atau koordinator idLDP, mdamt@linux.or.id.