Sistem Terdistribusi TIK-604 Husni.trunojoyo.ac.id/kuliah/sister
Pengantar Perkuliahan Pertemuan 01, 01 Maret 2017
Husni
[email protected]
About Me Husni Lab. Sister
Email:
[email protected] Web Site: Husni.trunojoyo.ac.id Bidang Kajian: High Performance Computing [Big] Data Science and Mining
Mengapa Sistem Terdistribusi dikaji? Application Domain Aplikasi Domain
Associated Aplikasi Networked Jaringan Berkaitan Application
Finance Finance and and commerce commerce
eCommerce e.g. Amazon and eBay, PayPal, online banking and trading
The Theinformation information society society
Web information and search engines, ebooks, Wikipedia; social networking: Facebook and MySpace.
Creative Creativeindustries industries and and entertainment entertainment
online gaming, music and film in the home, user-generated content, e.g. YouTube, Flickr
Healthcare Healthcare
health informatics, online patient records, monitoring patients
Education Education
e-learning, virtual learning environments; distance learning
Transport Transport and logistics logistics
GPS in route finding systems, map services: Google Maps, Google Earth
Science Science
The Grid as an enabling technology for collaboration between scientists
Environmental Environmental management management
sensor technology to monitor earthquakes, floods or tsunamis
Definisi Sistem Terdistribusi Sistem Terdistribusi adalah
Gabungan komputerkomputer independen yang tampak bagi penggunanya sebagai sistem tunggal yang koheren (Tanenbaum)
Sistem di mana komponen yang terletak di jaringan komputer berkomunikasi dan mengkoordinasikan tindakan mereka hanya dengan melewatkan pesan (Coulouris)
Mengapa Sistem Terdistribusi? • Data besar terus tumbuh: ▪ Pada pertengahan 2010, semesta informasi memuat 1.2 zettabytes ▪ Prediksi 2020 diprediksi hampir 44 kali lebih besar
• Aplikasi menjadi data-intensive dan compute-intensive.
Mengapa Sistem Terdistribusi? • Komputer pribadi mempunyai sumber daya terbatas dibandingkan skala masalah dan domain aplikasi saat ini: 1.
Caches dan Memory:
L1 Cache
L2 Cache
16KB- 64KB, 2-4 cycles
512KB- 8MB, 6-15 cycles
L3 Cache
Main Memory
4MB- 64MB, 30-50 cycles
1GB- 48GB, 300+ cycles
Mengapa Sistem Terdistribusi? • Komputer individu memiliki sumber daya terbatas dibandingkan dengan skala masalah & domain aplikasi sekarang : 2. Hard Disk Drive: ▪ ▪ ▪
Kapasitas terbatas Jumlah jalur terbatas Bandwidth juga terbatas
Mengapa Sistem Terdistribusi? • Komputer individu memiliki sumber daya terbatas dibandingkan dengan skala masalah & domain aplikasi sekarang: 3. Processor: ▪ Jumlah transistor yang dapat diintegrasikan pada satu kotak chip tumbuh mengikuti hukum Moore. ▪ Chip Multiprocessors (CMPs) telah tersedia. P
P
P
P
P
L1
L1
L1
L1
L1 Interconnect L2 L2 Cache Chip processor tunggal Suatu CMP
Mengapa Sistem Terdistribusi? 3. Processor (lanjutan): ▪ Sampai beberapa tahun yang lalu, kecepatan CPU tumbuh pada tingkat 55% per tahun, sedangkan kecepatan memori tumbuh pada tingkat hanya 7% [H & P]
P
P
P
P
P
L1
L1
L1
L1
L1 Interconnect L2
L2 Cache
Memory Memory
P
M
Kesenjangan kecepatan prosesor-Memory
Mengapa Sistem Terdistribusi? 3. Processor (lanjutan): ▪ Kalaupun suatu CMP berisi 100 atau 1000 core. Tantangan: Bagaimana menghantarkan data input ke core dengan cepat untuk segera diproses.
P
P
P
P
L1
L1
L1
L1
Interconnect Data Set 4 TB
L2 Cache
10000 detik (3 jam) untuk memuat data
Memory
4 Jalur IO 100MB/s
Mengapa Sistem Terdistribusi?
Dibagi-bagi
Data Set (data) 4 TB
P L1
100 mesin
P L1
L2
L2
Memory
Memory
Hanya 3 menit untuk memuat data
Persyaratan ▪ Tapi ini memerlukan hadirnya : ▪ Cara untuk mengekspresikan masalah sebagai proses paralel dan mengeksekusi mereka pada mesin yang berbeda (Programming Models and Concurrency) ▪ Cara bagi proses pada mesin yang berbeda untuk bertukar informasi (Communication) ▪ Cara bagi proses untuk bekerja sama, melakukan sinkronisasi satu sama lain dan menyepakati nilai-nilai bersama (Synchronization) ▪ Cara untuk meningkatkan keandalan (reliability) dan kinerja (Consistency and Replication)
Persyaratan ▪ Tapi ini mengharuskan adanya (lanjutan): ▪ Cara untuk pulih dari kegagalan parsial (Fault Tolerance) ▪ Cara untuk mengamankan komunikasi dan memastikan bahwa suatu proses hanya mendapat akses sesuai haknya (Security) ▪ Cara untuk memperluas antarmuka sehingga dapat meniru perilaku sistem lain, mengurangi keragaman platform, dan menyediakan portabilitas dan fleksibilitas tingkat tinggi (Virtualization)
Kuliah Tentang Sistem Terdistribusi & Paralel • Pertimbangan: perspektif cukup kritis dan komprehensif. • Bijaksana: Perspektif lancar, fleksibel dan efisien. • Ahli: perspektif kuat dan memberikan gambaran jelas.
.0. Introduction .1. Processes and Communications .2. Naming .3. Synchronization .4. Consistency and Replication .5. Fault Tolerance .6. Programming Models .7. Distributed File Systems .8. Security .9. Virtualization
Capaian Pembelajaran Learning Outcome
Pengantar
Proses dan Komunikasi
• LO0: Menguraikan karakteristik sistem terdistribusi dan tantangan yang harus diatasi dalam desainnya • LO1: Menjelaskan dan membedakan mekanisme komunikasi antar-proses dan antar-sistem
Penamaan
• LO2 Mengidentifikasi mengapa entitas dan sumber daya di sistem terdistribusi harus dinamai, dan memeriksa konvensi penamaan dan mekanisme penamaan resolusi
Sinkronisasi
• LO3: Mendeskripsikan dan menganalisis bagaimana banyak mesin dan layanan harus bekerja sama dan melakukan sinkronisasi untuk memecahkan masalah dengan benar.
Capaian Pembelajaran Konsistensi dan Replikasi
Toleransi Gagal
Model Pemrograman
Sistem File Terdistribusi
• LO4 Identifikasi bagaimana replikasi dari sumber daya meningkatkan kinerja dalam sistem terdistribusi, dan menjelaskan algoritma untuk menjaga konsistensi salinan dari replika
• LO5: Jelaskan bagaimana sistem terdistribusi dapat dibuat fault tolerant • LO6: Menjelaskan dan menerapkan model pemrograman sharedmemory, message passing, MapReduce, Pregel dan GraphLab dan menggambarkan perbedaan penting antara mereka • LO7: Menjelaskan sistem file terdistribusi sebagai paradigma untuk sistem terdistribusi bertujuan-umum, menganalisis berbagai aspek dan arsitekturnya, dan membedakannya dengan file sistem paralel
Capaian Pembelajaran
Keamanan
Virtualisasi
• LO8: Menjelaskan berbagai konsep dan mekanisme yang umumnya tergabung dalam sistem terdistribusi untuk mendukung keamanan
• LO9: Menjelaskan sumber daya virtualisasi, bagaimana itu berlaku pada sistem terdistribusi, dan bagaimana hal itu memungkinkan manajemen dan penjadwalan sumber daya terdistribusi.
Tujuan Kuliah Memberikan pemahaman dan keterampilan yang memadai
Prinsip yang mendasari sistem terdistribusi
Prinsip untuk mengoptimalkan sistem terdistribusi
Model pemrograman & analisa sistem terdistribusi
Bagaimana system terdistribusi memenuhi kebutuhan aplikasi terdistribusi kontemporer
Tim Ajar Asistent: Belum ada
Dosen: Husni
Husni
Jam Kantor
• Selasa, Rabu dan Kamis, sebelum Zhuhur • Silakan masuk saat pintu ruangan terbuka • Boleh dengan perjanjian sebelumnya Asisten
Jam Kantor
• Masih diusahakan...
Tim Ajar
SisTer
Metode Pengajaran Kuliah (12) • Memotivasi belajar • Menyediakan kerangka kerja (framework) atau peta jalan (road map) untuk mengorganisasi informasi dari kuliah ini • Menjelaskan pelajaran dan memperkuat ide-ide besar kritis
Praktik Mandiri (4) • Mempersilakan mahasiswa mengungkapkan apa yang belum dipahami sehingga dapat dibantu oleh tim pengajaran • Memungkinkan mahasiswa melatih keterampilan yang dibutuhkan untuk menjadi ahli
Tugas & Proyek Tugas & Kuis • 6 kali tugas atau kuis untuk menyelesaikan suatu masalah (praktik) atau pemahaman terhadap suatu konsep (teori)
Proyek • 1 proyek besar yang dibagi menjadi 4 laporan kemajuan: • Laporan tertulis, dikirim ke email
[email protected]. Ingat deadline! • Presentasi Laporan, di kelas, sesuai jadwal.
Tugas 1 Bacalah buku atau tutorial jaringan komputer: Subnetting Cara kerja Switch Cara kerja Router Proses yang terjadi pada 7 layer model referensi OSI saat terjadi pengiriman data dari komputer A ke komputer B.
Waktu: 7 hari Pertemuan selanjutnya: kuis tentang netwoking.
Proyek 1: Aplikasi Database Desktop Buat kelompok beranggotakan 3 s.d 4 mahasiswa berjenis-kelamin sama Buat aplikasi pengolahan basis data sederhana (CRUD): GUI berbasis Java (JavaFX) Database SQLite Ada 2 kategori user: Admin dan User biasa (lebih dari 1 username)
Waktu 14 hari (21 Maret 2017 12.59.59) Hasil: Program siap demo, laporan, slide presentasi.
Proyek 1: CRUD Lokal, JavaFX
1
User
SQLite JDBC SQLite
Admin
Java 8
Aplikasi CRUD JavaFX
Port
Proyek 2: Sinkronisasi Database
2
MySQL Server
Port
JDBC SQLite
Port
Sinkronisasi Database
Java 8 Apli kasi
JavaFX
Java 8 Apli kasi JavaFX
SQLite
JDBC SQLite
SQLite
Port
Proyek 3: Sinkronisasi via Socket Java 8
Socket Server
JDBC MySQL
3
MySQL Server Port
Port
JDBC SQLite
Port
Java 8 Port Socket Aplikasi JavaFX
Sinkronisasi Data via Socket
Java 8 Port Socket Aplikasi JavaFX
SQLite
JDBC SQLite
SQLite
Port
Proyek 4: Sinkronisasi Service
SQLite
JDBC SQLite
Port
Java 8 Aplikasi (Pelanggan WS) JavaFX
JDBC MySQL
Web Service (Provider) Port
MySQL Server
Sinkronisasi Data via Web Service
Port
Java 8 Aplikasi (Pelanggan WS) JavaFX
SQLite
JDBC SQLite
4
Java 8
Port
Penilaian Proyek Untuk semua proyek kecuali proyek terakhir, berlaku aturan berikut:
Jika terlambat dikumpulkan (via email) sehari, maka nilai dikurangi 25% (pinalti) Jika terlambat 2 hari maka dikurangi 50% Proyek tidak dinilai (alias nol) jika terlambat lebih dua hari
Metode Penilaian
Bagaimana kinerja belajar diukur? Jenis Proyek (Kelompok)
# 4
Bobot 50%
Ujian (UTS & UAS)
2
Tugas & Kuis (Personal)
6
30% (15% UTS & 15% UAS) 30%
Kehadiran di kelas
18
<15 tidak UAS
Peserta dan Prasyarat
Peserta:
Mahasiswa senior
Mnimal semester 6.
Prasyarat:
TIK-444: Jaringan Komputer Mahasiswa harus memiliki pengetahuan dasar tentang sistem komputer dan jaringan komputer Pengetahuan dan kemampuan pemrograman berorientasi obyek dan aplikasi web sangat membantu.
Pert. 1.
Topik Pengantar perkuliahan
Penugasan Mulai Proyek 1
2.
Tren dan Tantangan
3. 4.
Proyek 1 Model Arsitektural Jaringan
5.
Komunikasi
Tugas 1: Kuis (prinsip Jaringan) Deadline Proyek 1 Mulai Proyek 2 (Sinkronisasi) Mulai Tugas 2 (Multithread & Socket programming) Tugas 3: Kuis (trend & arsitektur) Deadline Proyek 2 Mulai Proyek 3 (Socket) Deadline Tugas 2
6. 7.
8.
Proyek 2 Penamaan Web Services & Microservices Ujian Tengah Semester
9.
Proyek 3
10.
Sinkronisasi
Deadline Proyek 3 Mulai Proyek 4 Tugas 4: Kuis Mulai Tugas 5
11. Konsistensi & Replikasi 12 Model Pemrograman 13. Toleransi Kegagalan 14. Hosting Virtual Modern 15. 16. 17.
Proyek 4 Proyek 4
Deadline Tugas 5 Mulai Tugas 6 Deadline Tugas 6 Deadline Proyek 4
Ujian Akhir Semester
TextBook: Fokus pada Konsep Buku teks untuk kuliah ini adalah 1.
Andrew S. Tannenbaum and Maarten Van Steen, Distributed Systems: Principles and Paradigms, 3nd E, Free, 2017.
2.
George Coulouris, Jean Dollimore, Tim Kindberg, and Gordon Blair, Distributed Systems: Concepts and Design, 5th E, Addison Wesley, 2011
Buku-buku lain mendukung dari sisi terapan (slide berikutnya)
Java: Introduction
Java: Network Programming
Java: Web Services
Java: Microservices
Kuliah Berikutnya • Kita akan membahas tren di sistem terdistribusi dan tantangan yang dihadapi saat merancang sistem tersebut • Lakukan ini: • Baca C1 & T1 • Hadiri pertemuan berikutnya • Praktik Mandiri (coba dan diskusi Kelompok) • Pemrograman Berorientasi Obyek dengan Java
Pertanyaan?