Sistem Terdistribusi 2018

Matakuliah         : TIK-604 Sistem Terdistribusi

SKS                         : 3

Prasyarat             : TIK-401 Jaringan Komputer

Jadwal                  : Senin dan Selasa, 09.15 – 11.45

Bimbingan          : Diluar jam kuliah, Senin s.d Kamis

Webpage            : Husni.trunojoyo.ac.id

Deskripsi

TIK-604 adalah kuliah pengantar dalam sistem terdistribusi. Penekanannya adalah pada teknik untuk menciptakan sistem terdistribusi yang fungsional, bermanfaat, dan berkinerja tinggi. Untuk membuat persoalan lebih konkrit, kelas mencakup beberapa proyek multi-minggu yang membutuhkan rancangan dan implementasi yang signifikan.

Tujuan dari kuliah ini ada dua: Pertama, mahasiswa akan mendapatkan pemahaman tentang prinsip dan paradigma yang mendasari sistem terdistribusi, seperti komunikasi antar jaringan, konkurensi, sinkronisasi, konsistensi dan toleransi kesalahan. Kedua, mahasiswa akan mendapatkan pengalaman praktis dalam merancang, mengimplementasikan, dan debugging sistem terdistribusi secara nyata.

Tujuan

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

Kuliah ini memiliki tiga tujuan utama:

  • Untuk mempelajari prinsip, arsitektur, algoritma dan model pemrograman yang digunakan dalam membangun sistem terdistribusi.
  • Untuk memeriksa sistem terdistribusi mutakhir, seperti Google File System.
  • Merancang, menerapkan dan debug sistem terdistribusi secara nyata.

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

Buku Teks utama untuk kuliah ini adalah

  1. Andrew S. Tannenbaum dan Maarten Van Steen (2007) Distributed Systems: Principles and Paradigms, 2nd Edition, Pearson Education. Khusus kuliah ini lebih baik menggunakan Buku edisi ke-3 (terbitan Maret 2017) yang tersedia gratis dan sudah diupload ke situs web kuliah.
  2. George Coulouris, Jean Dollimore, Tim Kindberg, dan Gordon Blair (2012) Distributed Systems: Concepts and Design, 5th  Edition, Addison Wesley.

Sebagai alternative, kami menganjurkan anda (mahasiswa) untuk setidaknya membaca dua buku pertama di bawah ini:

  1. Ludwik Czaja (2018) Introduction to Distributed Computer Systems Principles and Features, Springer International Publishing AG
  2. Raja Malleswara dan Rao Pattamsetti (2017) Distributed Computing in Java 9, Packt Publishing
  3. Jan Graba (2013) An Introduction to Network Programming with Java, Java 7 Compatible, 3rd Edition, Springer-Verlag London
  4. Faruque Sarker dan Sam Washington (2015) Learning Python Network Programming, Packt Publishing
  5. Jobinesh Purushothaman (2015) RESTful Java Web Services, 2nd Edition, Packt Publishing

Penilaian

Tipe # Bobot
Proyek (kelompok) 1 40%
Ujian *UTS, UAS) 2 40%
Tugas Personal 2 20%
Kuis 2 10%
Kehadiran dan Partisipasi di Kelas/Bimbingan/Tutorial 14 0

Jadwal Kuliah

Pekan Tanggal Topik Bentuk Keterangan
1. 26/27-Feb. Pengantar Kuliah
 2. 5/6 Mar. Penjelasan Proyek

Prinsip Jaringan

Kuliah
Proposal Proyek dimulai Tertulis, 1-2 hal.
3. 12/13 Mar. Prinsip Jaringan, lanjutan

Remote Procedure Calls

Kuliah
IP Address Subnet, How router works Mulai Tugas 1
4. 19/20 Mar. Remote Procedure Calls, lanjutan

Pemrograman RMI Java

Arsitektur

Kuliah Deadline Tugas 1
19/20 Mar Proposal Proyek Pengumpulan Deadline
 5. 26/27 Mar. Arsitektur, lanjutan Kuliah
26/27 Mar Proposal Proyek Presentasi Maks. 15 menit
6. 02/03 Apr. Pemrograman Multithread, Socket Kuliah
7. 09/10 Apr. Penamaan Kuliah
8. 16/17 Apr. Ujian Tengah Semester (UTS) Ujian  Open Book
9. 23/24 Apr. Kemajuan proyek I Demo 10 menit
10. 30 Apr.

01 Mei

Sinkronisasi Kuliah
11. 07/08 Mei Web Service Kuliah
Contoh Web Service: REST API

Tutorial di Lab tentang REST API

Mulai Tugas 2
12. 14/15 Mei Framework Terdistribusi Kuliah
13. 21/22 Mei Caching Kuliah Deadline Tugas 2
14. 28/29 Mei Replikasi Kuliah
30 Mei Kemajuan proyek II Demo 10 menit
15. 04/05 Jun Toleransi Kegagalan Kuliah
 16. 11/12 Jun Web Service, lanjutan Kuliah Harus dipindah ke awal Mei
12 Jun Deadline Pengumpulan Hasil Proyek 23:59:59
17. 25/26 Jun  Ujian Akhir Semester (UAS) Ujian Open Book
28 Jun Deadline Laporan Proyek Presentasi 15 menit

Proyek:

Proyek akan dihitung total 40% dari nilai akhir Anda. Akan ada 1 proyek sepanjang kuliah ini tetapi outputnya ada dua, yaitu aplikasi dan tutorial pembuatan aplikasi tersebut. Proyek tersebut dikerjakan secara kelompok yang terdiri 6 sampai dengan 7 mahasiswa. Setiap kelompok harus membuat aplikasi terdistribusi sederhana dan tidak ada tim yang dapat mengerjakan proyek yang sama.

