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.
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.
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 padakomputer 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.
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.
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, aplikasi aplikasi 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.
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.
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.
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.