Systemy Rozproszone. Zagadnienia do egzaminu. 1. Definicje systemu rozproszonego i podstawowe pojęcia związane z takim systemem: węzeł, klient, serwer, peer, zasób, usługa. 2. Główne wyzwania związane z projektowaniem systemu rozproszonego: a. Heterogeniczność b. Otwartość c. Bezpieczeństwo d. Skalowalność e. Obsługa awarii f. Współbieżność g. Przezroczystość 3. Rodzaje przezroczystości i ich charakterystyka. 4. Trzy aspekty architektury systemu rozproszonego: wykrywanie zasobów, dostępność zasobów i komunikacja między zasobami; na czym polega centralizacja / decentralizacja w każdym z nich. 5. Warstwowa architektura systemu rozproszonego. Role poszczególnych warstw. 6. Warianty architektury klient-serwer i ich zastosowania: a. Zwielokrotnienie serwera b. Proxy i cache c. Kod mobilny d. Cienki klient 7. Model peer-to-peer. a. Porównanie z klient-serwer. b. Topologie P2P (scentralizowana, pierścieniowa, hierarchiczna, zdecentralizowana i hybrydowa). c. Ocena topologii pod kątem łatwości zarządzania, spójności informacji, rozszerzalności, odporności na awarie, odporności na rozszczenia prawne, bezpieczeństwa, skalowalności. 8. Mobilny serwer problem i rozwiązanie w oparciu o MobileIP. 9. Architektura trójwarstwowa charakterystyka i zalety. 10. Co to jest protokół komunikacji? Jaka jest motywacja i jakie są korzyści z wprowadzenia protokołów wielowarstwowych? Dlaczego ma sens mówienie o protokołach warstwy pośredniczącej (middleware)? 11. Typy komunikacji (trwała, nietrwała, synchroniczna, asynchroniczna). Na diagramie objaśnić na czym polega komunikacja: a. trwała asynchroniczna b. trwała synchroniczna c. nietrwała asynchroniczna d. nietrwała synchroniczna (z różnymi wariantami synchronizacji) 12. Wyjaśnij różnicę między konwencjonalnym a zdalnym wywołaniem procedury i wynikające stąd problemy, które trzeba rozwiązać w przypadku wywołania zdalnego.
13. Przedstaw i objaśnij etapy, w których odbywa się zdalne wywołanie procedury. 14. Wady zdalnego wywołania procedury. W jaki sposób radzi sobie z nimi komunikacja zorientowana na wiadomości? 15. Trwała komunikacja zorientowana na wiadomości w oparciu o Message-Oriented Middleware (MOM) a. Ogólny schemat b. Struktura wiadomości c. Podstawowy interfejs do wymiany wiadomości 16. Komunikacja w oparciu o zdarzeniowa (Event-Based Middleware) a. Ogólny schemat b. Porównanie z Message-Based Middleware c. Co to jest komunikacja typu publish-subscribe; Jakie są jej rodzaje i własności? 17. Komunikacja strumieniowa. a. Cechy charakterystyczne. b. Tryby transmisji w komunikacji strumieniowen (synchroniczny, asynchroniczny, izochroniczny) 18. Jakość usługi (QoS) i wsparcie dla QoS w protokole IP (DiffServ) 19. Sposoby gwarantowania QoS a. Buforowanie b. Redundancja c. Transmisja z przeplotem 20. Synchronizacja strumieni a. Synchronizacja na poziomie jednostek danych b. Synchronizacja w oparciu o warstwę pośredniczącą (multimedia middleware) 21. Problem synchronizacji zegarów w systemie rozproszony. a. Dlaczego niemożliwa jest synchronizacja z dowolną dokładnością? b. Odchylenie (skew) i dryft zegarów. c. Rodzaje synchronizacji (wewnętrzna, zewnętrzna). d. Własność monotoniczności zegara. 22. Synchronizacja w synchronicznym systemie rozproszonym. Dokładność synchronizacji w tym przypadku. 23. Algorytm Cristiana. Dokładność synchronizacji zegarów. Problemy algorytmu. 24. Algorytm Berkeley. Jak radzi sobie z problemami algorytmu Cristiana? 25. Protokół NTP a. Motywacja utworzenia i cele projektowe b. Architektura usług NTP c. Tryby synchronizacji w NTP 26. Czas i zegary logiczne Lamporta. a. Relacja "happened-before" b. Reguły ustalania wartości zegara logicznego. c. Związek pomiędzy czasem logicznym a relacją "h-b"
27. Czas i zegary wektorowe. a. Reguły ustalania wartości zegara wektorowego. b. Związek pomiędzy czasem wektorowem a relacją "h-b" 28. Stan globalny w systemach rozproszonych. a. Przykłady własności globalnych b. Obcięcie (cut). Obcięcie spójne i niespójne. 29. Algorytm migawki rozproszonej. 30. Problem elekcji w SR i rozwiązanie przy pomocy algorytmu tyrana 31. Problem elekcji w SR i rozwiązanie przy pomocy algorytmu pierścieniowego 32. Problem wzajemnego wykluczania w SR a. Sekcja krytyczna b. Wymagania względem algorytmu rozproszonego wzajemnego wykluczania 33. Wzajemne wykluczanie algorytm z centralnym koordynatorem. Wady tego algorytmu. 34. Wzajemne wykluczanie algorytm rozproszony. Wady tego algorytmu. 35. Wzajemne wykluczanie algorytm pierścienia z żetonem. Wady tego algorytmu. 36. Charakterystyki wydajności SR: a. Responsywność b. Przepustowość c. Równoważenie obciążęnia d. Wykorzystanie (utilization) 37. Pewność działania (dependability) SR i jej elementy: a. Dostępność b. Niezawodność c. Łatwość utrzymania d. Zabezpieczenie (Safety) e. Bezpieczeństwo (Security) 38. Zagrożenia dla systemu rozproszonego rozróżnienie na wadę, błąd i awarię (fault, error, failure). 39. Rodzaje awarii SR błędy pominięcia, arbitralne, związane z czasem. Ich przykłady dla procesów i kanałów komunikacji. 40. Zasada punktów końcowych (end-to-end principle): czego dotyczy, co zaleca i jakie jest tego uzasadnienie. 41. Problem middleboxe ów: czym są i jak wpływają na zasadę punktów końcowych. 42. Zagrożenia bezpieczeństwa i formy ataków w SR. Podstawowe techniki radzenia sobie z atakami. Przykłady ataków, z którymi nie radzą sobie podstawowe techniki. 43. Podstawowe scenariusze bezpiecznej komunikacji i ich problemy: a. Ze współdzielonym tajnym kluczem. b. Za pośrednictwem serwera uwierzytelniającego. c. Z użyciem kluczy publicznych. 44. Atak dnia urodzin. 45. Podpis elektroniczny
a. Co ma gwarantować? b. Sposób tworzenia podpisu elektronicznego z kluczem publicznym i prywatnym c. Sposób tworzenia podpisu elektronicznego z jednym tajnym kluczem (MAC). 46. Porównać kryptografię opartą o parę kluczy publiczny-prywatny i jeden współdzielony klucz tajny. W jaki sposób te metody są wykorzystane w TLS i dlaczego? 47. Transakcje w SR. Cel transakcji. Ogólna architektura SR z obsługą transakcji. Cechy ACID transakcji. 48. Problemy utraconej aktualizacji i niespójnego odzyskania (na przykładach). 49. Pojęcie szeregowej równoważności. Warunek konieczny i wystarczający aby zachodziła szeregowa równoważność. 50. Problemy zabrudzonego czytania, kaskadowego zaniechania i przedwczesnych zapisów (na przykładach). Sposoby radzenia sobie z tymi problemami. 51. Sterowanie współbieżnością przy pomocy blokad wyłącznych. Blokowanie dwufazowe (2PL) i ścisłe blokowanie dwufazowe (S2PL). 52. Blokady dla odczytu i zapisu. Motywacja wprowadzenia. Zasady zakładania tych blokad. 53. Problem zakleszczenia w miechanizmie blokad. Pojęcie grafu "wait-for". Sposoby radzenia sobie z zakleszczeniaim: a. Zapobieganie zakleszczeniom b. Wykrywanie zakleszczeń c. Timeout 54. Optymistyczne sterowanie współbieżnością. Motywacja wprowadzenia. Fazy transakcji w podejściu optymistycznym. 55. Sposoby walidacji transakcji w podejściu optymistycznym. Reguły, które muszą być spełnione. walidacja wsteczna i wyprzedzająca. 56. Replikacja: jak usprawnia system rozproszony (wydajność, dostępność i odporność na awarie)? Wymagania względem replikacji w SR. Model systemu rozproszonego z replikacją. 57. Fazy żądań w SR z replikacją. 58. Problem niespójności w SR z replikacją (na przykładzie). Modele spójności: a. Spójność ścisła. b. Spójność sekwencyjna. c. Liniowość. d. Spójność przyczynowa. 59. Replikacja pasywna. Model, fazy i cechy. 60. Replikacja aktywna. Model, fazy i cechy. 61. Protokoły oparte o kworum. Warunki, które muszą być spełnione i ich uzasadnienie. Przykłady. 62. Problem podziału sieci w SR z replikacją. Optymistyczne i pesymistyczne podejście do radzenia sobie z tym problemem.
63. Modele spójności zorientowane na klienta. Spójność końcowa (eventual). Problem mobilnego klienta. Stosowane w tym problemie modele spójności: a. Monotoniczne odczyty. b. Monotoniczne zapisy. c. Czytaj-swoje-zapisy. d. Zapisy-podążają-za-odczytami.