Rozproszone Systemy Komputerowe
Pytania na egz.:
4 z 15 poniższych będą na egzaminie.
:: Pytania do opracowania/opracowane ::
1. Zdefiniować i opisać cechy systemów rozproszonych: przezroczystość, otwartość, skalowalność.
Przezroczystość - własność systemu pozwalająca na postrzeganie systemu przez użytkownika jako całości, a nie poszczególnych składowych
Otwartość - podatność na rozszerzenia, możliwość rozbudowy systemu zarówno pod względem sprzętowym, jak i oprogramowania
Skalowalność - własność systemu polegająca na zachowaniu podobnej wydajności systemu przy zwiększeniu skali systemu (np. liczby procesów, komputerów, itp.)
2. Zdefiniować i omówić pojęcie warstwy pośredniej. Podać przykłady oprogramowania warstwy pośredniej.
Warstwa pośrednia, warstwa pośrednicząca, oprogramowanie pośredniczące (middleware) - jest to rodzaj oprogramowania służący do komunikacji aplikacji użytkownika z bazami danych, lub innymi serwerami / usługami. Wykorzystanie middleware ułatwia tworzenie aplikacji, gdyż uniezależnia ją od rodzaju bazy danych. Obecnie, wobec rozwoju modelu aplikacji wielowarstwowych, middleware zyskuje na znaczeniu.
Przykłady: monitory transakcyjne (np. Tuxedo), procesory zapytań, DDR (Data Driven Routing), sterowniki baz danych (np. ODBC), oprogramowanie pośredniczące w transakcjach internetowych (CORBA, COM+).
Oprogramowanie integrujące sprzęt, systemy operacyjne i aplikacje w dużych heterogenicznych systemach operacyjnych. Na middleware składają się takie kategorie produktów jak: monitory transakcyjne, MOM, serwery aplikacji, ORB.
3. Scharakteryzować 3-piętrową architekturę klient-serwer. Podać jej przykłady.
##. Scharakteryzować dwupiętrową architekturę klient-serwer, podać przykład.
Architektura klient-serwer to sposób przetwarzania informacji gdzie proces żądający usług i proces dostarczający usług są wyodrębnione. Jest ona szczególnie wygodna w systemach sieciowych i rozproszonych.
Klient - proces potrzebujący pewnej usługi i zlecający ja serwerowi.
Serwer - proces dostarczający usługi zlecanej przez klienta.
<Pytanie wycofane>
##. Opisać protokoły komunikacyjne sieci komputerowej stanowiącej szkielet systemu rozproszonego.
Chodzi o TCP/IP - protokół komunikacji otwartej.
TCP to strumieniowy protokół komunikacji między dwoma komputerami.
IP to protokół komunikacyjny warstwy sieciowej modelu OSI (warstwy internet w modelu TCP/IP).
Protokół IP jest protokołem zawodnym - nie gwarantuje, że pakiety dotrą do adresata, nie zostaną pofragmentowane, czy też zdublowane, a ponadto mogą dotrzeć do odbiorcy w innej kolejności niż zostały nadane. Niezawodność transmisji danych jest zapewniana przez protokoły warstw wyższych (np. TCP), znajdujących się w hierarchii powyżej warstwy sieciowej.
Protokoły TCP i IP łącznie zarządzają przepływem danych przez sieć w obu kierunkach. IP przesyła pakiety bez ich rozróżniania, natomiast zadaniem TCP jest gwarancja ich dotarcia.
</Pytanie wycofane>
4. Co to są namiastki serwera i klienta i do czego służą?
Namiastka klienta (ang. client stub) - udostępnienie aplikacji klienckiej procedury lokalnej odpowiedzialnej za przesłanie danych do serwera oraz odebranie wyników
Namiastka serwera (ang. server stub) - udostępnienie aplikacji po stronie serwera procedury lokalnej odpowiedzialnej za odebranie identyfikatora procedury zdalnej do wywołania, parametrów procedury, a odesłanie wyników lub zgłoszenie wyjątków.
Służą one zapewnieniu przezroczystości dostępu w wywołaniu RPC.
5. Opisać wywołanie RPC: synchroniczne, asynchroniczne, odroczone asynchroniczne, jednokierunkowe.
Synchroniczne:
Klient oczekuje na odpowiedź serwera, odbywa się to tak:
Klient pyta serwer (zdalna procedura)
Serwer przygotowuje wynik - klient w tym czasie czeka
Serwer odpowiada, klient przyjmuje odpowiedź
Klient kontynuuje działanie
Np.: zmiana hasła w systemie.
Asynchroniczne:
Klient może wywołać zdalną procedurę i pójść dalej nie czekając aż serwer zakończy jej wykonanie; nawet jeśli jest wymagana odpowiedź, to klient może wywołać zdalną procedurę nie czekając na odpowiedź i odebrać tę odpowiedź później.
Np.: przelew pieniędzy w systemie bankowym.
Asynchroniczne odroczone:
Klient może zebrać kilka żądań klienta i wysłać je razem do serwera.
Jednokierunkowe:
Klient nie potrzebuje odpowiedzi od serwera, nie czeka na nią, ani nawet na zaakceptowanie żądania przez serwer (problem z wiarygodnością).
Np.: synchronizacja hasła między systemami: system A przekazuje systemowi B jakie ma być hasło.
6. Zdefiniować pojęcie wątku. Jakie są jego wady i zalety?
Wątek (ang. thread) - wydzielony fragment wykonywanego programu. Jest to jednostka wykonawcza w obrębie jednego procesu, będąca kolejnym ciągiem instrukcji wykonywanym w obrębie tych samych danych (w tej samej przestrzeni adresowej).
Zalety: wielowątkowość - kilka wątków może wykonywać się jednocześnie.
Wady: konflikty, gdy kilka wątków odwołuje się do tych samych danych (przestrzeni adresowej).
7. Krótko scharakteryzować wirtualną maszynę Javy. (co to jest i do czego służy?)
Wirtualna maszyna Javy (ang. Java Virtual Machine, w skrócie JVM) to zależny od platformy system uruchomieniowy dla programów. Służy do uruchamiania programów napisanych w języku Java.
Programy napisane w tym języku są niezależne od platformy dzięki temu, że uruchamiane są bezpośrednio w JVM, a nie w rodzimym środowisku. Można je uruchomić na dowolnym komputerze i systemie operacyjnym na które istnieje JVM.
8. Co to są i jak są wykorzystywane aplety i serwlety?
Aplet - niewielki program (np. w języku Java) napisany w taki sposób, by mógł zostać osadzony w stronie WWW i uruchomiony przez przeglądarkę internetową. Program wykonywany jest po stronie klienta i wymaga od komputera wirtualnej maszyny Javy.
Serwlet - mały program wykonywany po stronie serwera WWW. Serwlet otrzymuje od serwera komplet informacji zebranych z interakcyjnych elementów strony (zwykle z pól formularza) i po ich przetworzeniu dostarcza gotową stronę WWW - przesyłaną przez serwer do użytkownika, który nie musi mieć wirtualnej maszyny Javy. Ponieważ serwlet jest jedną z klas Javy, można w nim korzystać z całego dostępnego Java API - w tym z mechanizmów łączących z bazą danych, zdalnych wywołań metod (RMI) oraz CORBA.
Oba wykorzystywane są do uruchomiania programów Java - aplet na komputerze klienta, serwlet - na serwerze.
9. Co to jest pośrednik i jakie jest jego zadanie w RMI?
Interfejs Javy nie zawiera wykonywalnego kodu, więc RMI używa dwóch klas implementujących ten sam interfejs. Jedna z nich funkcjonuje jako pośrednik (service proxy) dla wywołań klienta. Program klienta wywołuje metody w klasie pośredniczącej, a ta przekazuje je do zdalnego serwera oraz pobiera zawracane wyniki.
10. Co to jest CORBA?
CORBA to technologia zapewniająca komunikację pomiędzy obiektami pracującymi w różnorodnych systemach komputerowych. Obiekty pełniące dowolne funkcje mogą być zaimplementowane w różnych językach programowania, na dowolnej platformie sprzętowej, pod kontrolą różnych systemów operacyjnych.
11. Co to jest interfejs? Jaką rolę pełni w rozproszonym systemie komputerowym (w aspekcie organizacyjnym) ?
Interfejs jest prostym opisem funkcjonalności. Zawiera informacje o tym jak wywoływać poszczególne usługi i czego się po nich spodziewać. Nie interesuje nas samo działanie programu a jedynie to jakie dane mamy mu dostarczyć i jakie dostaniemy w odpowiedzi. Interfejs oddziela nas od samego programu. Dzięki temu modyfikacje mechanizmów komponentu nie wymagają wprowadzania zmian w tych elementach systemu, które korzystają z jego usług.
12. Czego dotyczy i na czym polega przetaczanie parametrów ?
13. Na czym polega wędrówka kodu, co to jest silna i słaba przenośność - podać przykłady ?
14. Co to jest i do czego służy stos wędrówki ?
15. Wyjaśnić pojęcie związane z DCE. Wiązanie, język opisu interfejsu, punkt końcowy, serwer katalogów.
:: Rozproszone Systemy Komputerowe:: Piotr Bilski - Wykłady :: © & ℗ 2007 EOP :: 19.11.2007 1 z 5