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 computer sebagai Client dan Server. Arsitektur
ini menempatkan sebuah komputer sebagai Server. Nah 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
Menggunakan LAN untuk mendukung
jaringan PC
Masing-masing PC memiliki
penyimpan tersendiri
Berbagi hardware atau software
Komponen dasar Client Server
Pada dasarnya Client Server terdiri dari 3 komponen pembentuk dasar,
yaitu Client, Middleware, dan Server. Gubungan dari ketiganya dapat digambarkan
sebagai berikut:
3.2 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
banyakclient dan sebuah server yang dihubungkan melalui sebuah jaringan.
Aplikasi ditempatkan pada computer 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. Adalah antar muka
program aplikasi yang berhadapan dan digunakan langsung oleh user.
2.
Manajemen Proses.
3. Database. 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. 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
• Mudah
• 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 computer 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,
kinerja dan skalabilitas merupakan tujuan nyata dari sebagian besar
aplikasi.
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.
3.3 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)
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 computer 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.
Skala besar.
• 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
·
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
3.4 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. Diagramnya terlihat seperti dibawah ini:
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.
3.5 Keuntungan Dan Kerugian n-tier
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
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.
Kesimpulan
Dalam konteks basis data, client mengatur interface
berfungsi sebagai workstation tempat menjalankan aplikasi basis data. Client
menerima permintaan pemakai, memeriksa sintaks dan generate kebutuhan basis
data dalam SQL atau bahasa yang lain. Kemudian meneruskan pesan ke server,
menunggu response dan bentuk response untuk pemakai akhir.
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. Adalah
antar muka program aplikasi yang berhadapan dan digunakan langsung oleh user.
2.
Manajemen Proses.
3.
Database. Model ini
memisahkan peranan user interface dan database dengan jelas, sehingga terbentuk
dua lapisan.
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).
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.
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.
1.
http://luviyani.blogspot.com/2010/04/client-server.html
2.
http://lintoherlambang.com/arsitektur-aplikasi-client-server.html
3.
http://slametridwan.wordpress.com/arsitektur-client-server/
4.http://jokonurjadi.blogspot.com/2008/12/membuat-aplikasi-untuk-perusahaan.html