Arsitektur Client Server
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.
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 :
- Masing-masing PC memiliki penyimpanan tesendiri
-Berbagi hardware atau software
Model-model Client Server
Dibawah ini
dijelaskan 3 jenis model-model Client server, diantaranya :
- Client/server (two tier)
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.
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.
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.
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.
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
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.
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.
2. Three-Tier/Multi Tier
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)
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 Three-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
- 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. 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.
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.
Ø 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. 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.
Keuntungan
Diantara keuntungan-keuntungan
yang dapat diperoleh dari arsitektur n-tier (atau 3-tier pada umumnya), yang
terutama adalah:
- Kemudahan perubahan business logic di masa yang akan dating
- Business logic yang mudah diimplementasi dan dipelihara
- Aplikasi client dapat mengakses berbagai tipe DBMS yang berbeda-beda secara transparan.
Kerugian n-tier
- Sistem n-tier relatif
mahal untuk development dan instalasinya. Hal ini dikarenakan perencanaan
software pada 3-tier bisa jadi sangat kompleks. Kompleksitas dalam hal ini
meliputi seluruh aspek, baik infrastruktur maupun pembuatan software
secara keseluruhan.
Tidak ada komentar:
Posting Komentar