Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Systemy rozproszone
Tok studiów:
2019/2020
Kod:
IINF-1-784-n
Wydział:
Informatyki, Elektroniki i Telekomunikacji
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Informatyka
Semestr:
7
Profil:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma studiów:
Niestacjonarne
Strona www:
 
Prowadzący moduł:
dr inż. Funika Włodzimierz (funika@agh.edu.pl)
Treści programowe zapewniające uzyskanie efektów uczenia się dla modułu zajęć

Opis efektów uczenia się dla modułu zajęć
Kod MEU Student, który zaliczył moduł zajęć zna i rozumie/potrafi/jest gotów do Powiązania z KEU Sposób weryfikacji i oceny efektów uczenia się osiągniętych przez studenta w ramach poszczególnych form zajęć i dla całego modułu zajęć
Wiedza: zna i rozumie
M_W001 Posiada szczegółową wiedzę w zakresie budowy i implementacji systemów działających w rozproszonym środowisku sieciowym. INF1A_W04, INF1A_W03 Egzamin
M_W002 Ma elementarną wiedzę na temat cyklu życia systemów komputerowych INF1A_W03, INF1A_W06 Egzamin
M_W003 Orientuje się w obecnym stanie oraz najnowszych trendach rozwojowych informatyki INF1A_W02 Egzamin
Umiejętności: potrafi
M_U001 Potrafi tworzyć efektywne aplikacje pracujące w rozproszonych systemach komputerowych INF1A_U06, INF1A_U05, INF1A_U03, INF1A_U08, INF1A_U07 Wykonanie projektu
M_U002 Potrafi projektować i implementować oprogramowanie INF1A_U06, INF1A_U05, INF1A_U03, INF1A_U08, INF1A_U07 Wykonanie projektu
M_U003 Potrafi oceniać istniejące oprogramowanie, wskazać moźliwości jego poprawy i ulepszenia INF1A_U06, INF1A_U08, INF1A_U07 Wykonanie projektu
Kompetencje społeczne: jest gotów do
M_K001 Potrafi odpowiednio określić prioryttey służące realizacji określonego przez siebie lub innych zadania oraz adekwatnie zaplanowaź pracę. INF1A_K04, INF1A_K03 Wykonanie projektu
Liczba godzin zajęć w ramach poszczególnych form zajęć:
SUMA (godz.)
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
32 16 0 16 0 0 0 0 0 0 0 0
Matryca kierunkowych efektów uczenia się w odniesieniu do form zajęć i sposobu zaliczenia, które pozwalają na ich uzyskanie
Kod MEU Student, który zaliczył moduł zajęć zna i rozumie/potrafi/jest gotów do Forma zajęć dydaktycznych
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
Wiedza
M_W001 Posiada szczegółową wiedzę w zakresie budowy i implementacji systemów działających w rozproszonym środowisku sieciowym. + - - - - - - - - - -
M_W002 Ma elementarną wiedzę na temat cyklu życia systemów komputerowych + - - - - - - - - - -
M_W003 Orientuje się w obecnym stanie oraz najnowszych trendach rozwojowych informatyki + - - - - - - - - - -
Umiejętności
M_U001 Potrafi tworzyć efektywne aplikacje pracujące w rozproszonych systemach komputerowych - - - - - - - - - - -
M_U002 Potrafi projektować i implementować oprogramowanie - - - - - - - - - - -
M_U003 Potrafi oceniać istniejące oprogramowanie, wskazać moźliwości jego poprawy i ulepszenia - - - - - - - - - - -
Kompetencje społeczne
M_K001 Potrafi odpowiednio określić prioryttey służące realizacji określonego przez siebie lub innych zadania oraz adekwatnie zaplanowaź pracę. - - + - - - - - - - -
Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 125 godz
Punkty ECTS za moduł 5 ECTS
Udział w zajęciach dydaktycznych/praktyka 32 godz
Przygotowanie do zajęć 23 godz
przygotowanie projektu, prezentacji, pracy pisemnej, sprawozdania 32 godz
Samodzielne studiowanie tematyki zajęć 31 godz
Egzamin lub kolokwium zaliczeniowe 2 godz
Dodatkowe godziny kontaktowe 5 godz
Szczegółowe treści kształcenia w ramach poszczególnych form zajęć (szczegółowy program wykładów i pozostałych zajęć)
Wykład (16h):

  1. Systemy rozproszone – definicja, pojęcia podstawowe, usługi bazowe w systemach rozproszonych (2 godz.) Omówienie podstawowych definicji i własności systemów rozproszonych. Przegląd usług transparentności w systemach rozproszonych.
  2. Pojęcia systemu operacyjnego rozproszonego, sieciowego oraz warstwy pośredniczącej (2 godz.) Przedstawienie kategorii systemów operacyjnych dla systemów rozproszonych oraz zasad ich budowy. Wprowadzenie pojęcia warstwy pośredniczącej omówienie podstawowych usług zapewnianych przez warstwy pośredniczące. Przykłady warstw pośredniczących.
  3. Mechanizmy komunikacji w systemach rozproszonych – zdalne wywołanie procedury, zdalne wywołanie metody, przesyłanie komunikatów. Migracja – rodzaje oraz znaczenie w budowie środowisk przetwarzania rozproszonego (2 godz.) Porównanie różnych mechanizmów komunikacji w systemach rozproszonych. Sposoby implementacji zdalnego wywołania procedury. Techniki przesyłania komunikatów.
  4. Warstwy pośredniczące obiektowe – OOM, oraz zorientowane na wiadomości – MOM (2 godz.) Charakterystyka obiektowego przetwarzania rozproszonego. Obiektowe warstwy pośredniczące oparte na mechanizmie zdalnego wywołania metod. Wady i zalety warstw pośredniczących opartych na mechanizmie zdalnego wywołania metod. Charakterystyka warstw pośredniczących zorientowanych na przesyłanie komunikatów.
  5. Kanoniczne problemy systemów rozproszonych – pojęcie czasu, zegary logiczne Lamporta, zegary wektorowe (2 godz.) Wprowadzenie do kanonicznych problemów systemów rozproszonych. Modele czasu i ich znaczenie w systemach rozproszonych. Protokół NTP. Zegary logiczne – zegar Lamporta. Zegary wektorowe i ich zastosowania.
  6. Modele spójności w systemach rozproszonych (2 godz.) Pojęcie spójności danych. Modele spójności: spójność ścisła, spójność sekwencyjna, spójność linearyzowana, spójność przyczynowa, spójność FIFO.
  7. Replikacja oraz protokoły zarządzanie replikami danych (2 godz.) Pojęcie globalnego stanu systemu i algorytmy jego wyznaczania. Sposoby wyznaczenia stanu zakończenia obliczenia rozproszonego. Replikacja danych i jej znaczenie dla efektywności i niezawodności dla pracy systemów rozproszonych. Algorytmy utrzymywania konsystetności replik.
  8. Algorytmu elekcji oraz synchronizacji w środowisku rozproszonym (2 godz.) Rodzaje algorytmów elekcji: Bully, Ring. Zastosowanie algorytmów elekcji. Algorytmy synchronizacji i wzajemnego wkluczania w systemach rozproszonych.

