Klien-server
Dalam ilmu Komputer, client-server adalah model arsitektur perangkat lunak yang terdiri dari dua bagian, sistem klien dan sistem server, keduanya berkomunikasi melalui jaringan komputer atau pada komputer yang sama. Aplikasi client-server adalah sistem terdistribusi yang terdiri dari perangkat lunak client dan server. Aplikasi client server menyediakan cara yang lebih baik untuk berbagi beban kerja, proses client selalu memulai koneksi ke server, sedangkan proses server selalu menunggu permintaan dari klien manapun.
Apabila proses klien dan proses server berjalan pada komputer yang sama, ini disebut single seat setup.
Jenis lain dari arsitektur perangkat lunak terkait dikenal sebagai peer-to-peer, karena setiap host atau instance aplikasi dapat secara simultan bertindak sebagai klien dan server (tidak seperti server terpusat pada model client-server) dan karena masing-masing memiliki tanggung jawab dan status yang setara. Arsitektur peer-to-peer sering disingkat menggunakan akronim P2P.
Hubungan klien-server menggambarkan hubungan antara klien dan bagaimana klien membuat permintaan layanan ke server, dan bagaimana server dapat menerima permintaan ini, memprosesnya, dan mengembalikan informasi yang diminta ke klien. Interaksi antara klien dan server sering digambarkan dengan menggunakan sequence diagram. Diagram urutan distandarisasi dalam Unified Modeling Language.
Baik arsitektur client-server maupun P2P digunakan secara luas saat ini.
Jenis dasar arsitektur perangkat lunak klien-server hanya menggunakan dua jenis host: klien dan server. Jenis arsitektur ini kadang-kadang disebut sebagai two-tier. Arsitektur dua tingkat berarti bahwa klien bertindak sebagai satu tingkat dan proses server bertindak sebagai tingkat lainnya.
Arsitektur perangkat lunak client-server telah menjadi salah satu model dasar komputasi jaringan. Banyak jenis aplikasi yang telah ditulis menggunakan model client-server. Fungsi-fungsi jaringan standar seperti pertukaran E-mail, akses web dan akses database, didasarkan pada model client-server. Misalnya, web browser adalah program klien di komputer pengguna yang dapat mengakses informasi di server web mana pun di dunia.
Jaringan berbasis satu server.
Jaringan berbasis peer-to-peer.
Karakteristik klien
Karakteristik server
- Selalu menunggu permintaan dari salah satu klien.
- Melayani permintaan klien kemudian membalas ke klien dengan data yang diminta.
- Server dapat berkomunikasi dengan server lain untuk melayani permintaan klien.
- Jika informasi tambahan diperlukan untuk memproses permintaan (atau keamanan diterapkan), server dapat meminta data tambahan (kata sandi) dari klien sebelum memproses permintaan.
- Pengguna akhir biasanya tidak berinteraksi secara langsung dengan server, tetapi menggunakan klien.
Keuntungan
- Dalam kebanyakan kasus, arsitektur client-server memungkinkan peran dan tanggung jawab yang lebih besar dari sistem komputasi didistribusikan di antara beberapa komputer independen yang diketahui satu sama lain hanya melalui jaringan, sehingga salah satu keuntungan dari model ini adalah kemudahan pemeliharaan yang lebih besar. Sebagai contoh, adalah mungkin untuk mengganti, memperbaiki, meng-upgrade, atau bahkan merelokasi server sementara kliennya tetap tidak menyadari dan tidak terpengaruh oleh perubahan itu. Kemandirian dari perubahan ini juga disebut sebagai enkapsulasi.
- Semua data disimpan di server, yang umumnya memiliki kontrol keamanan yang lebih baik daripada kebanyakan klien. Server dapat mengontrol akses dan sumber daya dengan lebih baik, untuk menjamin bahwa hanya klien dengan izin yang sesuai yang dapat mengakses dan mengubah data.
- Karena penyimpanan data terpusat, pembaruan data tersebut jauh lebih mudah bagi administrator daripada apa yang mungkin dilakukan di bawah arsitektur P2P. Di bawah arsitektur P2P, pembaruan data mungkin perlu didistribusikan dan diterapkan ke setiap "peer" dalam jaringan, yang memakan waktu dan rawan kesalahan, karena mungkin ada ribuan atau bahkan jutaan peer.
- Banyak teknologi client-server canggih yang sudah tersedia, yang didesain untuk memastikan keamanan, antarmuka yang ramah pengguna, dan kemudahan penggunaan.
- Ia bekerja dengan beberapa klien berbeda dengan spesifikasi yang berbeda.
Kekurangan
- Pemblokiran lalu lintas jaringan adalah salah satu masalah yang berkaitan dengan model client-server. Karena jumlah permintaan klien secara simultan ke server yang diberikan meningkat, server dapat menjadi kelebihan beban. Bandingkan dengan jaringan P2P, di mana bandwidth-nya benar-benar meningkat ketika lebih banyak node ditambahkan, karena bandwidth keseluruhan jaringan P2P dapat dihitung secara kasar sebagai jumlah bandwidth dari setiap node dalam jaringan itu.
- Membandingkan model client-server dengan model Peer to Peer, jika satu server gagal, permintaan klien tidak dapat dilayani tetapi dalam kasus jaringan P2P, server biasanya didistribusikan di antara banyak node. Bahkan jika satu atau lebih node gagal, misalnya jika sebuah node gagal mendownload file, node yang tersisa masih memiliki data yang dibutuhkan untuk menyelesaikan download.
Contoh
Pertanyaan dan Jawaban
T: Apa yang dimaksud dengan arsitektur perangkat lunak klien-server?
A: Arsitektur perangkat lunak client-server adalah model yang terdiri dari dua bagian, sistem klien dan sistem server, keduanya berkomunikasi melalui jaringan komputer atau pada komputer yang sama.
T: Bagaimana cara kerja aplikasi klien-server?
J: Aplikasi klien-server adalah sistem terdistribusi yang terdiri atas perangkat lunak klien dan server. Proses klien selalu memulai koneksi ke server, sedangkan proses server selalu menunggu permintaan dari klien mana pun.
T: Apa yang terjadi ketika proses klien dan proses server berjalan pada komputer yang sama?
J: Ketika proses klien dan proses server berjalan pada komputer yang sama, ini disebut pengaturan kursi tunggal.
T: Manfaat apa yang diberikan oleh Aplikasi Server Klien?
J: Menggunakan Aplikasi Klien Server menyediakan cara yang lebih baik untuk berbagi beban kerja di antara beberapa komputer atau pengguna.
T: Siapa yang memulai koneksi dalam Aplikasi Server Klien?
J: Proses Klien selalu memulai koneksi dalam Aplikasi Server Klien.
T: Siapa yang menunggu permintaan di Aplikasi Server Klien?
J: Proses Server selalu menunggu permintaan dalam Aplikasi Server Klien.
T: Bagaimana beberapa komputer atau pengguna dapat saling berbagi beban kerja?
J: Beberapa komputer atau pengguna dapat berbagi beban kerja dengan menggunakan sistem terdistribusi seperti Aplikasi Server Klien.