Dapatkan pemberitahuan artikel terbaru saya dengan cara Berlangganan!

Sistem Terdistribusi

Materi pembelajaran mata kuliah sistem terdistribusi

Source:www.freepik.com


PENDAHULUAN

Sistem terdistribusi adalah sistem di mana komponen perangkat keras atau perangkat lunak yang terletak di komputer jaringan berkomunikasi dan mengoordinasikan tindakan mereka hanya dengan mengirimkan pesan. Definisi sederhana ini mencakup seluruh rentang sistem di mana komputer jaringan dapat digunakan dengan berguna.

TUJUAN

Sistem terdistribusi menggabungkan kekuatan komputasi beberapa komputer untuk memecahkan masalah yang kompleks. Komputer tunggal dalam sistem terdistribusi biasanya tersebar di wilayah geografis yang luas, dan memiliki arsitektur dan sistem operasi yang heterogen. Oleh karena itu, tantangan penting dalam sistem terdistribusi adalah merancang model sistem, algoritma dan protokol yang memungkinkan komputer mengkomunikasikan dan mengkoordinasikan tindakan mereka melalui komputer jaringan heterogen sehingga dapat memecahkan masalah berskala besar.

Tujuan kita dalam kuliah ini adalah mengenalkan Kita pada area sistem terdistribusi. Kita akan memeriksa dan menganalisis bagaimana satu set komputer berjejaring dapat membentuk sistem terdistribusi fungsional, berguna dan berkinerja tinggi.

Kuliah ini memiliki tiga tujuan, yaitu:

  • Mempelajari prinsip, arsitektur, algoritma dan model pemrograman yang digunakan dalam membangun sistem terdistribusi.
  • Memahami bagaimana sistem terdistribusi mutakhir bekerja, seperti Google File System.
  • Memberikan gagasan dan merancang suatu sistem terdistribusi skala kecil/menengah.

Melalui tujuan ini, tentu saja akan mengubah pemikiran komputasi Kita dari merancang aplikasi untuk satu komputer, untuk merancang aplikasi terdistribusi yang berjalan di komputer berjejaring.

CAPAIAN PEMBELAJARAN

Kuliah ini mencakup dua capaian hasil belajar utama:

  1. Kita akan memahami konsep inti dari sistem terdistribusi, yaitu bagaimana agar beberapa mesin dapat diatur dengan benar untuk memecahkan masalah yang kompleks secara efisien, Kital dan terukur (scalable).
  2. Kita akan menjelaskan bagaimana cara kerja dan kinerja dari sistem yang telah menerapkan konsep inti dari sistem terdistribusi, dan selanjutnya akan menerapkan konsep semacam itu dalam perancangan aplikasi terdistribusi (memberikan contoh).

Memahami Konsep Inti Sistem Terdistribusi

Kita akan mempelajari konsep inti yang menyusun sistem terdistribusi. Kita akan mengenali kendala sistem, trade-off dan teknik yang tepat untuk membangun sistem terdistribusi yang paling sesuai dengan kebutuhan komputasi kelas aplikasi yang berbeda. Secara khusus, Kita akan mempelajari konsep berikut:

  • Transparansi Akses & Lokasi
  • Paralelisasi Tugas
  • Toleransi kesalahan
  • Transparansi Akses & Lokasi

Mengekspos kemampuan mesin, namun menyembunyikan detailnya adalah salah satu langkah awal dalam merancang sistem terdistribusi. Sistem semacam itu menembus bisnis dan masyarakat yang secara transparan mempengaruhi kekuatan mereka. Misalnya, di Internet, yang merupakan sistem terdistribusi yang sukses, antarmuka web browser (peramban) yang sederhana akan memungkinkan Kita menjelajahi informasi yang tersebar di wilayah geografis yang luas. Dalam kuliah ini, Kita akan mengkaji bagaimana mengabstraksikan data dan lokasi mesin (yang mungkin berada pada tempat fisik yang berbeda) serta replikasi data dan mesin tersebut.

