Bagaimana
komponen berkomunikasi dengan lancar atau entitas berkomunikasi satu sama lain
berulang kali melalui jaringan?
Ada
banyak komponen yang terintegrasi erat dalam komputasi modern, yang menciptakan
sistem yang rumit dan rumit. Ambil contoh jaringan komputer—jaringan komputer
seperti sekelompok perangkat yang bekerja sama dan bekerja bersama. Jaringan
komputer terdiri dari perangkat yang saling terhubung yang mampu berkolaborasi;
namun, server jaringan bisa jadi rumit.
Itulah
sebabnya arsitektur sistem terdistribusi menangani dan menanggulangi tantangan
di antara komponen-komponen di seluruh jaringan dengan menggunakan mekanisme
dan prinsip arsitektur yang memastikan komunikasi efektif antara
komponen-komponen ini.
Mari kita bahas definisi singkat tentang sistem
terdistribusi sebelum kita menyelami arsitektur sistem terdistribusi.
Apa itu Sistem Terdistribusi?
Sistem
terdistribusi didefinisikan sebagai kumpulan beberapa komputer yang mengerjakan
berbagai tugas di seluruh jaringan agar berfungsi sebagai satu kesatuan yang
utuh. Keadaan sistem terdistribusi terbagi di beberapa komputer, yang merupakan
kebalikan dari keadaan terpusat, yang keadaannya disimpan di satu komputer.
Misalnya, jika Anda menyimpan dokumen di penyimpanan berbasis awan yang memungkinkan pengguna
menyimpan berkas di beberapa perangkat, saat sesuatu terjadi pada laptop Anda,
Anda selalu dapat mengakses berkas tersebut kapan saja dan di mana saja. Saat
sistem dirancang untuk mengisolasi kesalahan, memulihkan dari kegagalan sistem,
atau memproses data secara bersamaan melalui beberapa prosesor, kinerjanya
meningkat dan menjadi andal.
Contoh
sistem terdistribusi meliputi;
·
DNS (Sistem nama domain)
·
Google
·
Meta
·
Server Email (SMTP)
Pentingnya Sistem Terdistribusi
·
Skalabilitas: Sistem
terdistribusi dapat menangani banyak beban kerja yang besar.
·
Latensi yang Berkurang: Dengan
menyebarkan beban jaringan ke beberapa node atau server , sistem terdistribusi memastikan tidak ada server
atau node yang kewalahan dengan lalu lintas.
·
Keamanan: Pengamanan
keamanan dapat mencegah akses ilegal dan pelanggaran data.
·
Sifat Kuat: Sistem
terdistribusi dapat menoleransi kegagalan atau gangguan eksternal.
·
Berbagi Sumber Daya: Sumber
daya komputasi, baik perangkat keras, perangkat lunak, atau data - dapat
dibagikan atau disediakan kepada banyak pengguna atau aplikasi.
·
Konkurensi: Beberapa
mesin memiliki kapasitas untuk memproses fungsi yang sama pada saat yang sama.
·
Desentralisasi: Sistem
terdistribusi tidak bergantung pada satu titik kontrol, oleh karena itu,
toleransi kesalahan ditingkatkan.
Kerugian Sistem Terdistribusi
·
Kegagalan Jaringan: Kegagalan
jaringan dapat terjadi karena kondisi tertentu.
·
Risiko Keamanan: Karena
data didistribusikan ke beberapa node (perangkat komputasi yang terlibat dalam
suatu sistem) yang berkomunikasi satu sama lain dan terbuka untuk berbagi
sumber daya, hal ini dapat membuat sistem lebih rentan terhadap serangan siber.
·
Biaya: Mahal untuk
menyiapkan dan memelihara sistem terdistribusi yang mungkin mencakup; perangkat
keras, perangkat lunak, dan infrastruktur jaringan.
·
Sifat Kompleks: Sistem
terdistribusi rumit untuk disiapkan, dikelola, dan dipelihara.
Apa itu Arsitektur Terdistribusi?
Arsitektur
sistem terdistribusi adalah representasi dari suatu sistem atau desain dan
struktur suatu sistem, yang mencakup komponen-komponen yang dapat berkomunikasi
dan berkolaborasi, mendistribusikan tugas/beban kerja, dan sumber daya. Jika
satu perangkat komputasi gagal, yang lain dapat mengambil alih, memastikan
layanan berkelanjutan. Arsitektur sistem terdistribusi dibatasi oleh komponen
dan konektor.
Apa itu komponen dan konektor?
Komponen
dapat berupa node atau unit yang menjalankan tugas atau fungsi tertentu dalam
sistem terdistribusi. Konektor adalah modul komunikasi yang menangani
koordinasi dan kolaborasi antar komponen.
Arsitektur
sistem terdistribusi dapat diklasifikasikan menjadi;
·
Arsitektur Perangkat
Lunak: Arsitektur perangkat lunak dapat didefinisikan
sebagai penempatan komponen perangkat lunak pada mesin fisik atau organisasi
komponen perangkat lunak dan interaksinya dengan struktur lain dalam suatu
sistem.
·
Arsitektur Sistem: Arsitektur
sistem berpusat pada keseluruhan sistem dan pengaturan komponen dalam sistem
terdistribusi di beberapa mesin.
Arsitektur Perangkat Lunak:
·
Arsitektur Berlapis: Komponen
disusun dalam bentuk berlapis. Arsitektur ini menggunakan pendekatan modular,
di mana lapisan komponen dipisahkan satu sama lain. Lapisan di bagian bawah
menyediakan layanan ke bagian atas. Permintaan mengalir dari atas ke bawah,
sedangkan respons mengalir dari bawah ke atas.
·
Arsitektur Berbasis Objek:
Arsitektur ini didasarkan pada susunan objek yang saling terhubung secara
longgar. Objek tersebut sesuai dengan komponen yang ditetapkan dan dihubungkan
melalui RPC (Remote Procedure Call) atau RMI (Remote Method Invocation), yang
memungkinkan sistem terdistribusi untuk berkomunikasi dan memanggil fungsi di
berbagai mesin.
·
Arsitektur Berbasis
Peristiwa: Arsitektur berbasis peristiwa didasarkan pada peristiwa. Saat
peristiwa terjadi, sistem akan diberi tahu. Komponen-komponennya saling
terhubung secara longgar, sehingga mudah untuk menambahkan, menghapus, dan
memodifikasi komponen dalam sistem.
·
Arsitektur yang berpusat
pada data: Arsitektur yang berpusat pada data didasarkan pada pusat data,
yang merupakan gagasan bahwa proses berkomunikasi melalui repositori umum.
Misalnya sistem basis data
·
Arsitektur Hibrida: Arsitektur
ini didasarkan pada sistem server edge yang diterapkan di internet, di mana
server ditempatkan "di edge" jaringan. Server edge menyajikan konten;
server asal tempat semua konten berasal.
Arsitektur Sistem
Arsitektur
sistem dapat berupa sistem terpusat, terdesentralisasi, atau hibrida. Sistem
terpusat hanyalah struktur klien-server tradisional; sistem terdesentralisasi
adalah sistem peer-to-peer, dan hibrida adalah gabungan antara sistem terpusat
dan terdesentralisasi, yaitu sistem klien-server dan peer-to-peer.
·
Klien-Server: Arsitektur
ini terdiri dari klien dan server. Klien dapat berupa telepon, dan server dapat
berupa pusat data . Jika klien ingin menampilkan halaman web,
klien akan mengajukan permintaan, yang dikirim melalui jaringan yang ditujukan
ke server. Permintaan tersebut berisi jalur URL yang ingin ditampilkan klien,
dan server akan merespons dengan konten halaman web. Hubungan klien-server
biasanya melibatkan satu server; namun, hubungan ini melibatkan penggunaan
beberapa server. Misalnya, peramban web, email, dll.
·
Peer-to-Peer: Arsitektur
P2P dirancang agar para rekan berbagi sumber daya atau layanan secara
bersama-sama tanpa server pusat. Setiap node dalam jaringan bertindak sebagai
klien dan server. Misalnya Skype, Google Docs, dll.
·
Hibrida: Menggabungkan
model klien-server dan peer-to-peer untuk mengoptimalkan kinerja yang dapat
mencakup kecepatan pemrosesan. Misalnya kombinasi basis data lokal untuk menyimpan
data sensitif dan penyimpanan berbasis cloud untuk menyimpan data yang kurang
sensitif.