Proyek pertama dapat dimulai dengan pembuatan aplikasi jaringan berbagai Socket TCP, kemudian dilanjutkan dengan penerapan teknologi multithread programming agar Socket server dapat menangani beberapa client pada waktu bersamaan.  Aplikasi server dan client ditingkatkan terus sehingga secara keseluruhan sistem terdiri dari lebih 2 server dan 2 client. Pastikan setiap transaksi disimpan ke dalam database di server atau mungkin pula di client. Karena terdapat beberapa server, pastikan data di setiap server adalah sama (replikasi, sinkronisasi dan konsisten). Pastikan aplikasi di setiap client atau server juga sama (update), meskipun perubahan dilakukan hanya pada salah satu node yang terlibat di dalam sistem. Replikasi aplikasi dan data misalnya dapat menggunakan GlusterFS, Master-to-Master Replication pada MySQL Server, atau Galera MySQL Cluster untuk membangun sistem replikadi database yang lebih baik. Bagaimana jika salah satu server mati, aapakah layanan dari server tetap dapat berjalan? Bagaimana saat server yang mati hidup kembali, apakah data dan aplikasi di server tersebut akan terupdate otomatis? Bagaimana dengan web service, perubahan apa yang dapat dilakukan di sistem yang kelompok anda bangun? Jangan lupa, tulis setiap perkembangan dan perubahan pada lembar dokumentasi agar tutorial yang anda hasilkan bersifat orisinil, experience based, jujur dan dapat dipertanggungjawabkan.

Anda dianjurkan untuk menyerahkan proyek tepat waktu. Deadline pengumpulan semua hasil proyek (Aplikasi dan tutorialnya) adalah 12 Juni 2018 jam 23:59. Presentasi dari proyek tersebut dapat dilakukan setelahnya dan tidak lebih dari jadwal UAS. Keterlambatan pengumpulan hasil proyek akan dikenakan pengurangan nilai. Keterlambatan sehari mendapatkan diskon nilai proyek 25%, keterlambatan 2 hari mendapatkan potongan nilai 50%. Keterlambatan lebih dari 2 hari, maka kelompok anda dianggap tidak mengerjakan proyek, nilai 0.

Ingat, nilai proyek adalah 40% dari total nilai akhir anda!

——————————————————————————————————————————

Sistem Terdistribusi 2017 (Semeter Genap 2016/2017)

Pekan ke-

Tanggal

Topik

Metode Pengajaran

Bacaan Latihan Praktik

Penugasan

1. 01, 02, 07 Maret Pengantar Perkuliahan Kuliah Subneting & Contohnya

Cara Kerja Perangkat Jaringan

SQLite

JavaFX, JavaFX+DB

Mulai Proyek 1

 

2. 08, 09, 14 Maret Tren dan Tantangan Kuliah Tugas 1: Kuis

(prinsip Jaringan)

3.  15, 16, 21 Maret Proyek 1

 

Model-model Arsitektural

Presentasi Mahasiswa

 

Kuliah

 MySQL

ini juga bagus

Deadline Proyek 1

Mulai Proyek 2 (Sinkronisasi Data)

4.  22, 23, 28 Maret

Jaringan

Kuliah Multithread Programming

(Pemrograman Konkuren Java)

Mulai Tugas 2

(Multithread & Socket)

5., 6.  04, 05, 06 April

11, 12, 13 April

Proyek 2

Komunikasi

Socket Client

Socket Server

Presentasi Mahasiswa

Kuliah

Pemrograman Client-Server dengan Socket:Server, Client  Deadline Proyek 2

Mulai Proyek 3 (Socket)

7.  18, 19, 20 April  

Penamaan

 

Kuliah

LDAP

 

DNS Server

Deadline Tugas 2

Mulai Tugas 3 (LDAP & DNS)

8., 9.  25, 26, 27 April Proyek 3

Web Services: SOA & REST

Presentasi Mahasiswa

(semua kelompok)

Kuliah

Pembuatan RESTful API dengan Java & PHP Deadline Proyek 3

Mulai Proyek 4

—————————————————————————————————————-

Sistem Terdistribusi 2015 (Semester Gasal 2015/2016)

– Pertemuan ke-1: Pengantar Perkuliahan, Sistem Terdistribusi dan Trend saat ini
– Pertemuan ke-2: Mengenal Konsep Sistem Terdistribusi
– Pertemuan ke-3: Arsitektur
– Pertemuan ke-4: Penanganan Proses
– Pertemuan ke-5: Komunikasi
– Pertemuan ke-6: Pemrograman Concurrent (Multithread) dengan Java

– Pertemuan ke-7: Presentasi Proyek tahap I: Web Crawler

—————————————————————————————————————-
UJIAN TENGAH SEMESTER (UTS)

File PDF dari soal UTS Sistem Terdistribusi
—————————————————————————————————————-

– Pertemuan ke-8: Pemrograman Jaringan dengan Java: Clients
– Pertemuan ke-9: Pemrograman Jaringan dengan Java: Servers

– Pertemuan ke-10: Infrastruktur Komputasi Berkinerja Tinggi (Mengenal HPC)
Topik yang direncanakan (awalnya): Penamaan (Praktek Mandiri: Membangun DNS Server di Linux) di alihkan ke dalam bentuk Praktik.

– Pertemuan ke-11: Mengenal Pemrograman Paralel (OpenMP: Multi-Processors, MPI: Message Passing Interface)

—————————————————————————————————————-

  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: