- Distribusi data
- Karakteristik sistem terdistribusi
- Kesesuaian
- Toleransi kesalahan
- Middleware dan API
- Arsitektur
- Arsitektur klien-server
- Arsitektur peer-to-peer
- Arsitektur multi-level
- Arsitektur grup prosesor
- Jenis sistem terdistribusi
- Komputasi cluster
- Komputasi jaringan
- Komputasi awan
- tujuan
- Bagikan sumber daya
- Abstraksi
- Pembukaan
- Interoperabilitas dan portabilitas
- Skalabilitas
- Aplikasi
- Mesin virtual Erlang
- Bittorrent
- Keuntungan
- Kekurangan
- Contoh sistem terdistribusi
- StackPath
- Internet
- Referensi
Sistem terdistribusi adalah perangkat lunak yang digunakan untuk mengoordinasikan tindakan banyak komputer. Koordinasi ini dicapai melalui pertukaran pesan, yaitu dengan potongan data yang mengirimkan informasi.
Sistem terdistribusi memerlukan komponen bersamaan, jaringan komunikasi, dan mekanisme sinkronisasi. Mereka mengizinkan berbagi sumber daya, termasuk perangkat lunak, oleh sistem yang terhubung ke jaringan. Oleh karena itu, sistem ini didasarkan pada jaringan yang menghubungkan komputer dan menangani perutean pesan.
a dan b (sistem terdistribusi). b (sistem paralel). Miym / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)
Komputasi terdistribusi adalah area komputasi yang bertanggung jawab untuk menganalisis sistem terdistribusi. Program komputer yang berjalan pada sistem terdistribusi disebut program terdistribusi.
Dalam konteks di mana mungkin ada ratusan atau ribuan komputer, yang merupakan proporsi umum di perusahaan Internet besar, sangat umum bahwa ada kegagalan komponen, baik itu perangkat keras, jaringan, disk, dll., Dan sistem harus siap menghadapi mereka setiap saat.
Distribusi data
Distribusi adalah kunci untuk dapat menangani konglomerat data yang sangat besar. Diperlukan untuk mencapai skalabilitas, yang merupakan cara untuk mempertahankan kinerja yang stabil saat kumpulan data berkembang dengan menambahkan sumber daya baru ke sistem.
Di sisi lain, distribusi menghadirkan serangkaian masalah teknis yang membuat perancangan dan implementasi komputasi dan penyimpanan terdistribusi menjadi penting untuk dipertimbangkan. Satu hal yang perlu diperhatikan adalah risiko kemungkinan kegagalan.
Karakteristik sistem terdistribusi
a dan b (sistem terdistribusi). b (sistem paralel). Miym / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)
Kesesuaian
Perangkat dapat bekerja dengan sistem operasi yang berbeda. Ini tidak mencegah mereka untuk selalu menawarkan layanan yang sama kepada pengguna. Karena alasan ini, semua perangkat yang terhubung kompatibel satu sama lain.
Masalah mendasar lainnya adalah desain perangkat lunak, karena juga kompatibel dengan semua sistem dan pengguna yang ada di setiap komputer.
Toleransi kesalahan
Menjadi satu jaringan dengan banyak komputer, jika salah satu komponennya gagal, yang lain dapat terus menjalankan fungsinya secara penuh, menghindari kesalahan dengan cepat.
Untuk alasan ini, sistem terdistribusi cenderung memberikan banyak kepercayaan diri saat bekerja dengannya, karena sangat jarang sistem gagal sepenuhnya, karena tugas tidak berada di satu perangkat, tetapi di komputer yang berbeda.
Middleware dan API
Prosesor yang berbeda menggunakan middleware distribusi, membantu berbagi sumber daya dan kemampuan yang berbeda untuk menyediakan pengguna dengan jaringan yang koheren dan terintegrasi. Ini juga menyediakan aplikasi dengan sejumlah layanan, seperti keamanan dan pemulihan kerusakan.
Saat ini, Anda mendengar lebih banyak tentang antarmuka pemrograman aplikasi (API), yang berfungsi sebagai gateway tempat aplikasi dapat berkomunikasi. Aplikasi tidak perlu tahu apa-apa tentang aplikasi lain kecuali API-nya.
Arsitektur
Arsitektur klien-server
Komputer tertentu yang disebut server dapat melakukan tugas tertentu, yang disebut layanan. Misalnya, melayani file melalui jaringan, kemampuan untuk menjalankan perintah tertentu, atau merutekan data ke printer. Klien adalah komputer yang meminta layanan.
Komputer yang dikenal terutama untuk layanan yang disediakannya dapat disebut server cetak, server file, dan seterusnya.
Arsitektur peer-to-peer
Ini mengasumsikan bahwa setiap komputer memiliki kemampuan yang serupa dan bahwa tidak ada mesin yang didedikasikan untuk melayani yang lain. Contohnya adalah seperangkat mikrokomputer di kantor kecil.
Jaringan memungkinkan orang untuk mengakses file satu sama lain dan mengirim email, tetapi tidak ada komputer yang menyediakan layanan tertentu.
Arsitektur multi-level
Untuk layanan tertentu, mungkin masuk akal untuk memiliki konektivitas hierarkis. Sebagai contoh:
- Sebuah server saat melakukan tugasnya dapat menghubungi server lain dari jenis yang berbeda
- Arsitektur klien-server adalah arsitektur dua tingkat.
Arsitektur grup prosesor
Sistem operasi dapat secara otomatis memulai proses pada komputer yang tidak digunakan dan bahkan memigrasi proses ke sistem dengan jumlah siklus CPU yang tersedia lebih tinggi. Dalam kasus lain, pengguna dapat memulai atau memindahkan proses secara manual pada sistem yang tersedia.
Jenis sistem terdistribusi
Komputasi cluster
Ini adalah kumpulan komputer serupa yang terhubung melalui jaringan area lokal berkecepatan tinggi. Ini sering digunakan untuk pemrograman paralel, di mana satu program intensif komputasi berjalan secara paralel di banyak komputer.
Setiap cluster terdiri dari sekumpulan node komputasi yang dipantau dan dikelola oleh satu atau lebih node yang disebut master.
Komputasi jaringan
Itu terdiri dari node dengan perbedaan yang mencolok dalam perangkat keras dan teknologi jaringan. Tren saat ini untuk memiliki konfigurasi node tertentu untuk tugas tertentu telah menyebabkan keragaman yang lebih besar, yang paling umum dalam komputasi jaringan.
Komputasi awan
Ini adalah sekumpulan sumber daya virtual yang bertempat di pusat data penyedia cloud. Pelanggan dapat membangun infrastruktur virtual untuk memanfaatkan berbagai layanan cloud.
Bagi pengguna, tampaknya dia menyewa komputer eksklusif miliknya sendiri. Namun, sebenarnya Anda mungkin membagikannya dengan pelanggan lain. Hal yang sama berlaku untuk penyimpanan virtual.
Sumber daya virtual ini dapat dikonfigurasi secara dinamis, sehingga memungkinkan skalabilitas. Jika lebih banyak sumber daya komputasi diperlukan, sistem dapat membeli lebih banyak.
tujuan
Bagikan sumber daya
Baik itu fasilitas penyimpanan, file data, layanan atau jaringan, Anda mungkin ingin berbagi sumber daya ini antar aplikasi, demi ekonomi.
Jauh lebih murah untuk memiliki fasilitas penyimpanan bersama antara beberapa aplikasi daripada harus membeli dan memelihara penyimpanan untuk masing-masing aplikasi secara terpisah.
Abstraksi
Untuk menyembunyikan bahwa proses dan sumber daya didistribusikan di beberapa komputer, kemungkinan tersebar secara geografis. Artinya, proses dan sumber daya disarikan dari pengguna.
Pembukaan
Ini pada dasarnya menunjukkan bahwa sistem terdistribusi dibangun dengan elemen-elemen yang dapat dengan mudah diintegrasikan dengan sistem lain. Sesuai dengan aturan standar, proses apa pun dengan antarmuka tersebut dapat berkomunikasi dengan proses lain dengan antarmuka yang sama.
Interoperabilitas dan portabilitas
Ini mengacu pada kapan dua sistem dari pabrikan yang berbeda dapat bekerja sama. Portabilitas menentukan sejauh mana aplikasi yang dibuat untuk sistem A dapat berfungsi pada sistem B tanpa modifikasi.
Skalabilitas
Hal ini diperlukan bila ada peningkatan pengguna yang membutuhkan lebih banyak sumber daya. Contoh yang bagus adalah peningkatan penonton Netflix setiap Jumat malam.
Ini berarti menambahkan lebih banyak sumber daya secara dinamis, seperti meningkatkan kapasitas jaringan dengan memungkinkan lebih banyak transmisi video dan menguranginya setelah konsumsi dinormalisasi.
Aplikasi
Mesin virtual Erlang
Paket perangkat lunak LYME didasarkan pada Erlang dan menawarkan alternatif untuk LAMP. Shmuel Csaba Otto Traian / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)
Erlang adalah bahasa fungsional yang memiliki semantik bagus untuk konkurensi, distribusi, dan toleransi kesalahan. Mesin virtual Erlang menangani distribusi aplikasi Erlang.
Model ini bekerja dengan memiliki banyak proses yang terisolasi, semuanya dengan kemampuan untuk berkomunikasi satu sama lain melalui sistem pesan bawaan.
Mesin virtual Erlang dapat terhubung ke mesin virtual lain yang berada di tempat berbeda. Kawanan mesin virtual ini menjalankan satu aplikasi, menangani kegagalan satu mesin dengan menjadwalkannya untuk berjalan di node lain.
Bittorrent
Operasi jaringan BitTorrent. Mrjavi / CC BY-SA (https://creativecommons.org/licenses/by-sa/4.0)
Ini adalah salah satu protokol yang paling banyak digunakan untuk mentransfer file besar di web. Ide utamanya adalah untuk memfasilitasi transfer file antara peer yang berbeda di jaringan tanpa harus melalui server utama.
Dengan menggunakan klien BitTorrent, Anda dapat terhubung ke banyak komputer di seluruh dunia untuk mengunduh file. Komputer yang bertindak sebagai koordinator membantu menunjukkan node di jaringan yang memiliki file yang diinginkan.
BitTorrent memungkinkan Anda untuk menghosting file secara sukarela dan mengunggahnya untuk pengguna lain yang menginginkannya. Ini sangat populer karena merupakan yang pertama dari jenisnya yang menawarkan insentif untuk berkontribusi ke jaringan.
Keuntungan
- Lebih banyak node dapat dengan mudah ditambahkan ke sistem terdistribusi, yang dapat diskalakan sesuai kebutuhan.
- Semua node dalam sistem terdistribusi terhubung satu sama lain. Oleh karena itu, setiap node dapat dengan mudah berbagi data dengan node lainnya.
- Sumber daya seperti printer dapat dibagikan dengan banyak node, bukan hanya dibatasi satu.
- Kegagalan satu node tidak menyebabkan kegagalan seluruh sistem terdistribusi. Node lainnya masih dapat berkomunikasi satu sama lain.
Kekurangan
- Beberapa pesan dan data mungkin hilang di jaringan saat berpindah dari satu node ke node lainnya.
- Sulit untuk memberikan keamanan yang memadai dalam sistem terdistribusi karena node dan koneksi harus diamankan.
- Kelebihan jaringan dapat terjadi jika semua node dalam sistem terdistribusi mencoba mengirim data pada saat yang bersamaan.
- Basis data yang terhubung ke sistem terdistribusi cukup rumit dan sulit untuk dikelola dibandingkan dengan sistem pengguna tunggal.
Contoh sistem terdistribusi
Sistem terdistribusi dapat digunakan dalam banyak kasus, seperti sistem perbankan elektronik, game online multipemain masif, dan jaringan sensor.
StackPath
Ini menggunakan sistem terdistribusi yang sangat besar untuk memberi daya pada layanan jaringan pengiriman kontennya. Setiap titik kehadiran (PoP) memiliki node, membentuk sistem terdistribusi di seluruh dunia.
StackPath menyimpan konten yang paling baru dan sering diminta di lokasi yang paling dekat dengan situs yang sedang digunakan.
Dengan menghubungkan komputer virtual, selain memanfaatkan kecepatan dan kelincahan komputasi canggih, sistem dapat menangani ribuan permintaan simultan dengan sangat cepat.
Internet
Ini adalah sistem terdistribusi terbesar di dunia. Setiap pengguna merasa seperti satu sistem, meskipun itu terdiri dari jutaan komputer.
Melalui konsep abstraksi, Anda tidak tahu di mana data disimpan, berapa banyak server yang terlibat, atau bagaimana informasi tersebut sampai ke browser. Browser membubarkan kerumitan Internet.
Ini juga berlaku untuk aplikasi seperti email Gmail atau aplikasi lain yang dapat digunakan. Setiap orang berinteraksi dengan aplikasi terdistribusi setiap hari.
Referensi
- Paul Krzyzanowski (2018). Sistem Terdistribusi. Diambil dari: cs.rutgers.edu.
- Catherine Paganini (2019). Primer: Sistem Terdistribusi dan Cloud Native Computing. Stack Baru. Diambil dari: thenewstack.io.
- Universitas Internasional Valencia (2020). Sistem terdistribusi, karakteristik dan klasifikasi. Diambil dari: universidadviu.com.
- David Meador (2018). Sistem Terdistribusi. Tutorial Point. Diambil dari: tutorialspoint.com.
- Robert Gibb (2019). Apa itu Sistem Terdistribusi? Diambil dari: blog.stackpath.com.
- Stanislav Kozlovski (2018). Pengantar Menyeluruh tentang Sistem Terdistribusi. Kamp Kode Gratis. Diambil dari: freecodecamp.org.