Do niedawna badania i prace praktyczne nad systemami rozproszonymi
koncentrowały się wokół zbudowania _rozproszonego systemu operacyjnego_ \-
takiego, który ponad mnogością systemów komputerowych, być może różnych typów
i z różnymi systemami operacyjnymi, utworzyłby warstwę abstrakcji jednolitą i
wygodną dla użytkowników. System taki określano mianem DOS (ang. _Distributed
Operating System_ ). Po latach nastąpiło przesunięcie zainteresowa w stronę
budowy oprogramowania określanego jako warstwa środkowa (ang. _middleware_ ),
tworzącego zaplecze aplikacji wielokomputerowych, obejmujących nawet setki
tysięcy komputerów; tak właśnie pojmuje się dzisiaj systemy rozproszone. Nie
oznacza to, że koncepcje wypracowane w okresie projektowania rozproszonych
systemów operacyjnych utraciły znaczenie. Przeciwnie, rozszerza się je na
obszar sieci tej skali co Internet. Zasady otwartości, przezroczystości,
dostępności, skalowalności, tolerowania awarii są filarami, na których
współcześni projektanci systemów rozproszonych opierają swe konstrukcje,
stając przed nowymi wyzwaniami w kategorii ilościowej, przestrzennej i
jakościowej. Tym problemom jest poświęcony semestralny wykład systemów
rozproszonych, zasadzający się na najnowszej literaturze tej dziedziny. Wykład
jest wsparty konwersatoriami (ćwiczeniami), których zadaniem jest ugruntowanie
pojęć i klarowne ich określenie, także w języku polskim, oraz pracownią, w
ramach której studenci budują modelowe aplikacje rozproszone.
**Uwagi**
* Rozszerzeniem wykładu jest seminarium S[R] z systemów [rozproszonych].
**Program:**
**Przegląd zagadnień wykładu** (według podręcznika [1])
1. Wstęp (cele, zasady, kategorie, wieloprocesory, multikomputery, systemy DOS, NOS, oprogramowanie warstwy środkowej, model klient-serwer).
2. Komunikacja (protokoły warstwowe, RPC, RMI, warstwa komunikatowa, komunikacja strumieniowa).
3. Procesy (wątki, klienci, serwery, wędrówka kodu, systemy agentowe).
4. Nazewnictwo (jednostki nazewnictwa, lokalizowanie jednostek ruchomych, usuwanie jednostek bez odniesie).
5. Synchronizacja (zegary logiczne i fizyczne, stan globalny, algorytmy elekcji, wzajemne wykluczanie, transakcje rozproszone).
6. Spjność i zwielokrotnianie (modele spójności, protokoły rozproszone, protokoły spójności).
7. Tolerowanie awarii (odporność procesów, niezawodna komunikacja klient-serwer, zatwierdzanie rozproszone, rekonstrukcja).
8. Bezpieczestwo (kanały bezpieczne, kontrolowanie dostępu, zarządzanie bezpieczeństwem, systemy: Kerberos, SESAME, elektroniczne systemy płatności).
9. Wymagania czasu rzeczywistego (systemy łagodne a rygorystyczne, ograniczenia, protokoły, zastosowania). _(Temat nie ujęty w podręczniku podstawowym.)_
10. Systemy rozproszone oparte na obiektach (CORBA, DCOM, Globe).
11. Rozproszone systemy plikw (NFS, Coda, Plan 9, xFS, SFS).
12. Systemy rozproszone oparte na dokumentach (WWW, Lotus Notes).
13. Systemy rozproszone oparte na koordynacji (TIB/Rendezvous, Jini).
14. Tematyka dalszych studiw -- w stronę seminarium S[R].
**Wymagania:** systemy komputerowe systemy operacyjne kurs ANSI C
W razie potrzeby uprasza się o powiadomienie listelem (pocztą elektroniczą, e-mailem). Odpowiedź na listel jest wysyłana zazwyczaj w ciągu tygodnia od daty jego nadejścia. zpl