Ćwiczenia laboratoryjne (16h):
-
Pozostałe informacje
Metody i techniki kształcenia:
  • Wykład: Treści prezentowane na wykładzie są przekazywane w formie prezentacji multimedialnej w połączeniu z klasycznym wykładem tablicowym wzbogaconymi o pokazy odnoszące się do prezentowanych zagadnień.
  • Ćwiczenia laboratoryjne: W trakcie zajęć laboratoryjnych studenci samodzielnie rozwiązują zadany problem praktyczny, dobierając odpowiednie narzędzia. Prowadzący stymuluje grupę do refleksji nad problemem, tak by otrzymane wyniki miały wysoką wartość merytoryczną.
Warunki i sposób zaliczenia poszczególnych form zajęć, w tym zasady zaliczeń poprawkowych, a także warunki dopuszczenia do egzaminu:

Zasady udziału w zajęciach:
  • Wykład:
    – Obecność obowiązkowa: Nie
    – Zasady udziału w zajęciach: Studenci uczestniczą w zajęciach poznając kolejne treści nauczania zgodnie z syllabusem przedmiotu. Studenci winni na bieżąco zadawać pytania i wyjaśniać wątpliwości. Rejestracja audiowizualna wykładu wymaga zgody prowadzącego.
  • Ćwiczenia laboratoryjne:
    – Obecność obowiązkowa: Tak
    – Zasady udziału w zajęciach: Studenci wykonują ćwiczenia laboratoryjne zgodnie z materiałami udostępnionymi przez prowadzącego. Student jest zobowiązany do przygotowania się w przedmiocie wykonywanego ćwiczenia, co może zostać zweryfikowane kolokwium w formie ustnej lub pisemnej. Zaliczenie zajęć odbywa się na podstawie zaprezentowania rozwiązania postawionego problemu. Zaliczenie modułu jest możliwe po zaliczeniu wszystkich zajęć laboratoryjnych.
Sposób obliczania oceny końcowej:

Ocena końcowa jest oceną z projektu z uwzględnieniem terminu uzyskania zaliczenia: za każdy dodatkowy termin jest obniżana o pół stopnia uzupełnioną o ocenę z egzaminu. Ocena z projektu bierze pod uwagę aktywność na zajęciach projektowych i przygotowanie do nich, oceny z realizacji dotychczasowych etapów procesu projektowego.
Ocena z egzaminu bierze pod uwagę znajomość teoretycznych podstaw przedmiotu, umijętność ilustrowanie teoretycznych zagadnień przykładami z istniejących rozwiązań, orientacja w trendach występujących w dziedzinie przedmiotu.
Oceny są wyznaczane zgodnie z regulaminem AGH.

Sposób i tryb wyrównywania zaległości powstałych wskutek nieobecności studenta na zajęciach:

Wymagania wstępne i dodatkowe, z uwzględnieniem sekwencyjności modułów :

Znajomość zagadnień komunikacji sieciowej i mechanizmów systemów operacyjnych. Znajomość powłoki systemu Unix oraz języków programowania Java, C++ i Python.

Zalecana literatura i pomoce naukowe:
  1. A. Tanenbaum, M. van Steen, “Systemy rozproszone. Zasady i paradygmaty”, Klasyka Informatyki, WNT,2006
  2. M. Henning, S. Vinowski, „Advanced CORBA Programming in C++” , Addison-Wesley, 1999
  3. R. Johson, J. Hoeller, A. Anderson, T, Risberg, C. Sampaleanu, ”Spring Framework. Profesjonalne tworzenie oprogramowania w Javie”, Helion, 2006
  4. G. F. Coulouris, „Systemy rozproszone. Podstawy i projektowanie”, WNT, 1999
  5. W. Grosso, „Java RMI – Design and Building Distributed Systems”, O’Reilly, 2002
Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:
Przemyslaw Dadel, Krzysztof Zielinski:Evolution of Reactive Streams API for Context-Aware Mobile Applications. Computing and Informatics 35(4): 852-869 (2016) Marek Psiuk, Daniel Zmuda, Krzysztof Zielinski: Distributed OSGi built over message-oriented middleware. Softw., Pract. Exper. 43(1): 1-31 (2013) Pierre de Leusse, Bartosz Kwolek, Krzysztof Zielinski: A Middleware Infrastructure for Multi-rule-Engine Distributed Systems. ServiceWave 2010: 231-232 Pierre de Leusse, Bartosz Kwolek, Krzysztof Zielinski: A common interface for multi-rule-engine distributed systems. RuleML Challenge 2010
Informacje dodatkowe:

Brak