Back to IF3130 Sistem Paralel dan Terdistribusi
Topic
Questions/Cues
Apa itu style arsitektur?
Apa beda Layered vs Object-based?
Apa itu decoupling (space & time)?
Beda Pub/Sub vs Shared Data Space?
Apa itu model Client-Server?
Apa itu 3-layer tradisional?
Apa alur di contoh search engine?
Apa itu multi-tiered?
Apa beda 2-tier vs 3-tier?
Reference Points
Slides 10-15 (10 - IF3130-09-Architecture-2022.pdf)
Kuliah Arsitektur Sistem Terdistribusi
1. Architecture Styles (Pola Arsitektur)
Pola arsitektur adalah cara-cara umum untuk membagi tanggung jawab menjadi komponen-komponen dan mendistribusikannya pada mesin-mesin yang berbeda.
Dua contoh awal adalah:
Layered Style (a):
Komponen diorganisir dalam lapisan-lapisan (layers).
Sebuah request mengalir ke bawah (dari Layer N ke N-1, … ke Layer 1).
Sebuah response mengalir ke atas (dari Layer 1 ke … N-1, ke Layer N).
Aturan umum: Layer N hanya boleh memanggil Layer N-1.
Contoh: Model OSI 7-layer, Arsitektur Client-Server (UI, Business, Data).
Object-Based Style (b):
Komponen adalah objek-objek.
Interaksi terjadi melalui pemanggilan method (seperti Remote Procedure Call / RPC).
Contoh: Sistem objek terdistribusi (CORBA, Java RMI).
2. Decoupling (Pemisahan)
Pola arsitektur sering digunakan untuk memisahkan proses (decoupling) dalam ruang (space) dan waktu (time).
Publish/Subscribe (a):
Komponen (Publisher) mempublikasikan event ke Event Bus tanpa tahu siapa penerimanya.
Komponen lain (Subscriber) menerima event dari Bus tanpa tahu siapa pengirimnya.
Ini decouple in space: Publisher dan Subscriber tidak perlu saling kenal secara langsung.
Shared Data Space (b):
Komponen mempublikasikan data ke sebuah shared space (database, blackboard) yang persisten.
Komponen lain bisa mengambil data itu kapan saja.
Ini decouple in space (komponen tidak saling kenal) dan decouple in time (komponen tidak harus aktif bersamaan. Satu bisa publish hari ini, yang lain consume besok).
3. Arsitektur Terpusat (Centralized)
Pola yang paling umum adalah Client-Server.
Servers: Proses yang menyediakan/memberikan layanan.
Clients: Proses yang menggunakan layanan.
Model interaksi dasarnya adalah Request/Reply:
Client mengirim pesan Request ke Server.
Client menunggu (terblokir).
Server memproses request (Provide service).
Server mengirim pesan Reply kembali ke Client.
Client menerima reply dan melanjutkan eksekusi.
4. Application Layering (Lapisan Aplikasi)
Ini adalah implementasi spesifik dari Layered Style. Pandangan tradisional membaginya menjadi 3 lapisan logis:
UI (User Interface) Layer: Berisi logika untuk menangani interaksi dengan pengguna (tampilan, form).
Processing (Business) Layer: Berisi logika bisnis/aplikasi inti (aturan, kalkulasi).
Data Layer: Berisi logika untuk mengakses dan menyimpan data (biasanya ke database).
Contoh (Search Engine Sederhana):
UI Level:
User Interface(tempat user mengetik keyword).Processing Level:
Query Generator(mengubah keyword jadi database query).
Ranking Algorithm(mengurutkan hasil).
HTML Generator(mem-format hasil jadi halaman HTML).Data Level:
Database with Web pages(menyimpan data web).5. Multi-Tiered Architecture (Arsitektur Multi-Lapis)
Ini adalah tentang bagaimana lapisan-lapisan (layers) logis di atas ditempatkan (dideploy) secara fisik di mesin yang berbeda.
Single-tiered: Semua layer (UI, Processing, Data) ada di satu mesin (misal: Mainframe dengan dumb terminal).
Two-tiered: Layer dibagi antara mesin Client dan satu mesin Server.
Three-tiered: Setiap layer ada di mesin terpisah (Mesin Client, Mesin Application Server, Mesin Database Server).
Gambar ini menunjukkan berbagai cara membagi logika antara Client dan Server:
(a) Fat Server: Hampir semua logika (UI, App, Data) di Server. Client hanya penampil (mirip dumb terminal).
(b) Thin Client: UI di Client, sisanya (App, Data) di Server. Ini model yang sangat umum untuk web applications.
(c) Fat Client: UI dan sebagian logika Aplikasi di Client. Server menangani sebagian Aplikasi dan Data.
(d) Very Fat Client: UI dan semua logika Aplikasi di Client. Server murni hanya Database. (Umum untuk aplikasi desktop + DB server).
(e) Standalone: Semua di “Client” (bukan sistem terdistribusi).
Pola arsitektur mendefinisikan cara komponen diatur, seperti Layered (berlapis) atau Object-based (via method call), dan bagaimana mereka dipisahkan (decoupled) seperti Pub/Sub. Pola terpusat yang paling umum adalah Client-Server, yang sering diimplementasikan sebagai arsitektur Multi-Tiered (khususnya Two-Tier atau Three-Tier) yang memisahkan lapisan logis (UI, Processing, Data) ke mesin fisik yang berbeda.
Additional Information
Pendalaman: Three-Tier vs Two-Tier
Two-Tier (Client-Server):
Pro: Sederhana, mudah dikembangkan untuk aplikasi skala kecil/menengah.
Con: Logika bisnis sering tercampur di UI (Client) atau di Database (Server). Sulit di-skala (scale). Jika logika bisnis berubah, seringkali harus update aplikasi di semua client.
Three-Tier (Client-AppServer-DBServer):
Pro: Pemisahan yang jelas. UI tidak tahu-menahu soal Database. Logika bisnis terpusat di Application Server, membuatnya mudah di-update dan di-scale (App Server bisa ditambah tanpa mengubah client atau DB). Lebih aman karena Client tidak pernah terhubung langsung ke Database.
Con: Lebih kompleks untuk di-setup awalnya. Ada overhead komunikasi tambahan (Client → AppServer → DBServer).
Eksplorasi Mandiri
Cari tahu tentang Java RMI (Remote Method Invocation) sebagai contoh implementasi Object-Based Style.
Identifikasi arsitektur aplikasi web modern (misal: Facebook, Tokopedia). Apakah mereka Two-Tier atau Three-Tier (atau N-Tier)? (Petunjuk: Seringkali N-Tier, yang merupakan perluasan dari 3-Tier).
Sumber & Referensi Lanjutan:
Buku: Pattern-Oriented Software Architecture (POSA) - Volume 1. Membahas pola-pola ini secara mendalam.
Istilah: “Fat Client” vs “Thin Client”. Ini adalah terminologi klasik yang sangat penting untuk dipahami dalam evolusi arsitektur.






