ARSITEKTUR CLIENT SERVER
ARSITEKTUR CLIENT SERVER
Arsitektur Client Server - Istilah arsitektur mengacu pada
desain sebuah aplikasi, atau dimana komponen yang membentuk suatu sistem
ditempatkan dan bagaimana mereka berkomunikasi. Arsitektur terdistribusi –
sebuah istilah yang relatif baru untuk menjelaskan arsitektur aplikasi –
berarti bahwa pemrosesan dari suatu aplikasi terjadi pada lebih dari satu
mesin. Kita tahu bahwa perkembangan teknologi kini telah banyak membuat
perubahan pada cara berpikir kita (manusia). Dengan laju pertumbuhan teknologi
yang makin cepat, kebutuhan akan informasi dari hari ke hari meningkat sehingga
menuntu kelancaran, dan kecepatan proses distribusi informasi.
Arsitektur jaringan Client Server merupakan model
konektivitas pada jaringan yang membedakan fungsi komputer sebagai Client dan
Server. Arsitektur ini menempatkan sebuah komputer sebagai Server. Server ini
yang bertugas memberikan pelayanan kepada terminal-terminal lainnya tang
terhubung dalam system jaringan atau yang kita sebut Clientnya. Server juga
dapat bertugas untuk memberikan layanan berbagi pakai berkas (file server),
printer (printer server), jalur komunikasi (server komunikasi).
Pada model arsitektur ini, Client tidak dapat berfungsi
sebagai Server, tetapi Server dapat berfungsi menjadi Client (server
non-dedicated). Prinsip kerja pada arsitektur ini sangat sederhana, dimana
Server akan menunggu permintaan dari Client, memproses dan memberikan hasil
kepada Client, sedangkan Client akan mengirimkan permintaan ke Server, menunggu
proses dan melihat visualisasi hasil prosesnya.
Arsitektur Client Server - Sistem Client Server ini tidak
hanya diperuntukkan bagi pembangunan jaringan komputer skala luas. Sistem ini
menggunakan protokol utama Transmision Control Protocol/Internet Protocol
(TCP/IP), sedangkam sistem operasi yang digunakan antara lain Unix, Linux dan
Windows NT.
Lingkungan Database Client/Server di Internet :
Menggunakan LAN untuk
mendukung jaringan PC
Masing-masing PC
memiliki penyimpan tersendiri
Berbagi hardware atau
software
Model-model Client Server
Model-model Client Server Dibawah ini dijelaskan 3 jenis
model-model Client server, diantaranya :
1. Client/Server (two tier)
Two Tier Client Server - Dalam model client/server,
pemrosesan pada sebuah aplikasi terjadi pada client dan server. Client/server
adalah tipikal sebuah aplikasi two-tier dengan banyak client dan sebuah server
yang dihubungkan melalui sebuah jaringan.
two+tire
Aplikasi ditempatkan pada komputer client dan mesin database
dijalankan pada server jarak-jauh. Aplikasi client mengeluarkan permintaan ke
database yang mengirimkan kembali data ke client-nya.
Model Two-tier terdiri dari tiga komponen yang disusun
menjadi dua lapisan : client (yang meminta serice) dan server (yang menyediakan
service). Tiga komponen tersebut yaitu :
1. User Interface(Client). Adalah antar muka program
aplikasi yang berhadapan dan digunakan langsung oleh user.
2.
Manajemen Proses(Jaringan).
3. Database(Server). Model ini memisahkan peranan user
interface dan database dengan jelas, sehingga terbentuk dua lapisan.
Dalam model client/server, pemrosesan pada sebuah aplikasi
terjadi pada client dan server. Client/server adalah tipikal sebuah aplikasi
two-tier dengan banyak client dan sebuah server yang dihubungkan melalui sebuah
jaringan, seperti terlihat dalam gambar 1.2. Aplikasi ditempatkan pada komputer
client dan mesin database dijalankan pada server jarak-jauh. Aplikasi client
mengeluarkan permintaan ke database yang mengirimkan kembali data ke
client-nya.
Dalam client/server, client-client yang cerdas bertanggung
jawab untuk bagian dari aplikasi yang berinteraksi dengan user, termasuk logika
bisnis dan komunikasi dengan server database.
Aplikasi-aplikasi berbasis client/server memiliki kekurangan
pada skalabilitas. Skalabilitas adalah seberapa besar aplikasi bisa menangani
suatu kebutuhan yang meningkat – misalnya, 50 user tambahan yang mengakses
aplikasi tersebut. Walaupun model client/server lebih terukur daripada model
berbasis host, masih banyak pemrosesan yang terjadi pada server. Dalam model
client/server semakin banyak client yang menggunakan suatu aplikasi, semakin
banyak beban pada server.
Koneksi database harus dijaga untuk masing-masing client.
Koneksi menghabiskan sumber daya server yang berharga dan masing-masing client
tambahan diterjemahkan ke dalam satu atau beberapa koneksi. Logika kode tidak
bisa didaur ulang karena kode aplikasi ada dalam sebuah pelaksanaan executable
monolitik pada client. Ini juga menjadikan modifikasi pada kode sumber sulit.
Penyusunan ulang perubahan itu ke semua komputer client juga membuat sakit
kepala.
Keamanan dan transaksi juga harus dikodekan sebagai
pengganti penanganan oleh COM+/MTS. Bukan berarti model client/server bukanlah
merupakan model yang layak bagi aplikasi-aplikasi. Banyak aplikasi yang lebih
kecil dengan jumlah user terbatas bekerja sempurna dengan model ini. Kemudahan
pengembangan aplikasi client/server turut menjadikannya sebuah solusi menarik
bagi perusahaan.
Pengembangan umumnya jauh lebih cepat dengan tipe sistem
ini. Siklus pengembangan yang lebih cepat ini tidak hanya menjadikan aplikasi
meningkat dan berjalan dengan cepat namun juga lebih hemat biaya.
Kelebihan dari model client/server :
Menangani Database
Server secara khusus
Relatif lebih sederhana untuk di develop dan
diimplementasikan.
Lebih cocok diterapkan untuk bisnis kecil.
Server database berisi mesin database, termasuk tabel,
prosedur tersimpan, dan trigger (yang juga berisi aturan bisnis). Dalam system
client/server, sebagian besar logika bisnis biasanya diterapkan dalam database.
Server database manangani :
Manajemen data
Keamanan
Query, trigger, prosedur tersimpan
Penangan kesalahan
Arsitektur client/server merupakan sebuah langkah maju
karena mengurangi beban pemrosesan dari komputer sentral ke komputer client.
Ini berarti semakin banyak user bertambah pada aplikasi client/server, kinerja
server file tidak akan menurun dengan cepat. Dengan client/server user dair
berbagai lokasi dapat mengakses data yang sama dengan sedikit beban pada sebuah
mesin tunggal. Namun masih terdapat kelemahan pada model ini. Selain menjalankan
tugas-tugas tertentu,
Kekurangan dari model client/server :
Kurangnya
skalabilitas
Koneksi database dijaga
Tidak ada keterbaharuan kode
Tidak ada tingkat menengah untuk menangani keamanan dan
transaksi skala kecil.
Susah di amankan.
Lebih mahal.
2. Three-Tier / Multi-Tier
Three Tier Client Server - Model three-tier atau multi-tier
dikembangkan untuk menjawab keterbatasan pada arsitektur client/server. Dalam
model ini, pemrosesan disebarkan di dalam tiga lapisan (atau lebih jika
diterapkan arsitektur multitier). Lapisan ketiga dalam arsitektur ini
masing-masing menjumlahkan fungsionalitas khusus. Yaitu :
Layanan presentasi (tingkat client)
Layanan bisnis (tingkat menengah)
Layanan data (tingkat sumber data)
three+tire
Layanan presentasi atau logika antarmuka pengguna
ditempatkan pada mesin client. Logika bisnis dikeluarkan dari kode client dan
ditempatkan dalam tingkat menengah. Lapisan layanan data berisi server
database. Setiap tingkatan dalam model three-tier berada pada komputer
tersendiri.
Konsep model three-tier adalah model yang membagi
fungsionalitas ke dalam lapisan-lapisan, aplikasiaplikasi mendapatkan
skalabilitas, keterbaharuan, dan keamanan.
Arsitektur Three Tier merupakan inovasi dari arsitektur
Client Server. Pada arsitektur Three Tier ini terdapat Application Server yang
berdiri di antara Client dan Database Server. Contoh dari Application server
adalah IIS, WebSphere, dan sebagainya. Application Server umumnya berupa
business process layer, dimana bisa didevelop menggunakan PHP, ASP.Net, maupun
Java. Sehingga kita menempatkan beberapa business logic kita pada tier
tersebut. Arsitektur Three Tier ini banyak sekali diimplementasikan dengan
menggunakan Web Application. Karena dengan menggunakan Web Application, Client
Side (Komputer Client) hanya akan melakukan instalasi Web Browser.
Dan saat komputer client melakukan inputan data, maka data
tersebut dikirimkan ke Application Server dan diolah berdasarkan business
process-nya. Selanjutnya Application Server akan melakukan komunikasi dengan
database server. Biasanya, implementasi arsitektur Three Tier terkendala dengan
network bandwidth.
Karena aplikasinya berbasiskan web, maka Application Server
selalu mengirimkan Web Application-nya ke komputer Client. Jika kita memiliki
banyak sekali client, maka bandwidth yang harus disiapkan akan cukup besar,
Sedangkan network bandwidth biasanya memiliki limitasi. Oleh karena itu
biasanya, untuk mengatasi masalah ini, Application Server ditempatkan pada sisi
client dan hanya mengirimkan data ke dalam database server. Konsep model
three-tier adalah model yang membagi fungsionalitas ke dalam lapisan-lapisan,
aplikasiaplikasi mendapatkan skalabilitas, keterbaharuan, dan keamanan.
Kelebihan arsitektur Three Tier :
Segala sesuatu mengenai database terinstalasikan pada sisi
server, begitu pula dengan pengkonfigurasiannya. Hal ini membuat harga yang
harus dibayar lebih kecil.
Apabila terjadi kesalahan pada salah satu lapisan tidak akan
menyebabkan lapisan lain ikut salah.
Perubahan pada salah satu lapisan tidak perlu menginstalasi
ulang pada lapisan yang lainnya dalam hal ini sisi server ataupun sisi client.
Keamanan dibelakang firewall.Transfer informasi antara web
server dan server database optimal.
Komunikasi antara system-sistem tidak harus didasarkan pada
standart internet, tetapi dapat menggunakan protocol komunikasi yang lebvih
cepat dan berada pada tingkat yang lebih rendah.
Penggunaan middleware mendukung efisiensi query database
dalam SQL di pakai untuk menangani pengambilan informasi dari database.
Beberapa Keuntungan Arsitektur Three-Tier :
Keluwesan teknologi.
Mudah untuk mengubah DBMS engine.
Kemungkinkan 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.
Kemampuan untuk bereaksi terhadap perubahan bisnis dengan
cepat, dengan cara mengubah modul kode daripada mengubah keseluruhan aplikasi
Kekurangan arsitekture Three Tier :
Lebih susah untuk merancang
Lebih susah untuk mengatur
Lebih mahal
3. Aplikasi
N-tier
Aplikasi N-Tier - Stored procedure ternyata tidak mencukupi
untuk sistem dimana database disimpan pada lebih dari satu server, karena bisa
jadi terdapat client yang tidak dapat mengakses procedure tersebut. Mungkin
Anda bertanya, apa perlunya menyimpan database lebih dari satu server? Tentu
saja Anda juga menginginkan perusahaan yang menggunakan aplikasi Anda dapat
berkembang, bukan? Penggunaan lebih dari satu database sangat memungkinkan saat
sebuah perusahaan telah memiliki divisi yang cukup besar dimana harus memiliki
database tersendiri. Dalam kasus penggunaan lebih dari satu server database,
Anda perlu mengimplementasikan strategi development yang berbeda, pendekatan
yang baik adalah dengan menggunakan model n-tier. Huruf “n” pada n-tier
menunjukkan variabel numerik yang dapat berisi angka sebanyak apapun, misalnya
3-tier, 4-tier dan seterusnya. Karena itu sebuah aplikasi n-tier memiliki 3
atau lebih tingkatan logical, umumnya aplikasi n-tier saat ini menggunakan
3-tier.
Untuk menggambarkannya, Anda dapat membayangkan skema disain
aplikasi two-tier yang mengimplementasikan business logic pada stored procedure
seperti yang telah diterangkan diatas, kemudian melakukan improvisasi disain
dengan menambahkan sebuah tingkatan (tier) sebagai middle tier sebagai business
object, arsitektur inilah yang dikenal dengan 3-tier. Perbedaan nyata dengan
2-tier adalah, business object pada 3-tier terpisah dari aplikasi client dan elemen
database. Sehingga dapat digambarkan bahwa sistem 3-tier secara umum terbentuk
dari tingkatan client, business dan database.
Untuk membayangkan penerapan 3-tier dalam kehidupan
sehari-hari yang mungkin paling sering Anda temui adalah penerapan Internet
ataupun Intranet.
Pada aplikasi Internet/Intranet, terdapat client yang
menjalankan browser dan meminta informasi dari middle-tier yang berupa HTTP
Server. Middle-tier akan meminta data pada server database, kemudian
mengirimkannya kembali kepada HTTP Server. HTTP Server akan mengirimkan kepada
browser dalam bentuk page/halaman web.
Sebuah sistem 3-tier menyediakan support multi-user yang
stabil, bahkan saat pada client menjalankan aplikasi yang berbeda, juga dapat
mendayagunakan beberapa database yang digunakan secara bersamaan. Dalam
pembahasan berikut ini, akan dijelaskan contoh kasus penerapan 3-tier.
Bayangkan sebuah sistem 3-tier, yang terdiri dari client, business dan
database.
Sistem tersebut harus melakukan kalkulasi gaji karyawan
berdasarkan pajak dan peraturan lainnya yang dapat berubah dari tahun ke tahun.
Pada tahun ini, terdapat perubahan peraturan pajak yang harus diterapkan pada
sistem, pada tingkatan mana Anda harus melakukan update? Anda hanya perlu
melakukan update pada tingkatan business object, yang ada karena arsitektur
3-tier ini. Satu hal yang harus terus diingat sebagai konsep dasar, bahwa
pengertian arsitektur 2-tier maupun 3-tier adalah secara logical dan bukan
secara physical. Sehingga pada sebuah sistem kecil Anda dapat menjalankan
business logic dan database pada komputer yang sama. Tetapi pada sistem yang
besar, Anda mungkin memerlukan beberapa komputer untuk menjalankan baik
tingkatan business ataupun database.
Teknologi pendukung
Beberapa contoh teknologi yang umum dipergunakan untuk
mendukung n-tier:
Component Object
Umumnya merupakan model object oriented dimana dapat
dipergunakan oleh aplikasi yang berbeda dan penggunaan ulang komponen.
Contohnya adalah COM/DCOM. Aplikasi yang ditulis dengan bahasa pemrograman yang
berbeda dapat saling berkomunikasi dengan menggunakan Component Object.
Component Object itu sendiri dapat ditulis dengan bahasa pemrograman yang
berbeda-beda. Pada prinsipnya komponen tersebut terdiri dari class yang
memiliki sekumpulan method.
Microsoft Transaction Server
MTS atau Microsoft Transaction Server merupakan software
yang dikembangkan oleh Microsoft untuk keperluan monitoring transaksi pada
aplikasi terdistribusi. MTS beroperasi pada middle-tier dan menyediakan control
transaksi. Sebagai contoh, jika Anda mengembangkan sistem 3-tier yang mana
menempatkan business object pada middle-tier, maka Anda dapat membuat ActiveX
DLL sebagai business objectnya, dan melakukan instalasi didalam lingkungan MTS
pada middle-tier. MTS akan bertanggung-jawab dalam menangani akses multi-client
pada busines object tersebut. MTS menyediakan fasilitas seperti transaksi
rollback, commit dan deadlock pada middle-tier.
HTTP/Web Server.
Untuk aplikasi n-tier pada aplikasi Internet/Intranet, Anda
mutlak memerlukan Web Server. Terdapat cukup banyak web server yang umum
digunakan seperti Apache Web Server atau Internet Information Server (IIS).
Anda dapat menggunakan web server sebagai middle-tier untuk menangani
permintaan dari browser komputer client.
Microsoft Message Queue Server.
MMQS atau Microsoft Message Queue Server merupakan teknologi
yang dikembangkan oleh Microsoft yang berjalan pada middle-tier dan berfungsi
untuk mengelola antrian permintaan.
Hal ini dilatarbelakangi karena didalam jaringan yang besar,
tidak semua komputer yang terkoneksi berfungsi pada saat yang diperlukan,
sehingga diperlukan sebuah aplikasi yang dapat mengelola antrian request dari
client dan response dari server yang akan dikirimkan lagi ketika komputer
tujuan telah berfungsi. Satu keuntungannya lagi, jika client-client meminta
request yang melebihi kapasitas sebuah server, maka MMQS dapat menyimpannya
untuk kemudian mendelegasikannya pada server yang tidak sibuk. Untuk kebutuhan
ini diperlukan aplikasi pada server yang berfungsi sebagai listener atau
referral.
Database Management System.
Database Management System atau dikenal dengan singkatan
DBMS merupakan sumber penyimpanan data dan tentu saja memegang peranan vital
dalam keseluruhan sistem. Untuk arsitektur 2-tier dan n-tier, diperlukan aplikasi
DBMS yang mampu bekerja pada lingkungan tersebut, beberapa contohnya adalah
MySQL, Microsoft SQL Server dan Oracle. Jika pada DBMS yang dipergunakan
terdapat fasilitas stored procedure, maka dimungkinkan untuk menyimpan business
logic didalam stored procedure yang akan diakses oleh client.
Keuntungan Dan Kerugian n-tier
Diantara keuntungan-keuntungan yang dapat diperoleh dari
arsitektur n-tier (atau 3-tier pada umumnya), yang terutama adalah:
1. Kemudahan
perubahan business logic di masa yang akan dating
2. Business logic
yang mudah diimplementasi dan dipelihara
3. Aplikasi
client dapat mengakses berbagai tipe DBMS yang berbeda-beda secara transparan.
Apakah terdapat kerugian n-tier? Mungkin lebih tepat
dikatakan sebagai konsekuensinya, yaitu sistem n-tier relatif mahal untuk
development dan instalasinya. Hal ini dikarenakan perencanaan software pada
3-tier bisa jadi sangat kompleks. Bahkan pada awal tahap perencanaan, Anda telah
harus mempertimbangkan potensi pengembangan perusahaan pada masa yang akan
datang. Kompleksitas dalam hal ini meliputi seluruh aspek, baik infrastruktur
maupun pembuatan software secara keseluruhan.
Sementara dalam suatu perusahaan, semakin besar perubahan
sistem yang dilakukan, maka akan semakin memerlukan adaptasi yang semakin luas
ruang lingkupnya. Karena itu secara otomatis memerlukan rentang waktu relatif
lebih lama.
Terutama jika sistem 3-tier tersebut akan menggantikan
sistem yang telah lama digunakan, terdapat cukup banyak tantangan untuk
sosialisasi sistem yang baru. Dalam hal ini, interaksi dan komunikasi dengan
pengguna sistem secara keseluruhan sangat diperlukan. Karena itu terdapat dua
sisi yang harus Anda temukan titik imbangnya, antara keuntungan-keuntungan yang
dapat diraih oleh arsitektur aplikasi n-tier berbanding dengan biaya, tenaga
dan waktu yang diperlukan untuk development dan implementasinya.
sumber:
http://top-ilmu.blogspot.com/2012/09/arsitektur-client-server.html