PENGERTIAN CLIENT-SERVER
Client/Server dapat diartikan sebagai kemampuan komputer untuk meminta layanan request data kepada komputer lain. Setiapinstance dari komputer yang meminta layanan disebut sebagai client, sedangkan setiap instance yang menyediakan layanan disebut sebagai server. Data yang diminta oleh client dapat diambil dari database pada sisi server yang sering disebut database server, seperi misalnya MySQL, PostgreSQL, Oracle, atau SQL Server.
KARAKTERISTIK CLIENT-SERVER
Client dan Server merupakan item proses (logika) terpisah yang bekerja sama pada suatu jaringan komputer untuk mengerjakan suatu tugas sebagai berikut:
• Service : Menyediakan layanan terpisah yang berbeda
• Shared resource : Server dapat melayani beberapa client pada saat yang sama dan mengatur pengaksesan resource .
• Asymmetrical Protocol : antara client dan server merupakan hubungan one-to-many. Client memulai komunikasi dengan mengirim request ke server. Server menunggu permintaan dari client. Kondisi tersebut juga memungkinkan komunikasi callback.
• Transparency Location : proses server dapat ditempatkan pada mesin yang sama atau terpisah dengan proses client. Client/server akan menyembunyikan lokasi server dari client.
• Mix-and-match : tidak tergantung pada platform
• Message-based-exchange : antara client dan server berkomunikasi dengan mekanisme pertukaran message.
• Encapsulation of service : message memberitahu server apa yang akan dikerjakan.
• Scalability : sistem C/S dapat dimekarkan baik vertical maupun horisontal
• Integrity : kode dan data server diatur secara terpusat, sedangkan pada client tetap pada komputer tersendiri.
• Characteristics of a client
– Initiates requests
– Waits for and receives replies
– Usually connects to a small number of servers at one time
– Typically interacts directly with end-users using a graphical user interface
• Characteristics of a server
– Passive (slave)
– Waits for requests from clients
–Upon receipt of requests, processes them and then serves replies
– Usually accepts connections from a large number of clients
– Typically does not interact directly with end-users
KEUNTUNGAN CLIENT-SERVER
• Client-server mampu menciptakan aturan dan kewajiban komputasi secara terdistribusi.
• Mudah dalam maintenance. Memungkinkan untuk mengganti, memperbaiki server tanpa mengganggu client.
• Semua data disimpan di server Server dapat mengkontrol akses terhadap resources, hanya yang memiliki autorisasi saja.
• Tempat penyimpanan terpusat, update data mudah. Pada peer-to-peer, update data sulit.
• Mendukung banyak clients berbeda dan kemampuan yang berbeda pula.
KELEMAHAN CLIENT-SERVER
• Traffic congestion on the network, jika banyak client mengakses ke server secara simultan, maka server akan overload.
– Berbeda dengan P2P network, dimana bandwidthnya meningkat jika banyak client merequest. Karena bandwidth berasal dari semua komputer yang terkoneksi kepadanya.
• Pada client-server, ada kemungkinan server fail.
– Pada P2P networks, resources biasanya didistribusikan ke beberapa node sehingga masih ada node yang dapat meresponse request.
ARSITEKTUR CLIENT/SERVER
=> Menggunakan LAN untuk mendukung jaringan PC
=> Masing-masing PC memiliki penyimpan tersendiri
=> Berbagi hardware atau software
ARSITEKTUR FILE SERVER
=> Model pertama Client/Server
=> Semua pemrosesan dilakukan pada sisi workstation
=> Satu atau beberapa server terhubungkan dalam jaringan
=> Server bertindak sebagai file server
=> File server bertindak sebagai pengelola file dan memungkinkan klien mengakses file tersebut.
=> Setiap klien dilengkapi DBMS tersendiri
=> DBMS berinteraksi dengan data yang tersimpan dalam bentuk file pada server
=> Aktivitas pada klien:
=> Meminta data
=> Meminta penguncian data
=> Tanggapan dari klien :
-- Memberikan data
-- Mengunci data dan memberikan statusnya
BATASAN FILE SERVER
=> Beban jaringan tinggi karena tabel yang diminta akan diserahkan oleh file server ke klien melalui jaringan.
=> Setiap klien harus memasang DBMS sehingga mengurangi memori.
=> Klien harus mempunyai kemampuan proses tinggi untuk mendapatkan response time yang bagus.
=> Salinan DBMS pada setiap klien harus menjaga integritas databasse yang dipakai secara bersama-sama ð tanggung jawab diserahkan kepada programmer.
ARSITEKTUR DATABASE SERVER
=> Klien bertanggung jawab dalam mengelola antar muka pemakai (mencakup logika penyajian data, logika pemrosesan data, logika aturan bisnis).
=> Database server bertanggung jawab pada penyimpana, pengaksesan, dan pemrosesan database.
=> Database serverlah yang dituntut memiliki kemampuan pemrosesan yang tinggi
=> Beban jaringan menjadi berkurang.
=> Otentikasi pemakai, pemeriksaan integrasi, pemeliharaan data dictionary dilakukan pada database server.
=> Database server merupakan implementasi dari two-tier architecture.
APPLICATION ARCHITECTURES
- Two-tier architecture, Contoh : program klien menggunakan ODBC/JDBC untuk berkomunikasi dengan database.
- Three-tier architecture, Contoh : aplikasi berbasis Web.
Contoh Two-Tier Architecture :
Contoh Three-Tier Architecture :
Arsitektur Three-Tier
- Melibatkan lapisan server yang lain selain lapisan database server.
Beberapa Keuntungan Arsitektur Three-Tier :
=> Keluwesan teknologi
=> Mudah untuk mengubah DBMS engine
=> Memungkinkan pula middle tier ke platform yang berbeda
=> Biaya jangka panjang yang rendah
=> Perubahan-perubahan cukup dilakukan pada middle tier daripada pada aplikasi keseluruhan
=> Keunggulan kompetitif
=> Kekampuan untuk bereaksi thd perubahan bisnis dengan cepat, dengan cara mengubah modul kode daripada mengubah keseluruhan aplikasi
Aplikasi Web dapat dibagi menjadi 2 macam:
=> Web Statis
=> Web Dinamis
Teknologi Web
Teknologi untuk membentuk aplikasi Web yang dinamis :
1. Teknologi pada sisi klien (client-side technology)
2. Teknologi pada sisi server (server-side technology)
Teknologi pada sisi Klien :
1. Kontrol Active X
2. Java applet
3. Client-side script (JavaScript dan VBScript)
4. DHTML (CSS / Cascading Style Sheets)
Teknologi pada sisi Server :
=> CGI
=> FastCGI
=> Proprietary Web Server API (ISAPI dan NSAPI)
=> Active Server Pages (ASP)
=> Java Server Pages (JSP) dan Java Servlets
=> Server-side JavaScript
=> PHP
Client/Server dapat diartikan sebagai kemampuan komputer untuk meminta layanan request data kepada komputer lain. Setiapinstance dari komputer yang meminta layanan disebut sebagai client, sedangkan setiap instance yang menyediakan layanan disebut sebagai server. Data yang diminta oleh client dapat diambil dari database pada sisi server yang sering disebut database server, seperi misalnya MySQL, PostgreSQL, Oracle, atau SQL Server.
KARAKTERISTIK CLIENT-SERVER
Client dan Server merupakan item proses (logika) terpisah yang bekerja sama pada suatu jaringan komputer untuk mengerjakan suatu tugas sebagai berikut:
• Service : Menyediakan layanan terpisah yang berbeda
• Shared resource : Server dapat melayani beberapa client pada saat yang sama dan mengatur pengaksesan resource .
• Asymmetrical Protocol : antara client dan server merupakan hubungan one-to-many. Client memulai komunikasi dengan mengirim request ke server. Server menunggu permintaan dari client. Kondisi tersebut juga memungkinkan komunikasi callback.
• Transparency Location : proses server dapat ditempatkan pada mesin yang sama atau terpisah dengan proses client. Client/server akan menyembunyikan lokasi server dari client.
• Mix-and-match : tidak tergantung pada platform
• Message-based-exchange : antara client dan server berkomunikasi dengan mekanisme pertukaran message.
• Encapsulation of service : message memberitahu server apa yang akan dikerjakan.
• Scalability : sistem C/S dapat dimekarkan baik vertical maupun horisontal
• Integrity : kode dan data server diatur secara terpusat, sedangkan pada client tetap pada komputer tersendiri.
• Characteristics of a client
– Initiates requests
– Waits for and receives replies
– Usually connects to a small number of servers at one time
– Typically interacts directly with end-users using a graphical user interface
• Characteristics of a server
– Passive (slave)
– Waits for requests from clients
–Upon receipt of requests, processes them and then serves replies
– Usually accepts connections from a large number of clients
– Typically does not interact directly with end-users
KEUNTUNGAN CLIENT-SERVER
• Client-server mampu menciptakan aturan dan kewajiban komputasi secara terdistribusi.
• Mudah dalam maintenance. Memungkinkan untuk mengganti, memperbaiki server tanpa mengganggu client.
• Semua data disimpan di server Server dapat mengkontrol akses terhadap resources, hanya yang memiliki autorisasi saja.
• Tempat penyimpanan terpusat, update data mudah. Pada peer-to-peer, update data sulit.
• Mendukung banyak clients berbeda dan kemampuan yang berbeda pula.
KELEMAHAN CLIENT-SERVER
• Traffic congestion on the network, jika banyak client mengakses ke server secara simultan, maka server akan overload.
– Berbeda dengan P2P network, dimana bandwidthnya meningkat jika banyak client merequest. Karena bandwidth berasal dari semua komputer yang terkoneksi kepadanya.
• Pada client-server, ada kemungkinan server fail.
– Pada P2P networks, resources biasanya didistribusikan ke beberapa node sehingga masih ada node yang dapat meresponse request.
ARSITEKTUR CLIENT/SERVER
=> Menggunakan LAN untuk mendukung jaringan PC
=> Masing-masing PC memiliki penyimpan tersendiri
=> Berbagi hardware atau software
ARSITEKTUR FILE SERVER
=> Model pertama Client/Server
=> Semua pemrosesan dilakukan pada sisi workstation
=> Satu atau beberapa server terhubungkan dalam jaringan
=> Server bertindak sebagai file server
=> File server bertindak sebagai pengelola file dan memungkinkan klien mengakses file tersebut.
=> Setiap klien dilengkapi DBMS tersendiri
=> DBMS berinteraksi dengan data yang tersimpan dalam bentuk file pada server
=> Aktivitas pada klien:
=> Meminta data
=> Meminta penguncian data
=> Tanggapan dari klien :
-- Memberikan data
-- Mengunci data dan memberikan statusnya
BATASAN FILE SERVER
=> Beban jaringan tinggi karena tabel yang diminta akan diserahkan oleh file server ke klien melalui jaringan.
=> Setiap klien harus memasang DBMS sehingga mengurangi memori.
=> Klien harus mempunyai kemampuan proses tinggi untuk mendapatkan response time yang bagus.
=> Salinan DBMS pada setiap klien harus menjaga integritas databasse yang dipakai secara bersama-sama ð tanggung jawab diserahkan kepada programmer.
ARSITEKTUR DATABASE SERVER
=> Klien bertanggung jawab dalam mengelola antar muka pemakai (mencakup logika penyajian data, logika pemrosesan data, logika aturan bisnis).
=> Database server bertanggung jawab pada penyimpana, pengaksesan, dan pemrosesan database.
=> Database serverlah yang dituntut memiliki kemampuan pemrosesan yang tinggi
=> Beban jaringan menjadi berkurang.
=> Otentikasi pemakai, pemeriksaan integrasi, pemeliharaan data dictionary dilakukan pada database server.
=> Database server merupakan implementasi dari two-tier architecture.
APPLICATION ARCHITECTURES
- Two-tier architecture, Contoh : program klien menggunakan ODBC/JDBC untuk berkomunikasi dengan database.
- Three-tier architecture, Contoh : aplikasi berbasis Web.
Contoh Two-Tier Architecture :
Contoh Three-Tier Architecture :
Arsitektur Three-Tier
- Melibatkan lapisan server yang lain selain lapisan database server.
Beberapa Keuntungan Arsitektur Three-Tier :
=> Keluwesan teknologi
=> Mudah untuk mengubah DBMS engine
=> Memungkinkan pula middle tier ke platform yang berbeda
=> Biaya jangka panjang yang rendah
=> Perubahan-perubahan cukup dilakukan pada middle tier daripada pada aplikasi keseluruhan
=> Keunggulan kompetitif
=> Kekampuan untuk bereaksi thd perubahan bisnis dengan cepat, dengan cara mengubah modul kode daripada mengubah keseluruhan aplikasi
Aplikasi Web dapat dibagi menjadi 2 macam:
=> Web Statis
=> Web Dinamis
Teknologi Web
Teknologi untuk membentuk aplikasi Web yang dinamis :
1. Teknologi pada sisi klien (client-side technology)
2. Teknologi pada sisi server (server-side technology)
Teknologi pada sisi Klien :
1. Kontrol Active X
2. Java applet
3. Client-side script (JavaScript dan VBScript)
4. DHTML (CSS / Cascading Style Sheets)
Teknologi pada sisi Server :
=> CGI
=> FastCGI
=> Proprietary Web Server API (ISAPI dan NSAPI)
=> Active Server Pages (ASP)
=> Java Server Pages (JSP) dan Java Servlets
=> Server-side JavaScript
=> PHP