GERİ DÖN

Ders Öğretim Planı


Dersin Kodu Dersin Adı Dersin Türü Yıl Yarıyıl AKTS
501008122025 DISTRIBUTED APPLICATION DEVELOPMENT Seçmeli Ders Grubu 4 8 5,00

Lisans


İngilizce


Öğrencilere ölçeklenebilir, hataya dayanıklı ve yüksek performanslı dağıtık ve eş zamanlı sistemlerin tasarlanması ve geliştirilebilmesi için gerekli teorik temellerin ve pratik becerilerin kazandırılması amaçlanmaktadır. Ayrıca öğrencilerin; Aktör Modeli (Akka), Olay Odaklı Mimariler (Kafka, RxJava) ve İletişim Kuran Sıralı İşlemler (Go'da CSP) olmak üzere üç önemli paradigmayı inceleyerek modern eş zamanlı ve dağıtık mimariler hakkında kapsamlı bir bilgi birikimi kazanması hedeflenmektedir.


Öğr. Gör. Dr. Burak YÖNYÜL


1 Eş zamanlı ve dağıtık hesaplama modellerinin anlaşılması ve kıyaslanması
2 Ölçeklenebilir ve hataya-duyarlı dağıtık sistemlerin tasarlanması ve gerçekleştirilmesi
3 Endüstriyel seviyede eş zamanlı ve olay-odaklı desenlerin dağıtık uygulamalarda kullanılması ve optimizasyonu
4 Geniş ölçekli hesaplamalar için pratik ve endüstri-hazır çözümler geliştirebilme

Birinci Öğretim


Yok


Yok


1. Aktör Modeli ve Mesaj Odaklı Eşzamanlılık • Eşzamanlılık ve Dağıtık Sistemlere Giriş • Aktör Modeli İlkeleri • Akka ile Aktörlerin Uygulanması • Dağıtık Aktör Tabanlı Sistemlerin Oluşturması 2. Olay Odaklı Mimariler ve Reaktif Programlama • Olay Odaklı Mimarilere Giriş • RxJava ile Reaktif Programlama • Kafka ve Olay Odaklı Mikroservisler • Gerçek Zamanlı Akış İşleme 3. İletişim Kuran Sıralı İşlemler (CSP) ve Go Eşzamanlılığı • CSP vs Aktör Modeli • Go'da Eşzamanlılık • Dağıtık Go Uygulamaları • Dağıtık Eşzamanlılıkta Gelecek Trendleri


Hafta Konular (Teorik) Öğretim Yöntem ve Teknikleri Ön Hazırlık
1 Eşzamanlı ve dağıtık programlamaya giriş Kaynak-1
2 Aktör model temelleri Kaynak-1
3 Aktörlerin Akka ile gerçekleştirimi Kaynak-1
4 Aktör tabanlı dağıtık uygulamaların ölçeklenmesi Kaynak-1
5 Aktör tabanlı olay akışı ve kalıcılık Kaynak-1
6 Olay tabanlı mimarilere giriş Kaynak-2
7 RxJava ile reaktif programlama Kaynak-2
8 Ara Sınav
9 Kafka’ya ve dağıtık mesajlaşmaya giriş Kaynak-3
10 Gelişmiş olay tabanlı desenler ve kullanım durumları Kaynak-3
11 CSP’yi ve Go’nun eşzamanlılık modelini anlama Kaynak-4
12 Go’da Goroutine’ler ve kanallar Kaynak-4
13 Go ile dağıtık uygulamaların geliştirimi Kaynak-4
14 Go ile dağıtık mesajlaşmanın entegrasyonu Kaynak-4
15 Dağıtık ve eşzamanlı sistemlerde gelecek trendleri Sunum ve tartışma
16 Final Sınavı

1. Sathyanarayanan, Prasanna Kumar, and Suraj Atreya. Reactive programming with Scala and Akka. Packt Publishing Ltd, 2016. 2. Nurkiewicz, Tomasz, and Ben Christensen. Reactive programming with RxJava: creating asynchronous, event-based applications. " O'Reilly Media, Inc.", 2016. 3. Narkhede, Neha, Gwen Shapira, and Todd Palino. Kafka: the definitive guide: real-time data and stream processing at scale. " O'Reilly Media, Inc.", 2017. 4. Cox-Buday, Katherine. Concurrency in Go: Tools and Techniques for Developers. " O'Reilly Media, Inc.", 2017.


- Yarıyıl (Yıl) Ara Sınavının Başarı Notuna Katkısı : %30 - Dönem Projesi : %30 - Yarıyıl (Yıl) Sonu Sınavının Başarı Notuna Katkısı : %40 TOPLAM : %100


Yarıyıl (Yıl) İçi Etkinlikleri Adet Değer
Ara Sınav 1 50
Proje Hazırlama 1 50
Toplam 100
Yarıyıl (Yıl) Sonu Etkinlikleri Adet Değer
Final Sınavı 1 100
Toplam 100
Yarıyıl (Yıl) İçi Etkinlikleri 60
Yarıyıl (Yıl) Sonu Etkinlikleri 40

Yok


Etkinlikler Sayısı Süresi (saat) Toplam İş Yükü (saat)
Ara Sınav 1 20 20
Final Sınavı 1 20 20
Derse Katılım 14 3 42
Proje Hazırlama 1 40 40
Okuma 14 2 28
Toplam İş Yükü (saat) 150

PÇ 1 PÇ 2 PÇ 3 PÇ 4 PÇ 5 PÇ 6 PÇ 7 PÇ 8 PÇ 9 PÇ 10 PÇ 11
ÖÇ 1 5 5 4
ÖÇ 2 5 5 3 5 3 3
ÖÇ 3 5 4 3 3 3 5 3 3
ÖÇ 4 5 3 4 4 3 5 3 3 3
* Katkı Düzeyi : 1 Çok düşük 2 Düşük 3 Orta 4 Yüksek 5 Çok yüksek