Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Informatyczne systemy rozproszone
Tok studiów:
2019/2020
Kod:
RAIR-2-118-RT-s
Wydział:
Inżynierii Mechanicznej i Robotyki
Poziom studiów:
Studia II stopnia
Specjalność:
Robotyka
Kierunek:
Automatyka i Robotyka
Semestr:
1
Profil:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma studiów:
Stacjonarne
Strona www:
 
Prowadzący moduł:
dr inż. Miękina Lucjan (miekina@agh.edu.pl)
Treści programowe zapewniające uzyskanie efektów uczenia się dla modułu zajęć

Celem kursu jest zapoznanie studentów z komunikacją sieciową i strukturami klasycznych informatycznych systemów rozproszonych. Omawiane są protokoły UDP i TCP, technologie RPC i Java RMI, usługi katalogowe, sieciowe systemy plików, usługi sieciowe typu SOAP i REST.

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 zna i rozumie specyfikę systemów i aplikacji rozproszonych AIR2A_W05 Kolokwium,
Wykonanie ćwiczeń laboratoryjnych,
Wynik testu zaliczeniowego
M_W002 zna i rozumie architektury systemów rozproszonych AIR2A_W05 Kolokwium,
Wykonanie ćwiczeń laboratoryjnych,
Wynik testu zaliczeniowego
M_W003 zna i rozumie metody komunikacji sieciowej AIR2A_W05 Kolokwium,
Wykonanie ćwiczeń laboratoryjnych,
Wynik testu zaliczeniowego
M_W004 zna i rozumie ogólne mechanizmy występujące w systemach rozproszonych (interfejsy, zewnętrzna reprezentacja danych, serializacja) AIR2A_W05 Kolokwium,
Wykonanie ćwiczeń laboratoryjnych,
Wynik testu zaliczeniowego
M_W005 zna i rozumie mechanizm zdalnego wywołania procedur (Remote Procedure Call) AIR2A_W05 Kolokwium,
Wykonanie ćwiczeń laboratoryjnych,
Wynik testu zaliczeniowego
M_W006 zna i rozumie mechanizm zdalnego wywołania metod (Java Remote Method Invocation) AIR2A_W05 Kolokwium,
Wykonanie ćwiczeń laboratoryjnych,
Wynik testu zaliczeniowego
M_W007 zna i rozumie mechanizm Common Object Request Broker Architecture (CORBA) AIR2A_W05 Kolokwium,
Wykonanie ćwiczeń laboratoryjnych,
Wynik testu zaliczeniowego
M_W008 zna sieciowe systemy plików AIR2A_W05 Kolokwium,
Wykonanie ćwiczeń laboratoryjnych,
Wynik testu zaliczeniowego
M_W009 zna usługi katalogowe AIR2A_W05 Kolokwium,
Wykonanie ćwiczeń laboratoryjnych
M_W010 zna i rozumie usługi sieciowe AIR2A_W05 Kolokwium,
Wynik testu zaliczeniowego
M_W011 zna biblioteki służące do obliczeń równoległych (np. AKKA) AIR2A_W05 Kolokwium,
Wykonanie ćwiczeń laboratoryjnych,
Wynik testu zaliczeniowego
Umiejętności: potrafi
M_U001 potrafi zbudować i uruchomić rozproszoną aplikację z użyciem podstawowych protokołów sieciowych (UDP, TCP) w języku Java AIR2A_U01, AIR2A_U05, AIR2A_U07 Kolokwium,
Wykonanie ćwiczeń laboratoryjnych
M_U002 potrafi zbudować i uruchomić rozproszoną aplikację z użyciem RPC w języku C AIR2A_U01, AIR2A_U05, AIR2A_U07 Kolokwium,
Wykonanie ćwiczeń laboratoryjnych
M_U003 potrafi zbudować i uruchomić rozproszoną aplikację z użyciem Java RMI w języku Java AIR2A_U01, AIR2A_U05, AIR2A_U07 Kolokwium,
Wykonanie ćwiczeń laboratoryjnych
M_U004 potrafi skonfigurować dostęp do zdalnego systemu plików w systemie UNIX używając NFS AIR2A_U01, AIR2A_U05, AIR2A_U07 Kolokwium,
Wykonanie ćwiczeń laboratoryjnych
M_U005 potrafi zarządzać zasobami z użyciem LDAP AIR2A_U01, AIR2A_U05, AIR2A_U07 Kolokwium,
Wykonanie ćwiczeń laboratoryjnych
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
40 26 0 14 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 zna i rozumie specyfikę systemów i aplikacji rozproszonych + - + - - - - - - - -
M_W002 zna i rozumie architektury systemów rozproszonych + - + - - - - - - - -
M_W003 zna i rozumie metody komunikacji sieciowej + - + - - - - - - - -
M_W004 zna i rozumie ogólne mechanizmy występujące w systemach rozproszonych (interfejsy, zewnętrzna reprezentacja danych, serializacja) + - + - - - - - - - -
M_W005 zna i rozumie mechanizm zdalnego wywołania procedur (Remote Procedure Call) + - + - - - - - - - -
M_W006 zna i rozumie mechanizm zdalnego wywołania metod (Java Remote Method Invocation) + - + - - - - - - - -
M_W007 zna i rozumie mechanizm Common Object Request Broker Architecture (CORBA) + - + - - - - - - - -
M_W008 zna sieciowe systemy plików + - + - - - - - - - -
M_W009 zna usługi katalogowe + - + - - - - - - - -
M_W010 zna i rozumie usługi sieciowe + - + - - - - - - - -
M_W011 zna biblioteki służące do obliczeń równoległych (np. AKKA) - - + - - - - - - - -
Umiejętności
M_U001 potrafi zbudować i uruchomić rozproszoną aplikację z użyciem podstawowych protokołów sieciowych (UDP, TCP) w języku Java - - + - - - - - - - -
M_U002 potrafi zbudować i uruchomić rozproszoną aplikację z użyciem RPC w języku C - - + - - - - - - - -
M_U003 potrafi zbudować i uruchomić rozproszoną aplikację z użyciem Java RMI w języku Java - - + - - - - - - - -
M_U004 potrafi skonfigurować dostęp do zdalnego systemu plików w systemie UNIX używając NFS - - + - - - - - - - -
M_U005 potrafi zarządzać zasobami z użyciem LDAP - - + - - - - - - - -
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 zajęciach dydaktycznych/praktyka 40 godz
Przygotowanie do zajęć 14 godz
Samodzielne studiowanie tematyki zajęć 30 godz
Egzamin lub kolokwium zaliczeniowe 2 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 (26h):

