Charakterystyka, architektura, typy, cele, zastosowania systemów rozproszonych

3493
Egbert Haynes
Charakterystyka, architektura, typy, cele, zastosowania systemów rozproszonych

Plik Systemy rozproszone są to programy służące do koordynowania działań kilku komputerów. Koordynacja ta jest osiągana poprzez wymianę komunikatów, to znaczy z fragmentami danych, które przekazują informacje.

Systemy rozproszone wymagają współbieżnych komponentów, sieci komunikacyjnej i mechanizmu synchronizacji. Umożliwiają współdzielenie zasobów, w tym oprogramowania, przez systemy podłączone do sieci. Dlatego system oparty jest na sieci, która łączy komputery i obsługuje routing wiadomości..

a i b (systemy rozproszone). b (system równoległy). Miym / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)

Obliczenia rozproszone to obszar informatyki odpowiedzialny za analizę systemów rozproszonych. Program komputerowy działający w systemie rozproszonym nazywany jest programem rozproszonym.

W kontekście, w którym mogą istnieć setki lub tysiące komputerów, co jest powszechne w dużych firmach internetowych, bardzo często zdarzają się awarie komponentów, czy to sprzętu, sieci, dysków itp., A system musi być przygotowany. zawsze stawić im czoła.

Indeks artykułów

  • 1 Dystrybucja danych
  • 2 Charakterystyka systemów rozproszonych
    • 2.1 Zgodność
    • 2.2 Tolerancja błędów
    • 2.3 Oprogramowanie pośredniczące i API
  • 3 Architektura
    • 3.1 Architektura klient-serwer
    • 3.2 Architektura peer-to-peer
    • 3.3 Architektury wielopoziomowe
    • 3.4 Architektura grup procesorów
  • 4 Rodzaje systemów rozproszonych
    • 4.1 Przetwarzanie w klastrach
    • 4.2 Obliczenia sieciowe
    • 4.3 Przetwarzanie w chmurze
  • 5 Celów
    • 5.1 Udostępnianie zasobów
    • 5.2 Abstrakcja
    • 5.3 Otwieranie
    • 5.4 Interoperacyjność i przenośność
    • 5.5 Skalowalność
  • 6 Aplikacje
    • 6.1 Maszyna wirtualna Erlang
    • 6.2 BitTorrent
  • 7 Zalety
  • 8 Wady
  • 9 Przykłady systemów rozproszonych
    • 9.1 StackPath
    • 9.2 Internet
  • 10 Referencje

Dystrybucja danych

Dystrybucja ma kluczowe znaczenie dla obsługi bardzo dużych klastrów danych. Wymagane ze względu na skalowalność, która jest sposobem na utrzymanie stabilnej wydajności, gdy pule danych rosną poprzez dodawanie nowych zasobów do systemu.

Z drugiej strony dystrybucja wiąże się z szeregiem problemów technicznych, które sprawiają, że projektowanie i wdrażanie przetwarzania rozproszonego i pamięci masowej jest ważne do rozważenia. Jednym z punktów, które należy wziąć pod uwagę, jest ryzyko możliwych awarii.

Charakterystyka systemów rozproszonych

a i b (systemy rozproszone). b (system równoległy). Miym / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)

Zgodność

Urządzenia mogą współpracować z różnymi systemami operacyjnymi. Nie przeszkadza im to w oferowaniu użytkownikom tych samych usług. Z tego powodu wszystkie podłączone urządzenia są ze sobą kompatybilne..

Kolejną podstawową kwestią jest konstrukcja oprogramowania, ponieważ jest ono również kompatybilne ze wszystkimi systemami i użytkownikami, którzy są na każdym komputerze..

Tolerancja błędów

Będąc pojedynczą siecią z wieloma komputerami, jeśli którykolwiek z jej składników ulegnie awarii, inne mogą nadal w pełni wykonywać swoje funkcje, szybko unikając błędów.

Z tego powodu systemy rozproszone dają dużo pewności podczas pracy z nimi, ponieważ dość rzadko dochodzi do całkowitej awarii systemu, ponieważ zadania nie znajdują się na jednym urządzeniu, ale na różnych komputerach..

Oprogramowanie pośredniczące i API

Różne procesory wykorzystują oprogramowanie pośredniczące do dystrybucji, pomagając współdzielić różne zasoby i możliwości, aby zapewnić użytkownikom spójną i zintegrowaną sieć. Oferuje również aplikacjom szereg usług, takich jak zabezpieczenia i odzyskiwanie po awarii.

Dziś można usłyszeć więcej o interfejsach programowania aplikacji (API), które działają jako brama, za pośrednictwem której aplikacje mogą się komunikować. Aplikacje nie muszą wiedzieć nic o innych aplikacjach poza ich interfejsem API.

Architektura

Architektura klient-serwer

