Pertemuan 1: Konsep Fundamental Sistem Terdistribusi, Arsitektur, dan Karakteristik Transparansi
Konsep Fundamental Sistem Terdistribusi, Arsitektur, dan Karakteristik Transparansi
Pengantar komprehensif mata kuliah Sistem Terdistribusi yang mengkaji prinsip dasar komputasi terdistribusi, arsitektur interkoneksi node independen, delapan miskonsepsi klasik (Fallacies of Distributed Computing), serta spektrum transparansi sistem menurut taksonomi Tanenbaum.
1. Definisi Formal Sistem Terdistribusi
Menurut definisi otoritatif Andrew S. Tanenbaum dan Maarten van Steen: "Sistem terdistribusi adalah sekumpulan komputer otonom independen yang saling terhubung melalui jaringan komunikasi fisik dan dilengkapi perangkat lunak middleware, sehingga menyajikan dirinya kepada pengguna akhir sebagai suatu sistem komputasi tunggal yang utuh dan koheren."
Karakteristik penting yang membedakannya dari sistem terpusat (centralized system):
- Otonomi Node: Setiap komputer (node / host) memiliki CPU, memori, media penyimpanan lokal, dan sistem operasinya sendiri. Tidak ada memori bersama secara fisik (shared memory).
- Ketiadaan Jam Global (Absence of Global Clock): Setiap node mengandalkan osilator jam fisik masing-masing, sehingga sinkronisasi urutan kejadian waktu antar node menjadi persoalan matematis yang kompleks (memerlukan algoritma seperti Lamport Timestamps atau Vector Clocks).
- Kegagalan Parsial (Partial Failure): Beberapa node atau link komunikasi dalam sistem dapat mengalami kerusakan atau putus sewaktu-waktu, sementara komponen node lainnya harus tetap terus beroperasi melayani kueri tanpa terganggu (fault resilience).
Berikut adalah bagan arsitektur sistem terdistribusi dan komunikasi antar node dari catatan pengantar perkuliahan:
2. Delapan Miskonsepsi Klasik (The 8 Fallacies of Distributed Computing)
Peter Deutsch dan James Gosling merumuskan 8 asumsi keliru yang sering dipercaya secara naif oleh pengembang perangkat lunak pemula saat bermigrasi dari arsitektur monolitik ke sistem terdistribusi:
- The network is reliable: Jaringan fisik selalu diasumsikan stabil dan tidak pernah mengalami packet loss (faktanya: kabel putus, router crash, dan timeout koneksi adalah keniscayaan).
- Latency is zero: Pengiriman data antar node diasumsikan instan seperti pemanggilan fungsi di memori lokal (faktanya: transmisi jaringan selalu memiliki latensi delay fisik).
- Bandwidth is infinite: Kapasitas pipa jaringan diasumsikan tidak terbatas (faktanya: volume transfer data yang masif memicu bottleneck kemacetan).
- The network is secure: Jaringan internal diasumsikan aman tanpa ancaman intersepsi (faktanya: paket data dapat disadap, dipalsukan, atau diserang man-in-the-middle).
- Topology doesn't change: Struktur konfigurasi server diasumsikan statis (faktanya: node server dapat bertambah, berkurang, atau dipindahkan secara dinamis).
- There is one administrator: Diasumsikan hanya ada satu otoritas konfigurasi (faktanya: sistem lintas organisasi melibatkan banyak kebijakan hak akses berbeda).
- Transport cost is zero: Biaya operasional transmisi data serialisasi diasumsikan gratis (faktanya: enkripsi, serialisasi, dan transfer cloud membutuhkan biaya komputasi dan finansial nyata).
- The network is homogeneous: Semua mesin dan OS diasumsikan seragam (faktanya: sistem terdistribusi terdiri dari kombinasi heterogen arsitektur CPU, OS Linux/Windows, serta bahasa pemrograman yang beragam).
3. Spektrum Transparansi Sistem Terdistribusi
Tujuan utama arsitektur sistem terdistribusi adalah menyembunyikan kerumitan operasional internal dari pandangan pengguna aplikasi (transparency):
- Access Transparency: Menyembunyikan perbedaan representasi data dan cara mengakses sumber daya (misal file lokal vs file remote diakses dengan antarmuka yang identik).
- Location Transparency: Pengguna tidak perlu mengetahui lokasi geografis fisik di mana sumber daya atau database tersebut disimpan.
- Migration Transparency: Sumber daya dapat dipindahkan ke server lain tanpa mempengaruhi aplikasi yang sedang mengaksesnya.
- Relocation Transparency: Sumber daya dapat berpindah lokasi saat sedang aktif digunakan tanpa memutus sesi pengguna.
- Replication Transparency: Pengguna tidak menyadari bahwa berkas atau data telah diduplikasi di banyak node server demi menjaga keandalan dan kecepatan respon.
- Concurrency Transparency: Banyak pengguna dapat mengakses sumber daya yang sama secara simultan tanpa menyadari adanya pengguna lain yang bertransaksi.
- Failure Transparency: Pengguna tidak merasakan adanya server yang crash karena kueri otomatis dialihkan ke replica server cadangan secara instan (automatic failover).