Senin, 03 Maret 2008

Sistem Client-Server

Database Sistem Client-Server
[ Single User vs Multi User vs Client-Server ]

Untuk lebih memudahkan pemahaman serta melihat keuntungan yang didapat dengan menerapkan database client/server dibandingkan dengan metode single user maupun multiuser klasik (file-server) maka berikut ini ditampilkan ilustrasi dari ketiga sistem tersebut.
Adapun ilustrasi yang dibuat mengacu kepada penggunaan Microsoft Visual FoxPro dan RDBMS MySQL Database Server.

Sistem single user
Single user merupakan sistem yang paling sederhana didalam pengaksesan suatu database. Pada sistem ini program aplikasi (file EXE) dan file-file data (data source - file *.DBF, *.CDX, *.FPT, *.DBC, *.DCX, *.DCT) diletakan pada komputer yang sama.
Tentunya dengan sistem ini hanya akan terdapat satu user yang mengakses data pada periode waktu yang sama, hal ini karena komputer tersebut tidak dihubungkan dengan suatu network.

Sistem multiuser klasik (file-server).
Sistem ini merupakan pengembangan dari sitem single user. Perbedaan utama dari sistem multiuser klasik terhadap sistem single user terletak pada file-file database (data source) yang ditempatkan pada komputer lain (server).
Pemisahan ini bertujuan agar database bisa diakses secara bersama (share) dengan workstation lainnya.
Sistem ini ideal diterapkan pada suatu organisasi kecil jika jumlah workstation tidak terlalu banyak, ukuran dari tabel data yang diakses tidak terlalu besar (berkisar 5-70 MB), jarak fisik antara komputer workstation dan server tidak terlalu jauh serta tidak terlalu banyak aktifitas lalu-lintas data didalam sistem jaringan (networking).
Pada sistem multiuser klasik (file-server) komputer server hanya berfungsi sebagai tempat untuk menyimpan data saja, jadi pada komputer server sama sekali tidak ada proses yang berhubungan dengan pengaksesan database (yang terjadi hanyalah mekanisme file I/O saja).
Semua proses yang berhubungan dengan pengaksesan data, dilakukan pada komputer workstation.
Dengan kata lain jika seorang user yang berada suatu workstation dari sistem Informasi Rumah Sakit ingin mendapatkan data Pasien tertentu (pada tabel pasien) maka komputer worksation harus mengambil file 'tabel pasien' secara keseluruhan dari komputer server dengan mekanisme low-level I/O (input/output), dan setelah seluruh file 'tabel pasien' berhasil sampai di komputer workstaion, barulah data tersebut dapat diproses untuk selanjutnya ditampilkan ke layar monitor.
Bisa dibayangkan untuk suatu Rumah Sakit ukuran menengah dimana data atau informasi yang terdapat pada 'tabel pasien' mungkin telah mencapai ukuran (katakanlah) ± 700 MB, maka setiap kali terjadi proses yang berhubungan dengan tabel tersebut, sekecil apapun proses itu, misalnya hanya mengedit 1 (satu) record saja, maka workstation perlu melakukan download secara utuh file sebesar ± 700 MB dari komputer server, setelah data sampai di workstation barulah data tersebut diproses, kemudian data berukuran ± 700 MB yang salah satu recordnya telah di edit tersebut harus dikirim kembali secara utuh ke komputer server agar user lain pada sistem jaringan dapat melihat perubahan yang telah dilakukan.
Kelemahan dari sistem ini, selain akan terjadi degradasi pada kecepatan akses (slow speed), tentunya akan sangat riskan sekali untuk mentransportasikan file dengan ukuran yang sangar besar (± 700 MB) secara sekaligus, lewat kabel yang terdapat pada sistem networking yang dipergunakan.
Dalam banyak kasus pada sistem multiuser (file-server), jika data suatu tabel telah mencapai ukuran ± 250 MB maka kemungkinan untuk rusaknya struktur atau index dari tabel tersebut semakin sering terjadi.
Hal ini tidak hanya terjadi pada file-file database (native database) dari Visual FoxPro saja, tetapi juga terjadi pada file-file database desktop lainnya seperti Borland Paradox, Btrieve, Borland Visual dBASE, File MakerPro, CA-Clipper ataupun database Microsoft Access.
Hal ini disebabkan karena semua database yang disebut diatas di desain untuk penanganan data yang tidak terlalu besar, dan hanya menerapkan sistem file-server dan bukan sistem client/server.
Nggak ada cara lain untuk mengatasi hal tersebut, kecuali segera beralih dengan mengakases database big-iron seperti Oracle, Sybes, Informix, IBM DB2, MS-SQL Sever, InterBase, Gupta, Solid atau MySQL Database Server yang memang di desian untuk pengaksesan data dengan sistem client/server.

Sistem client/server
Client/server adalah solusi terbaik untuk mendapatkan aplikasi database yang handal dalam hal sekuritas dan fault-tolerance serta mampu mengurangi kepadatan lalu-lintas jaringan.
Client/server ditilik dari namanya, berarti terdapat dua aplikasi yaitu; aplikasi client dan aplikasi server (atau sering juga disebut servis).

Konsep dimana client membuat suatu permintaan (client make a request) serta server merespon permintaan tersebut (server responding) adalah kunci untuk memahami sistem client/server.
Secara absolut client tidak mempunyai kontrol atas data yang berada di server, dalam hal ini client hanya perlu membuat permintaan untuk semua aktifitas yang diinginkan.
Karena terdapat dua aplikasi secara terpisah, maka sebelum aplikasi client dapat berhubungan dengan server, aplikasi server (server engine) harus sudah dijalankan terlebih dahulu.
Mekanisme keamanan data yang diterapkan pada sistem client/server sangat tinggi, menyebabkan aplikasi client tidak dapat membuka file-file data secara langsung, dalam hal ini client cukup melakukan log-in dan jika userid serta password yang dimasukan benar maka kemudian aplikasi server akan memberikan servis untuk membuka database yang diminta oleh user, servis yang diberikan juga masih ditentukan oleh hak akses (access granted) yang dimiliki oleh user tersebut.
Pada sistem multiuser klasik seperti yang telah dijelaskan pada seksi sebelumnya, untuk dapat menampilkan suatu data tertentu yang terdapat dalam suatu tabel maka keseluruhan data dari tabel tersebut harus didownlod dari komputer server ke workstation, kemudian data tersebut diproses untuk kemudian ditampilkan ke monitor.
Pada sistem client/server, client cukup mengirim sebuah statemen SQL ke server.
Sebagai ilustrasi misalnya seorang user ingin mendapatkan informasi Pasien yang namanya dimulai dengan 'Fuad' maka dalam hal ini aplikasi client (yang dibuat dengan Visual FoxPro 6.0) akan mengrim statemen SQL ke aplikasi server (MySQL Database Server) sebagai berikut;

SELECT nocm, nama, sex FROM pasien WHERE nama LIKE 'fuad%'

Selanjutnya server akan merespon statemen SQL yang dikirim tersebut dengan hanya mengirim kembali recod-record (rows) yang memenuhi kriteria saja untuk ditampilkan pada komputer workstation, jadi proses yang berhubungan dengan database dilakukan pada komputer server.
Dengan sistem client/server maka kuantitas data yang ditransmisikan dapat di reduksi, mengakibatkan waktu akses menjadi semakin singkat.
Sistem client/server gunakan Visual FoxPro 6 dan MySQL
Gambar 4 menunjukan blok diagram secara detail implementasi nyata dari sistem koneksi pada aplikasi client/server dengan menggunakan client Visual FoxPro dengan server MySQL.







Tidak ada komentar: