System rozproszony (
ang.
distributed system) to zbiór niezależnych urządzeń technicznych połączonych w jedną, spójną logicznie całość. Zwykle łączonymi urządzeniami są
komputery
, rzadziej – systemy automatyki. Połączenie najczęściej realizowane jest przez
sieć komputerową
, jednak można wykorzystać również inne – prostsze –
magistrale komunikacyjne
. Urządzenia są wyposażone w
oprogramowanie
umożliwiające współdzielenie zasobów systemowych.
Jedną z podstawowych cech
systemu
rozproszonego jest jego przezroczystość ( ang. transparency), tj. tworzenie na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.
Definicja systemu rozproszonego ewoluowała wraz z rozwojem komputerów i sieci komputerowych.
Historia
W późnych latach 70. i na początku lat 80. systemy rozproszone składały się ze zdalnych
terminali
lub
minikomputerów
, które przeprowadzały niektóre operacje i co pewien czas komunikowały się w
trybie wsadowym
(ang. batch mode) z komputerem centralnym. Możliwe były połączenia terminali z komputerem centralnym typu gwiazda (wiele terminali połączonych przez modemy z jednym centralnym komputerem), pierścień (terminale, minikomputer i komputer centralny tworzą pierścień) lub hierarchicznie (komputer centralny połączony jest z minikomputerami, do których połączone są terminale). W drugiej połowie lat 80. system rozproszony zaczął być rozumiany jako osobne, geograficznie rozproszone aplikacje współdziałające ze sobą. W tym czasie pod pojęciem systemu rozproszonego rozumiano także pojedynczą
aplikację
składającą się ze względnie samodzielnych i niezależnych
programów
współdziałających ze sobą. Dominowały wówczas następujące konfiguracje połączeń:
- komputery osobiste (
PC
) podłączone do komputera centralnego,
- hierarchiczne (komputery podłączone do komputerów pośredniczących, które były połączone z komputerem centralnym, przy czym komputery znajduące się bliżej komputera centralnego miały większą moc obliczeniową)
- komputery różnej mocy obliczeniowej połączone siecią komputerową (połączenia typu równy, ang. peer),
- hybrydowe (hierarchiczne z konfiguracją typu peer).
Współczesne systemy rozproszone składają się z różnych komputerów połączonych siecią komputerową.
Cechy
System rozproszony posiada następujące cechy:
- Dzielenie zasobów (ang. resource sharing) – wielu użytkowników systemu może korzystać z danego zasobu (np.
drukarek
,
plików
, usług, itp.).
- Otwartość (ang. openness) – podatność na rozszerzenia, możliwość rozbudowy systemu zarówno pod względem sprzętowym, jak i oprogramowania.
- Współbieżność (ang. concurrency) – zdolność do przetwarzania wielu zadań jednocześnie.
- Skalowalność (ang. scalability) – cecha systemu umożliwiająca zachowanie podobnej wydajności systemu przy zwiększaniu skali systemu (np. liczby
procesów
, komputerów, itp.).
- Tolerowanie awarii (ang. fault tolerance) – właściwość systemu umożliwiająca działania systemu mimo pojawiania się błędów i (lub) uszkodzeń (np. przez utrzymywanie nadmiarowego sprzętu).
- Przezroczystość (ang. transparency) – właściwość systemu powodująca postrzeganie systemu przez użytkownika jako całości, a nie poszczególnych składowych.
Obecnie w systemach rozproszonych istotną rolę odgrywa oprogramowanie pośredniczące (warstwa pośrednia, ang. middleware), która pośredniczy w komunikacji między jego składowymi. Przykładami warstwy pośredniej są:
- gniazda (ang. sockets)
-
RPC
(Remote Procedure Call)
- DCE (Distributed Computing Environment)
-
CORBA
(Common Object Request Broker Architecture)
-
DCOM
(Distributed Component Object Model)
-
RMI
(Remote Method Invocation)
Zobacz też
Linki zewnętrzne