Wykład obejmuje zagadnienia:

  • ogólna charakterystyka systemów rozproszonych
  • modele systemów rozproszonych (architektury, bezpieczeństwa)
  • komunikacja sieciowa z użyciem podstawowych protokołów (UDP, TCP)
  • ogólne mechanizmy występujące w systemach rozproszonych (interfejsy, zewnętrzna reprezentacja danych, serializacja)
  • model warstwowy, warstwa pośrednia, jej rola i główne implementacje
  • mechanizm zdalnego wywołania procedur (SUN Remote Procedure Call)
  • mechanizm zdalnego wywołania metod (Java Remote Method Invocation)
  • mechanizm Common Object Request Broker Architecture (CORBA)
  • rozproszone systemy plików na przykładzie NFS
  • usługi katalogowe
  • usługi sieciowe
  • framework AKKA, służący do równoległych obliczeń w czasie rzeczywistym

Ćwiczenia laboratoryjne (14h):

Ćwiczenia laboratoryjne polegają na omówieniu teorii odnoszącej się do zagadnień przedstawionych na wykładach i praktycznej realizacji programów w języku Java, które używają omawianych technik. Realizowane są następujące tematy:

  • prosta aplikacja typu komunikator tekstowy (czat), z użyciem krótkich komunikatów tekstowych przekazywanych za pomocą protokołu UDP
  • aplikacja typu czat realizowana w technice Java RMI
  • przykład zastosowania usług sieciowych typu SOAP i REST

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:

Warunkiem zaliczenia ćwiczeń laboratoryjnych jest wykonanie zadań zleconych w trakcie zajęć i
zaliczenie kolokwium.

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 obliczana następująco:

  • laboratoria – 75 % za zaliczenie poszczególnych ćwiczeń i 25 % za kolokwium zaliczeniowe
    Wszystkie oceny cząstkowe muszą być pozytywne.
Sposób i tryb wyrównywania zaległości powstałych wskutek nieobecności studenta na zajęciach:

Samodzielne wykonanie zaległych zadań i przedstawienie do oceny, połączonej z dyskusją.

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

Umiejętność sprawnego programowania obiektowego w języku Java

Zalecana literatura i pomoce naukowe:
  • Coulouris, Dollimore, Kindberg, Blair: Distributed Systems, Concepts and Design,
    Fifth Ed., Addison Wesley, May 2011
Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:

Lucjan Miękina, Inżynieria oprogramowania, Skrypt AGH SU 1707, Wydawnictwa AGH, Kraków 2009

Informacje dodatkowe:
  • Kolokwium zaliczeniowe odnosi się do zagadnień poruszanych na ćwiczeniach i ma wpływ na
    ocenę z ćwiczeń laboratoryjnych