Salah satu pertimbangan yang saya dengar selama mengikuti serangkaian diskusi dengan mitra kerja beberapa hari ini adalah perbandingan antara aplikasi klien-server dan aplikasi berbasis Web. Kendati sisi yang ditinjau dikaitkan dengan skala organisasi mereka yang besar — sudah bukan kategori SOHO lagi — sebagian alasan masih relevan di lingkungan berskala kecil.
Agar lebih jelas, saya coba runut pengertian populer dan gambaran umum tentang keduanya dari Wikipedia. Pengertian klien-server secara umum mengacu pada arsitektur jaringan yang memisahkan komputer klien dari server. Akan halnya perbedaan pada diskusi yang saya ikuti: “aplikasi klien-server” lebih persis merujuk pada jenis lama yang disebut sebagai “two-tier”. Ciri yang menonjol pada jenis ini adalah koneksi klien dengan server berlangsung terus-menerus atau stateful. Sedangkan “aplikasi berbasis Web” sebenarnya juga bagian dari klien-server dengan tambahan server Web di tengah, sehingga disebut “three tier”. Berkebalikan dengan “aplikasi klien-server”, jenis kedua ini tidak mensyaratkan koneksi terus-menerus antara klien dan server atau disebut stateless.
Keduanya termasuk pada pembahasan arsitektur perangkat lunak dalam kaitan dengan modul perangkat lunak dan komunikasi di antara mereka. Pada implementasi di lapangan, jenis two-tier umumnya diikuti oleh pemasangan aplikasi klien dan server di tiap-tiap simpul (misalnya kantor cabang). Pendistribusian ini menguntungkan dilihat dari sisi otonomi pemrosesan di setiap simpul dan tidak terlalu membebani koneksi intranet berskala luas. Kendala yang muncul: penyiapan sebuah simpul membawa implikasi yang luas pada kesiapan infrastruktur, teknisi di lokasi yang bersangkutan, hingga prosedur operasi baku yang berlaku. Untuk organisasi berskala luas secara geografis hal ini tidak mudah.
Sedangkan aplikasi berbasis Web berada pada sisi sebaliknya: ongkos pemeliharaan lebih mudah, semua “didikte” dari server Web di pusat, dan tersedia di semua simpul dengan mudah dan seketika. Hanya dua keluhan yang saya dengar: pertama adalah persoalan laten berujud lebar pita koneksi yang masih terbatas atau mahal (misalnya ada kantor cabang di Bengkulu, mana yang lebih merepotkan: terbatas atau mahal?); kedua, faktor keamanan: dengan ketersediaan perambah di mana-mana, akses terhadap aplikasi berbasis Web lebih mudah dilakukan dibanding harus memasang aplikasi klien. Di zaman kini, siapa yang masih kesulitan menggunakan perambah?
Secara lengkap, pertimbangan kedua arsitektur perangkat lunak di atas dapat sangat kompleks atau spesifik terhadap kondisi organisasi. Termasuk dipengaruhi skala organisasi. Untuk organisasi berskala kecil, sebagian batasan sangat mungkin lebih longgar sehingga memudahkan dalam pemilihan jenis aplikasi yang digunakan.
Yang saya renungkan setelah mengikuti beberapa diskusi dan mendengar wacana yang disampaikan: pengelolaan aplikasi berbasis Web memang lebih praktis, sudah berkembang pesat teknologinya, namun gagasan sentralistik yang dibawa seperti “tidak sesuai zaman” pada saat kita sedang ingar-bingar dengan isu desentralisasi. Selain ongkos koneksi yang mahal dan semua tergantung aplikasi di pusat, boleh dikata hal ini hanya menempatkan personil di daerah cukup sebagai pengguna.
Hal ini masih terbuka untuk diperdebatkan dan bukan sesuatu yang disikapi sebagai “benar atau salah”. Solusi moderat lainnya semisal dengan teknologi Rich Internet Application (RIA). Tentulah pada kondisi kutub-ke-kutub seperti pada dua perbandingan di atas terdapat bagian antara, daerah abu (gray area), yang condong pada kepraktisan satu sisi dan longgar pada sisi lain.
Di kantor kami yang berskala kecil, untuk aplikasi pembaca email misalnya, banyak yang menggunakan klien email berbasis Web dengan alasan dapat diakses dari banyak tempat (termasuk jika sedang berdinas di luar) dan sebagian menggunakan klien email desktop setelah menggunakan komputer pribadinya sendiri. Selain lebih fleksibel dalam hal pengarsipan di komputer pribadi, alasan lainnya adalah mengurangi pemakaian tempat penyimpanan di server email.
Pada porsi tertentu, bukannya mekanisme “apt-get” itu sebetulnya mekanisme update aplikasi “klien-server”?
Orang-orang yang bergerak di aplikasi “klien-server” —atau saya lebih suka menyebutnya sebagai aplikasi desktop— mempunyai beberapa solusi untuk masalah pendistribusian. Beberapa yang saya tahu:
RIA, di lain pihak, tidak bisa dianggap sebagai ‘jalan tengah’ kedua jenis aplikasi. RIA itu hybrid baru. Cara codingnya beda, cara mikirnya beda, arsitekturnya beda, constraint security-nya beda. Apalagi standardnya, wah… bisa semaleman ngomong standard. Microsoft punya XAML, Macromedia punya FLEX, ada juga templating-engine seperti Backbase, atau “script wrapper” seperti Rails, ATLAS, dan ZX. Ruwet wes pokok’e :D
Dikatakan stateless iya, dikatakan stateful juga bisa.
dua-duanya ada kelebihan dan kelemahanya, namun smakin teknologi berkembang, kemungkinan lebih banyak ke aplikasi berbasis web. namun skarang ditanya, “Apakah Indonesia akan siap menghadapi era berbasis web di 7 tahun kemudian.?
Pertanyaan klasik dari klien yah Pak :) Imho, Kalau saya sering melihat dari sisi fungsi dari aplikasi tersebut - Transaksi (data entry, POS, kasir) -> Klien-Server - Manajemen (Approval, Report ) -> berbasis web
Aplikasi dengan fungsi transaksi, biasanya membutuhkan kecepatan entry sebab berhubungan langsung dengan entiti lain dan hasilnya di butuhkan pada saat itu. Jika menggunakan klien-server, sepertinya lebih mudah untuk mengkastemisasi fungsi dari setiap tombol/input dari alat lain. Hal ini berbeda dengan aplikasi berbabasis web yang agak sulit juga mengkastemisasi fungsi dari setiap aksi dari tombol
Contoh tentang mengakses email adalah alasan mengapa aplikasi manajemen lebih cocok berbasis web.
Tetapi dengan teknologi sekarang seperti .NET, Ajax aplikasi klien-server dan berbasis web sudah mulai samar :)