Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Programowanie reaktywne w języku Scala
Tok studiów:
2014/2015
Kod:
IIN-1-708-s
Wydział:
Informatyki, Elektroniki i Telekomunikacji
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Informatyka
Semestr:
7
Profil kształcenia:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma i tryb studiów:
Stacjonarne
Osoba odpowiedzialna:
dr hab. inż. Baliś Bartosz (balis@agh.edu.pl)
Osoby prowadzące:
dr hab. inż. Baliś Bartosz (balis@agh.edu.pl)
dr hab. inż. Malawski Maciej (malawski@agh.edu.pl)
dr inż. Rycerz Katarzyna (kzajac@agh.edu.pl)
Krótka charakterystyka modułu

Celem przedmiotu jest zdobycie wiedzy o systemach reaktywnych oraz umiejętności w zakresie ich projektowania i implementacji z wykorzystaniem środowiska Akka

Opis efektów kształcenia dla modułu zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Powiązania z EKK Sposób weryfikacji efektów kształcenia (forma zaliczeń)
Wiedza
M_W001 Ma wiedzę w zakresie podstawowych zasad reaktywnego paradygmatu budowy systemów rozproszonych IN1A_W04 Zaliczenie laboratorium
Umiejętności
M_U001 Potrafi zaprojektować, zaimplementować i testować system rozproszony w środowisku Akka. IN1A_U07 Zaliczenie laboratorium
M_U002 Potrafi korzystać z dokumentacji technicznych w celu realizacji zadań projektowych. IN1A_U02 Zaliczenie laboratorium
Kompetencje społeczne
M_K001 Potrafi zaplanować pracę wymagającą wieloetapowej implementacji złożonego systemu informatycznego w warunkach zmieniających się wymagań klienta. IN1A_K04 Zaliczenie laboratorium
Matryca efektów kształcenia w odniesieniu do form zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Forma zajęć
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Inne
E-learning
Wiedza
M_W001 Ma wiedzę w zakresie podstawowych zasad reaktywnego paradygmatu budowy systemów rozproszonych + - + - - - - - - - -
Umiejętności
M_U001 Potrafi zaprojektować, zaimplementować i testować system rozproszony w środowisku Akka. - - + - - - - - - - -
M_U002 Potrafi korzystać z dokumentacji technicznych w celu realizacji zadań projektowych. - - + - - - - - - - -
Kompetencje społeczne
M_K001 Potrafi zaplanować pracę wymagającą wieloetapowej implementacji złożonego systemu informatycznego w warunkach zmieniających się wymagań klienta. + - + - - - - - - - -
Treść modułu zajęć (program wykładów i pozostałych zajęć)
Wykład:

  1. Wprowadzenie

    • Systemy reaktywne: sterowane zdarzeniami, responsywne, skalowalne, odporne na awarie
    • Podstawy języka Scala

  2. Model aktorów w Scali – wprowadzenie

    • Podstawowe pojęcia

    • Toolkit Akka

  3. Projektowanie systemu aktorów

    • Komunikacja: typy wiadomości, wzorce komunikacji, routowanie wiadomości

    • Kompozycja aktorów

  4. Obsługa awarii w systemie reaktywnym

    • Obsługa awarii w modelu aktorów

    • Nadzór (supervision) i jego strategie

  5. Persystencja

    • Persystencja i odtwarzanie stanu

    • Model persystencji Event sourcing

    • Implementacja persystenych aktorów

  6. Wydajność i skalowalność

    • Programowanie rozproszone

    • Grupowanie aktorów w klastry

    • Równoważenie obciążenia

    • Tuning, wielowątkowość, konfiguracja dispatcherów

Ćwiczenia laboratoryjne:

  1. Wprowadzenie do programowania w Scali
  2. Projektowanie systemu aktorów
  3. Testowanie systemu aktorów
  4. Persystencja
  5. Obsługa awarii
  6. System rozproszony w modelu aktorów
  7. Skalowanie systemu aktorów

Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 75 godz
Punkty ECTS za moduł 3 ECTS
Udział w wykładach 14 godz
Udział w ćwiczeniach laboratoryjnych 14 godz
Przygotowanie do zajęć 21 godz
Przygotowanie sprawozdania, pracy pisemnej, prezentacji, itp. 26 godz
Pozostałe informacje
Sposób obliczania oceny końcowej:

Ocena końcowa jest wyznaczana głównie przez ocenę z ćwiczeń laboratoryjnych; w pewnym stopniu może też brać pod uwagę aktywność na wykładzie.

Wymagania wstępne i dodatkowe:

Programowanie współbieżne, podstawy programowania funkcyjnego.

Zalecana literatura i pomoce naukowe:
  1. The Reactive Manifesto, http://www.reactivemanifesto.org
  2. R. Kuhn, J. Allen, Reactive Design Patterns. Manning 2016.
  3. Vaughn Vernon, Reactive Messaging Patterns with the Actor Model, Addison-Wesley Professional, 2015.
  4. Reactive programming as an Emerging Trend, http://www.infoq.com/news/2013/08/reactive-programming-emerging
  5. Raymond Roestenburg, Rob Bakker, Akka in Action, Manning 2014.
Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:
  1. B. Balis, K. Borowski. “Using an Actor Framework for Scientific Computing: Opportunities and Challenges”. Computing and Informatics, 35(4):870-889, 2016.
  2. K. Rycerz, M. Bubak. “Managing Iterations Graphs in Multiscale Applications using Akka”, KUKDM 11-13 marca 2015, Zakopane. ACK Cyfronet AGH, 2015.
  3. K. Rycerz and M. Bubak. “Using Akka actors for Managing Iterations of Multiscale Applications”, In: Parallel Processing and Applied Mathematics, 11th International Conference, PPAM 2015; Lecture Notes in Computer Science, vol. 9573, pp. 332–341, Springer 2016.
Informacje dodatkowe:

Brak