Secara khusus, Kita akan mempelajari topik berikut:

  • Proses dan Komunikasi: Kita akan menjelaskan dan membandingkan mekanisme komunikasi antara proses dan sistem yang berbeda.
  • Penamaan: Kita akan mengidentifikasi mengapa entitas dan sumber daya dalam sistem terdistribusi diberi nama, dan memeriksa konvensi penamaan serta beberapa mekanisme penyelesaian penamaan.

Paralelisasi Tugas

Algoritma tradisional yang bekerja pada prosesor tunggal sudah tidak efisien – atau bahkan gagal bekerja – dalam sistem di mana beberapa mesin bekerja secara paralel. Dalam sistem terdistribusi, masalah / pekerjaan dapat diselesaikan dengan menggunakan paralelisasi. Umumnya pekerjaan dibagi menjadi beberapa tugas, dan semua tugas dijalankan secara paralel pada mesin yang berbeda. Tugas dapat mengakses sumber daya umum, seperti data yang terdapat dalam file bersama. Akibatnya, dua tantangan utama muncul. Pertama, kita harus memastikan bahwa tugas yang berjalan bersamaan dikoordinasikan dan disinkronkan dengan cara yang benar untuk mencapai tujuan pekerjaan. Kedua, kita berpotensi mereplikasi (menggandakan) dan menempatkan sumber daya di banyak komputer dengan cara yang memungkinkan tugas-tugas mengaksesnya dengan lebih efektif.

Secara khusus, kita akan mempelajari topik berikut:

  • Concurrency and Synchronization: Kita akan mengidentifikasi masalah tentang bagaimana mengkoordinasikan dan menyinkronkan banyak tugas dalam sistem terdistribusi.
  • Caching, Replikasi dan Konsistensi: Kita akan mengerti bagaimana replikasi dan caching sumber daya dapat mengoptimalkan kinerja dan skalabilitas, serta menganalisis berbagai model yang memungkinkan konsistensi data yang direplikasi dan di-cache.

Toleransi Kegagalan (Fault-tolerance)

Dalam sistem terdistribusi, kegagalan satu atau sebagian komputer (atau yang dikenal sebagai kegagalan parsial) sangat mungkin terjadi. Jika kegagalan tersebut tidak dapat ditolerir, keseluruhan sistem mungkin akan terhenti atau mengakibatkan perilaku acak dan tidak dapat diprediksi. Kita akan belajar bagaimana menghindari dan pulih dari kegagalan parsial.

Referensi (Download)

Materi Pembelajaran 

Pertemuan 1 - Pengantar sistem terdistribusi (Download)
Pertemuan 2 - Jaringan dalam sistem terdistribusi (Download)
Pertemuan 3 - Pemrograman kokuren dengan tread JAVA (Praktik Individu) (Download)
Pertemuan 3 - Pemrograman socket dengan data JAVA Client (Praktik Individu) (Download) 
Pertemuan 3 - Pemrograman kokuren dengan JAVA Server (Praktik Individu) (Download
Pertemuan 3 - Remote procedure call (Download)
Pertemuan 3 - (Download pdf 1) - (Download pdf 2)
Pertemuan 4 - Arsitektur (Download)
Pertemuan 5 - Penamaan/Naming (Download)
Pertemuan 6 - Sinkronisasi (Download)
Pertemuan 7 - MPI (Message Passing Interface) (Download)
Pertemuan 9 - Caching (Download)
Pertemuan 10 - Replikasi (Download)
Pertemuan 11 - Toleransi kegagalan (Download)
Pertemuan 12 - Web service SOA dan REST (Download)
Pertemuan 13 - Membangun web service dengan PHP (Download)

Other

Download soal UTS: KLIK DISINI 
Download soal UAS: KLIK DISINI

Posting Komentar