Określony komputer zwany serwerem może wykonywać określone zadania, zwane usługami. Na przykład udostępnianie plików w sieci, możliwość wykonywania określonych poleceń lub kierowania danych do drukarki. Klient jest komputerem żądającym usług.

Komputer znany przede wszystkim ze świadczonej przez siebie usługi można nazwać serwerem wydruku, serwerem plików itp..

Architektura peer-to-peer

Zakłada się, że każdy komputer ma podobne możliwości i żadna maszyna nie jest przeznaczona do obsługi innych. Przykładem tego jest zestaw mikrokomputerów w małym biurze.

Sieć umożliwia ludziom wzajemny dostęp do plików i wysyłanie e-maili, ale żaden komputer nie zapewnia określonego zestawu usług.

Architektury wielopoziomowe

W przypadku niektórych usług może mieć sens hierarchiczna łączność. Na przykład:

  • Serwer wykonując swoje zadania może kontaktować się z innym serwerem innego typu
  • Architektura klient-serwer jest architekturą dwuwarstwową.

Architektura grup procesorów

System operacyjny mógłby automatycznie uruchamiać procesy na bezczynnych komputerach, a nawet migrować procesy do systemów z większą liczbą dostępnych cykli procesora. W innych przypadkach użytkownik może ręcznie uruchamiać lub przenosić procesy w dostępnych systemach.

Rodzaje systemów rozproszonych

Obliczenia klastrowe

Jest to zestaw podobnych komputerów połączonych za pośrednictwem szybkiej sieci lokalnej. Jest często używany do programowania równoległego, w którym pojedynczy program intensywnie obliczający działa równolegle na wielu komputerach.

Każdy klaster składa się z zestawu węzłów obliczeniowych, które są monitorowane i zarządzane przez jeden lub więcej węzłów zwanych wzorcami..

Obliczenia sieciowe

Składa się z węzłów o znacznych różnicach w sprzęcie i technologii sieciowej. Obecny trend posiadania określonej konfiguracji węzłów do niektórych zadań doprowadził do większej różnorodności, która jest najbardziej powszechna w obliczeniach sieciowych.

Chmura obliczeniowa

Jest to zestaw zwirtualizowanych zasobów umieszczonych w centrum danych dostawcy usług w chmurze. Klienci mogą stworzyć zwirtualizowaną infrastrukturę, aby korzystać z różnych usług w chmurze.

Użytkownikowi wydaje się, że wynajmuje własny komputer na wyłączność. Jednak w rzeczywistości jest prawdopodobne, że udostępniasz go innym klientom. To samo dotyczy wirtualnej pamięci masowej.

Te zwirtualizowane zasoby można dynamicznie konfigurować, umożliwiając w ten sposób skalowalność. Jeśli potrzeba więcej zasobów obliczeniowych, system może uzyskać więcej.

cele

Udostępniaj zasoby

Niezależnie od tego, czy są to urządzenia do przechowywania danych, pliki danych, usługi czy sieci, możesz chcieć współdzielić te zasoby między aplikacjami, aby uzyskać prostą oszczędność.

Znacznie tańsze jest posiadanie wspólnego magazynu dla wielu aplikacji, niż kupowanie i utrzymywanie pamięci dla każdej z nich osobno..

Abstrakcja

Aby ukryć, że procesy i zasoby są rozmieszczone na kilku komputerach, prawdopodobnie rozproszonych geograficznie. Oznacza to, że procesy i zasoby są oderwane od użytkownika.

Otwarcie

Zasadniczo oznacza to, że system rozproszony zbudowany jest z elementów, które można łatwo zintegrować z innymi systemami. Zgodnie ze znormalizowanymi zasadami każdy proces z tym interfejsem może komunikować się z innym procesem z tym samym interfejsem.

Interoperacyjność i przenośność

Odnosi się do sytuacji, gdy dwa systemy różnych producentów mogą ze sobą współpracować. Przenośność określa zakres, w jakim aplikacja utworzona dla systemu A może działać w systemie B bez modyfikacji..

Skalowalność

Jest to konieczne, gdy rośnie liczba użytkowników, którzy potrzebują więcej zasobów. Dobrym przykładem jest wzrost liczby widzów Netflix w każdy piątek wieczorem.

Oznacza to dynamiczne dodawanie większej ilości zasobów, na przykład zwiększanie przepustowości sieci, umożliwiając większą transmisję wideo i zmniejszając ją po normalizacji zużycia.

Aplikacje

Maszyna wirtualna Erlang

Pakiet oprogramowania LYME jest oparty na Erlangu i stanowi alternatywę dla LAMP. Shmuel Csaba Otto Traian / CC BY-SA (https://creativecommons.org/licenses/by-sa/3.0)

Erlang to język funkcjonalny, który ma świetną semantykę dla współbieżności, dystrybucji i odporności na błędy. Maszyna wirtualna Erlang obsługuje dystrybucję aplikacji Erlang.

Ten model działa dzięki wielu izolowanym procesom, wszystkie z możliwością komunikowania się ze sobą za pośrednictwem wbudowanego systemu transmisji wiadomości..

Maszyna wirtualna Erlang może łączyć się z innymi maszynami wirtualnymi, które znajdują się w różnych miejscach. Ten rój maszyn wirtualnych uruchamia pojedynczą aplikację, obsługującą awarie jednej maszyny, planując jej uruchomienie w innym węźle..

Bittorrent

Działanie sieci BitTorrent. Mrjavi / CC BY-SA (https://creativecommons.org/licenses/by-sa/4.0)

Jest to jeden z najczęściej używanych protokołów do przesyłania dużych plików w Internecie. Głównym pomysłem jest ułatwienie przesyłania plików między różnymi peerami w sieci bez konieczności przechodzenia przez główny serwer.

Korzystając z klienta BitTorrent, możesz połączyć się z wieloma komputerami na całym świecie, aby pobrać plik. Komputer pełniący rolę koordynatora pomaga pokazać węzły w sieci, które mają żądany plik.

BitTorrent pozwala na dobrowolne przechowywanie plików i przesyłanie ich innym użytkownikom, którzy ich potrzebują. Jest tak popularny, ponieważ był pierwszym tego rodzaju, który oferował zachęty do wspierania sieci..

Korzyść

- Więcej węzłów można łatwo dodać do systemu rozproszonego, to znaczy można je skalować w razie potrzeby.

- Wszystkie węzły w systemie rozproszonym są ze sobą połączone. Dlatego każdy z węzłów może łatwo udostępniać dane innym węzłom..

- Zasoby, takie jak drukarki, mogą być współdzielone z wieloma węzłami zamiast ograniczać się do jednego.

- Awaria jednego węzła nie prowadzi do awarii całego systemu rozproszonego. Pozostałe węzły mogą nadal komunikować się ze sobą.

Niedogodności

- Niektóre wiadomości i dane mogą zostać utracone w sieci podczas przenoszenia z jednego węzła do drugiego.

- Trudno jest zapewnić odpowiednie bezpieczeństwo w systemach rozproszonych, ponieważ zarówno węzły, jak i połączenia muszą być zabezpieczone.

- Przeciążenie sieci może wystąpić, jeśli wszystkie węzły w systemie rozproszonym próbują wysyłać dane w tym samym czasie.

- Baza danych podłączona do systemów rozproszonych jest dość skomplikowana i nieporęczna w porównaniu do systemu pojedynczego użytkownika.

Przykłady systemów rozproszonych

Systemy rozproszone mogą być używane w wielu przypadkach, takich jak systemy bankowości elektronicznej, gry online dla wielu graczy i sieci czujników..

StackPath

Wykorzystuje szczególnie duży system rozproszony do zasilania usługi sieciowej dostarczania treści. Każdy z punktów obecności (PoP) ma węzły, tworząc rozproszony system na całym świecie.

StackPath przechowuje ostatnio i najczęściej żądaną zawartość w lokalizacjach najbliższych używanej witryny.

Łącząc wirtualne komputery, oprócz wykorzystania szybkości i sprawności najnowocześniejszych komputerów, system może bardzo szybko obsłużyć tysiące jednoczesnych żądań.

Internet

Jest to największy system rozproszony na świecie. Każdy użytkownik czuje się jak pojedynczy system, mimo że składa się z milionów komputerów.

Dzięki koncepcji abstrakcji nie masz pojęcia, gdzie są przechowywane dane, ile serwerów jest zaangażowanych ani w jaki sposób informacje trafiają do przeglądarki. Przeglądarka rozwiązuje złożoność Internetu.

Dotyczy to również aplikacji, takich jak Gmail e-mail lub innych aplikacji, których można używać. Każda osoba na co dzień wchodzi w interakcję z aplikacjami rozproszonymi.

Bibliografia

  1. Paweł Krzyżanowski (2018). Systemy rozproszone. Zaczerpnięte z: cs.rutgers.edu.
  2. Catherine Paganini (2019). Elementarz: Systemy rozproszone i natywne przetwarzanie w chmurze. Nowy stos. Zaczerpnięte z: thenewstack.io.
  3. Międzynarodowy Uniwersytet w Walencji (2020). Systemy rozproszone, charakterystyka i klasyfikacja. Zaczerpnięte z: universidadviu.com.
  4. David Meador (2018). Systemy rozproszone. Tutorials Point. Zaczerpnięte z: tutorialspoint.com.
  5. Robert Gibb (2019). Co to jest system rozproszony? Zaczerpnięte z: blog.stackpath.com.
  6. Stanislav Kozlovski (2018). Gruntowne wprowadzenie do systemów rozproszonych. Darmowy Code Camp. Zaczerpnięte z: freecodecamp.org.

Jeszcze bez komentarzy