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.
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 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.
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:
- 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.
- 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.
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.
Keuntungan dan Kerugian:
Pada model Two-Tier Architecture menempatkan business logic/application process dan
data management pada server sedangkan client bertanggung jawab untuk
menjalankan perangkat lunak presentasi yang biasanya hanya berbentuk
interface system atau GUI. Server mengerjakan pekerjaan berat yaitu
menjalankan application process dan data management. Contoh : website
Kelebihan :
-
Biaya lebih rendah
-
Lebih cocok untuk model jaringan sederhana
Kekurangan:
- Menempatkan beben berat pemrosesan pada server
- Ada kekuatan pemrosesan yang besar yang tersedia pada PC modern dan tidak digunakan pada client
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
Kekurangan arsitekture Three Tier :
- Lebih susah untuk merancang
- Lebih susah untuk mengatur
- Lebih mahal
Arsitektur dari system client pada jaringan merupakan model konektivitas pada jaringan yang membedakan fungsi computer sebagai Client dan Server. Arsitektur ini menempatkan sebuah komputer sebagai Server. Server ini yang bertugas memberikan pelayanan kepada terminal-terminal lainnya yang terhubung dalam system jaringan atau yang kita sebut Client. Server juga dapat bertugas untuk memberikan layanan berbagi pakai berkas (file server), printer (printer server), jalur komunikasi (server komunikasi), Cepat lambatnya balasan permintaan tergantung pada banyaknya permintaan, semakin banyak permintaan semakin lama balasan dari server, begitupun sebaliknya
Sumber:
http://top-ilmu.blogspot.com/2012/09/arsitektur-client-server.html
http://slametridwan.wordpress.com/arsitektur-client-server/
0 komentar:
Posting Komentar