Jeszcze nie tak dawno temu (choć dla młodszego pokolenia to cała "epoka")
badania i prace praktyczne nad systemami rozproszonymi koncentrowały się wokoł
zbudowania _rozproszonego systemu operacyjnego_ \-- takiego, kt ory ponad
mnogością systemow komputerowych, być może rożnych typow i z rożnymi systemami
operacyjnymi, utworzyłby warstwę abstrakcji jednolitą i wygodną dla
użytkownikow. 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 rozproszonych aplikacji wielokomputerowych, obejmujących
setki, tysiące, a nawet miliony komputerow; tak właśnie pojmuje się dzisiaj
systemy rozproszone. Nie oznacza to, że koncepcje wypracowane w okresie
projektowania rozproszonych systemow operacyjnych zupełnie utraciły znaczenie.
Przeciwnie, rozszerza się je na obszar sieci globalnej. Zasady otwartości,
przezroczystości, dostępności, skalowalności, tolerowania awarii są filarami,
na ktorych wspołcześni projektanci systemow rozproszonych opierają swoje
konstrukcje, stając przed nowymi wyzwaniami w kategorii ilościowej,
przestrzennej i jakościowej. Tym problemom jest poświęcony semestralny wykład
systemow rozproszonych, zasadzający się na klasycznej i nowej literaturze z
tej dziedziny. Wykład jest wsparty konwersatoriami (ćwiczeniami), ktorych
zadaniem jest ugruntowanie pojęć i klarowne ich określenie, także w języku
polskim, oraz pracownią, w ramach ktorej studenci budują modelowe aplikacje
rozproszone.
**Uwagi**
* Potencjalnyum rozszerzeniem wykładu jest seminarium S[R] z systemow [rozproszonych].
**Przegląd zagadnień wykładu** (według podręcznika, zob. strona wykładu w
Sieci: KNO, czyli Moodle)
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ędrowka 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 spojności, protokoły rozproszone, protokoły spojności).
7. Tolerowanie awarii (odporność procesow, 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 studiow SR -- w stronę seminarium S[R].
**Wymagania:** systemy komputerowe, systemy operacyjne, sieci komputerowe,
elementarna znalomość programowania aplikacji sieciowych.
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