Apr 2, 2012

Model Client-Server

Model client - server adalah model  jaringan yang di dalamnya terdapat server dan clientServer adalah komputer yang dapat memberikan service ke client, sedangkan client adalah komputer yang mengakses beberapa service yang ada di serverKetika client membutuhkan suatu service yang ada di server, dia akan mengirim request kepada server lewat jaringan. Jika request tersebut dapat dilaksanakan, maka server akan mengirim balasan berupa service yang dibutuhkan untuk saling berhubungan menggunakan Socket.
Socket adalah sebuah endpoint untuk komunikasi didalam jaringan. Sepasang proses atau thread berkomunikasi dengan membangun sepasang socket, yang masing-masing proses memilikinya. Socket dibuat dengan menyambungkan dua buah alamat IP melalui port tertentu. Secara umum socket digunakan dalam client/server system, dimana sebuah server akan menunggu client pada port tertentu. Begitu adaclient yang menghubungi server maka server akan menyetujui komunikasi dengan client melalui socket yang dibangun.
  1. Karakteristik Server
    1. Pasif
    2. Menunggu request
    3. Menerima request, memproses mereka dan mengirimkan balasan berupa service
  2. Karakteristik Client
    1. Aktif
    2. Mengirim request
    3. Menunggu dan menerima balasan dari server

Dalam model client-server, terdapat beberapa fungsi transfer data yang dapet dilakukan oleh client, yaitu:
  • Download : client mengambil data dari server. Data di transfer ke client sesuai dengan request data yang dilakukan oleh client.

  • Upload : client mengirimkan data ke server.

Komponen utama pada model ini :
  1. Ada stand-alone server yang menyediakan layanan ke sub-sub sistem
  2. Ada sub-sistem yang disebut juga client yang memanggil/mengakses layanan di server-server
  3. Ada jaminann yang memungkinkan sub-sub sistem mengakses layanan-layanan pada server
Arsitektur client-server memiliki struktur yang terdiri dari 3 lapisan yang harus ada, yaitu:
  1. Business logic/application
  2. Data management
  3. Presentation layer
Internet menggunakan arsitektur client server. Komputer Anda menjalankan sebuah program yang disebut dengan client danprogram tersebut berinteraksi dengan program yang lain yang disebut sebagai server yang diletakkan di remote computer. Client biasanya merupakan sebuah browser seperti Internet Explorer, Netscape Navigator atau Mozila. Browser berinteraksi dengan server dengan menggunakan sekumpulan instruksi yang disebut dengan protokol. Protokol ini lah yang membantu dalam hal akurasi transfer data melalui request yang dikirimkan oleh browser dan response yang dikirim oleh server. Terdapat banyak protokol yang tersedia untuk Internet. World Wide Web, yang merupakan bagian dari Internet
menggunakan semua protokol ini dalam satu atap, yaitu HTTP, FTP, Telnet, email, dan lain sebagainya dari satu platform sistem - hingga akhirnya ke browser Anda.

Beberapa Protokol Internet yang Sering Digunakan
  • HTTP (HyperText Transfer Protocol), digunakan dalam World Wide Web (WWW) yang berfungsi untuk transfer halaman web dan seluruh file yang terletak dalam halaman web seperti gambar, multimedia, attachment file, dan lain sebagainya.
  • FTP (File Transfer Protocol), berfungsi untuk transfer file dari server ke client atau sebaliknya.
  • SMTP (Simple Mail Transfer Protocol), digunakan untuk pengiriman email.
  • Telnet Protocol, digunakan untuk membuka sesi telnet, yaitu sesi koneksi remote login dari satu komputer ke komputer yang lain.

Web menggunakan protokol yang bersifat connection-less. Artinya setiap setelah terjadi interaksi antara client dan server, koneksi antara keduanya akan terputus, demikian seterusnya.

Berikut ini adalah komunikasi antar client server dengan 3 model:
  • Arsitektur Client Server - Halaman Web dengan HTML Statis
Client (browser) mengirim request (permintaan layanan) berupa file HTML yang tersimpan dalam server melalui aplikasi pada server. Server menanggapi request ini kemudian mengirimkan file yang diminta ke client. Client kemudian menampilkan file ini melalui komputernya. Dalam kasus ini, halaman HTML bersifat statis. Halaman-halaman statis ini tidak akan berubah hingga developernya sendiri yang mengubahnya.
  • Arsitektur Client Server - Teknologi CGI Script
Skenarionya sedikit berbeda dengan aplikasi CGI. Di sini server harus bekerja lebih banyak dikarenakan program-program CGI memakai tenaga pemrosesan mesin server. Contohnya, misal kita dihadapkan pada sebuah halaman web yang menyediakan sebuah form searching yang menjalankan program CGI, kemudian kita masukkan kata "komputer" dalam form tersebut sebagai query pencarian. Browser mengirimkan request tersebut ke server, kemudian server memeriksa header dari request tersebut dan memanggil program CGI yang dibutuhkan untuk memproses data request tersebut. Program CGI memproses data request tersebut dan mengeluarkan hasilnya (output) ke server. Server kemudian mengirimkan output tersebut dalam format HTML ke browser yang akan menampilkan hasilnya sebagai halaman HTML. Program CGI men-generate halaman-halaman web secara dinamis. Content halaman web dinamis bergantung pada query yang di-passing ke dalam program CGI.
  • Arsitektur Client Server - Teknologi Server Side Script
Kasus ketiga ini juga menerapkan respon dinamis, yang di-generate oleh penggunaan teknologi server side. Terdapat banyak teknologi server side script yang populer saat ini, di antaranya yaitu:
    • Active Server Pages (ASP), merupakan teknologi Microsoft. Halaman-halaman web ASP biasanya memiliki ekstensi .asp atau .aspx.
    • PHP Hypertext Preprocessor (PHP), merupakan teknologi open source. Halaman-halaman web PHP memiliki ekstensi .php atau .php3.
    • Java Server Pages (JSP), merupakan teknologi Java - Sun, yang berisikan kode-kode Java dalam mengenerate halaman web dengan ekstensi file .jsp
Dengan teknologi server side script ini, kita lebih dimudahkan untuk memelihara, updating dan mengembangkan halaman-halaman web secara dinamis terutama untuk pengelolaan website yang dalam skala besar. Para developer perlu menyisipkan kode-kode program server-side ke dalam halaman HTML. Kode ini di-passing ke dalam interpreter yang akan memproses instruksi-instruksi di dalamnya dan men-generate HTML final yang akan ditampilkan di layar browser. Perlu diketahui bahwa kode-kode server-side script yang disisipkan dalam halaman HTML tidak dapat ditampilkan (invisible) oleh client walaupun client menampilkan source halaman web tersebut, dikarenakan server HANYA mengirimkan kode HTML.
Kita ambil PHP sebagai contoh. Sebuah request untuk sebuah halaman PHP yang dikirimkan oleh client di-passing ke dalam interpreter (penerjemah) PHP. Interpreter kemudian memproses kode PHP tersebut kemudian men-generate sebuah output berupa halaman HTML secara dinamis. Kemudian output yang dihasilkan ini dikirimkan oleh interpreter ke server untuk kemudian dikirimkan kembali ke client (browser). Client (browser) tidak mengetahui semua proses yang terjadi pada sisi server, client hanya menerima kode HTML, yang merupakan format yang sesuai untuk ditampilkan hasilnya melalui layar browser.


Sumber: