Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Systemy rozproszone
Tok studiów:
2014/2015
Kod:
IIN-1-686-s
Wydział:
Informatyki, Elektroniki i Telekomunikacji
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Informatyka
Semestr:
6
Profil kształcenia:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma i tryb studiów:
Stacjonarne
Osoba odpowiedzialna:
prof. dr hab. inż. Zieliński Krzysztof (kz@ics.agh.edu.pl)
Osoby prowadzące:
dr inż. Czekierda Łukasz (luke@agh.edu.pl)
Szydło Tomasz (tomasz.szydlo@agh.edu.pl)
prof. dr hab. inż. Zieliński Krzysztof (kz@ics.agh.edu.pl)
Krótka charakterystyka modułu

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 Posiada szczegółową wiedzę w zakresie budowy i implementacji systemów działających w rozproszonym środowisku sieciowym. IN1A_W07, IN1A_W06 Kolokwium
M_W002 Ma elementarną wiedzę na temat cyklu życia systemów komputerowych IN1A_W05, IN1A_W09 Kolokwium
M_W003 Orientuje się w obecnym stanie oraz najnowszych trendach rozwojowych informatyki. IN1A_W04 Kolokwium
Umiejętności
M_U001 Potrafi tworzyć efektywne aplikacje pracujące w rozproszonych systemach komputerowych. IN1A_U13, IN1A_U11, IN1A_U12, IN1A_U04, IN1A_U09, IN1A_U14 Aktywność na zajęciach,
Wykonanie ćwiczeń laboratoryjnych,
Zaliczenie laboratorium
M_U002 Potrafi projektować i implementować oprogramowanie. IN1A_U13, IN1A_U11, IN1A_U12, IN1A_U04, IN1A_U09, IN1A_U14 Aktywność na zajęciach,
Wykonanie ćwiczeń laboratoryjnych
M_U003 Potrafi ocenić istniejące oprogramowanie, wskazać możliwości jego poprawy i ulepszenia IN1A_U13, IN1A_U10, IN1A_U12, IN1A_U14 Aktywność na zajęciach,
Wykonanie ćwiczeń laboratoryjnych
Kompetencje społeczne
M_K001 Potrafi odpowiednio określić priorytety służące realizacji określonego przez siebie lub innych zadania oraz adekwatnie zaplanować pracę. IN1A_K03, IN1A_K04 Udział w dyskusji,
Wykonanie ćwiczeń laboratoryjnych
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 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 ocenić istniejące oprogramowanie, wskazać możliwości jego poprawy i ulepszenia - - + - - - - - - - -
Kompetencje społeczne
M_K001 Potrafi odpowiednio określić priorytety służące realizacji określonego przez siebie lub innych zadania oraz adekwatnie zaplanować pracę. - - + - - - - - - - -
Treść modułu zajęć (program wykładów i pozostałych zajęć)
Wykład:

  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. Model imperatywny a model obiektowy 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. Przykłady: CORBA, RMI. Charakterystyka warstw pośredniczących zorientowanych na przesyłanie komunikatów. Przykłady MOM: JMS, Active MQ.
  5. Środowisko RMI i jego budowa. Zarządzanie zasobami w środowisku RMI – JAF (2 godz.) Omówienie budowy i działania środowiska RMI.
  6. CORBA – architektura systemu i jej znaczenie dla rozwoju obiektowych środowisk rozproszonych (2 godz.) Prace OMG i ich znaczenie dla systematyzacji podejścia do budowy systemów rozproszonych. Architektura OMA i jej struktura. Omówienie architektury CORBA.
  7. Elementy architektury CORBA – podstawowe interfejsy, POA, DII, DSI. Usługi CORBA: Name Service, Trading, Transaction Service, Event. Service, Notification Service (2 godz.) Omówienie podstawowych usług wspólnych CORBA wyróżnionych przez OMG. Znaczenie tych usług systematyzacji projektowania i budowy systemów rozproszonych.
  8. Architektury udostępnia usług – JINI jako przykład budowy dynamicznej architektury dystrybucji usług w środowisku Java. Usługi Jini. Java Space (2 godz.) Omówienie architektury JINI jako przykładu platformy do udostępnia usług w sadowiskach rozproszonych ze szczególnym uwzględnieniem systemów o ograniczonych zasobach.
  9. 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.
  10. 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.
  11. 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. # 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.
  12. Zagadnienia konstrukcji systemów rozproszonych odpornych na uszkodzenia. Semantyka błędów. Protokoły odtwarzania spójnego stanu systemu rozproszonego (2 godz.) Omówienie sposobów replikacji systemów rozproszonych. Klasteryzacja systemów rozproszonych i zasady jej konfiguracji.
  13. Problemy uzgadniania stanu w warunkach występowania uszkodzeń – uzgodnienie Bizantyjskie (2 godz.) Omówienie źródeł problemów związanych z ustaleniem konsystentnego stanu rozproszonego
  14. Mechanizmy bezpieczeństwa w systemach rozproszonych (2 godz.) Omówienie zagrożeń bezpieczeństwa występujących w systemach rozproszonych oraz źródeł ich występowania.

Ćwiczenia laboratoryjne:

  1. Komunikacja rozproszona z wykorzystaniem interfejsu gniazd (4 godz.)
  2. Rozproszona komunikacja obiektowa na przykładzie Java RMI (4 godz.)
  3. Wprowadzenie do technologii middleware – na przykładzie CORBA oraz ICE (4 godz.)
  4. Zaawansowane mechanizmy technologii middleware (4 godz.)
  5. Komunikacja grupowa w systemach rozproszonych (4 godz.)
  6. Zaawansowany scenariusz komunikacji w heterogenicznym środowisku rozproszonym (4 godz.)

Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 86 godz
Punkty ECTS za moduł 3 ECTS
Udział w wykładach 28 godz
Udział w ćwiczeniach laboratoryjnych 28 godz
Przygotowanie do zajęć 25 godz
Samodzielne studiowanie tematyki zajęć 5 godz
Pozostałe informacje
Sposób obliczania oceny końcowej:

Ocena końcowa jest oceną z laboratorium z uwzględnieniem terminu uzyskania zaliczenia: za każdy dodatkowy termin jest obniżana o pół stopnia. Ocena z laboratorium bierze pod uwagę aktywność na zajęciach i przygotowanie do nich, oceny z zadań domowych i kolokwium. Oceny są wyznaczane zgodnie z regulaminem studiów AGH.

Wymagania wstępne i dodatkowe:

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, S. Maatern, “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:

Nie podano dodatkowych publikacji

Informacje dodatkowe:

Brak