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.
> 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 dan 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 :
1. Layanan presentasi (tingkat
client)
2. Layanan bisnis (tingkat menengah)
3. 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.
Diambil dari berbagai Sumber
Semoga Bermanfaat :)
Tidak ada komentar:
Posting Komentar