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.
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)
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#ixzz2NhNKyK47
0 komentar:
Posting Komentar