Raspodijeljeni sustavi

Prikazani su podaci za akademsku godinu: 2023./2024.

Laboratorijske vježbe

Opis predmeta

Definicija i svojstva raspodijeljenih sustava. Arhitekture raspodijeljenih sustava, centralizirane i decentralizirane, kompromisi dizajniranja sustava. Procesi i komunikacija: klijent/poslužitelj, distribuirani objekti, RPC, komunikacija porukama, objavi-pretplati. Programska međuoprema za distribuirane sustave. Mikrousluge. Modeliranje raspodijeljenog sustava: sinkroni i asinkroni modeli. Sinkronizacija u distribuiranom okruženju. Konsenzus i koordinacija bez i uz prisutnost ispada. Komunikacija skupine procesa. Distribuirane transakcije. Replikacija i konzistentnost podataka. Računalstvo u oblaku i usluge u računalnom oblaku (IaaS, PaaS, SaaS). Prekrivajuće mreže: sustavi peer-to-peer, Blockchain i tehnologija distribuirane glavne knjige.

Studijski programi

Sveučilišni diplomski
Izborni predmeti (1. semestar) (3. semestar)
Izborni predmeti (1. semestar) (3. semestar)
Izborni predmeti (1. semestar) (3. semestar)
Izborni predmeti (1. semestar) (3. semestar)
Izborni predmeti (1. semestar) (3. semestar)
Izborni predmeti (1. semestar) (3. semestar)
Izborni predmeti (1. semestar) (3. semestar)
Izborni predmeti (1. semestar) (3. semestar)
Izborni predmeti (1. semestar) (3. semestar)
Izborni predmet profila (1. semestar) (3. semestar)
Izborni predmeti (1. semestar)
Izborni predmet profila (1. semestar)
Izborni predmeti (1. semestar) (3. semestar)
(1. semestar)
Izborni predmeti (1. semestar) (3. semestar)
[FER2-HR] Programsko inženjerstvo i informacijski sustavi - profil
Teorijski predmeti profila (1. semestar)
[FER2-HR] Računarska znanost - profil
Predmeti specijalizacije profila (1. semestar) (3. semestar)
[FER2-HR] Telekomunikacije i informatika - profil
Teorijski predmeti profila (1. semestar)

Ishodi učenja

  1. identificirati obilježja raspodijeljenih sustava
  2. objasniti modele raspodijeljene obrade i komunikacije
  3. dizajnirati i razviti složeni raspodijeljeni programski sustav
  4. analizirati raspodijeljene algoritme
  5. ocijeniti obilježja odabranog raspodijeljenog sustava
  6. usporediti centralizirana i decentralizirana raspodijeljena rješenja

Oblici nastave

Predavanja

Nastava na predmetu organizirana je u dva nastavna ciklusa. Prvi nastavni ciklus sastoji se od 7 tjedana nastave i međuispita dok drugi ciklus sadrži 6 tjedana nastave i završni ispit. Nastava se provodi kroz 15 tjedana s tjednim opterećenjem od 3 školska sata.

Samostalni zadaci

Studenti samostalno rješavaju odabrane praktične zadatke kao pripremu za laboratorijske vježbe.

Laboratorij

Laboratorijske vježbe su usmjerene na rješavanje praktičnih programskih zadataka koristeći aktualne tehnologije i alate (Spring, Docker, GRPC, Kafka). Razvoj decentraliziranih rješenja.

Način ocjenjivanja

Kontinuirana nastava Ispitni rok
Vrsta provjere Prag Udio u ocjeni Prag Udio u ocjeni
Laboratorijske vježbe 25 % 30 % 25 % 30 %
Sudjelovanje u nastavi 0 % 5 % 0 % 5 %
Međuispit: Pismeni 0 % 25 % 0 %
Završni ispit: Pismeni 0 % 30 %
Završni ispit: Usmeni 10 %
Ispit: Pismeni 0 % 55 %
Ispit: Usmeni 10 %

Tjedni plan nastave

  1. Raspodijeljene arhitekture sustava. Centralizirana i decentralizirana rješenja.
  2. Procesi i komunikacija u raspodijeljenim sustavima. Model klijent-poslužitelj: Socket API, RPC, RMI.
  3. Programski posrednički sloj za raspodijeljene sustave: komunikacija porukama, objavi-pretplati.
  4. Arhitekture web-aplikacija i tehnologije weba, REST, WebSocket.
  5. Mikroservisi i oblikovanje raspodijeljenih sustava.
  6. Formalni modeli raspodijeljenog sustava (sinkroni i asinkroni) i primjeri raspodijeljenih algoritama.
  7. Sinkronizacija procesa u vremenu: fizičko i logičko vrijeme
  8. Međuispit
  9. Replikacija i konzistentnost podataka.
  10. Replikacija i konzistentnost podataka.
  11. Otpornost na neispravnosti u raspodijeljenom okružju.
  12. Računarstvo u oblaku. Docker, Kubernetes.
  13. Sustavi s ravnopravnim sudionicima (engl. peer-to-peer, P2P).
  14. Blok-lanac i tehnologija raspodijeljene glavne knjige.
  15. Završni ispit

Literatura

Maarten van Steen, Andrew S. Tanenbaum (2017.), Distributed Systems, Createspace Independent Publishing Platform
George F. Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair (2011.), Distributed Systems, Addison-Wesley Longman
Ajay D. Kshemkalyani, Mukesh Singhal (2011.), Distributed Computing, Cambridge University Press

Za studente

Izvedba

ID 222664
  Zimski semestar
5 ECTS
R1 Engleski jezik
R1 E-učenje
45 Predavanja
0 Seminar
0 Auditorne vježbe
12 Laboratorijske vježbe
0 Konstrukcijske vježbe
0 Vježbe tjelesnog odgoja

Ocjenjivanje

85 izvrstan
75 vrlo dobar
65 dobar
55 dovoljan