Architektury Rozproszone

Architektura rozproszona - definicja

Architektura rozproszona – zbiór niezależnych urządzeń, z których przynajmniej jedno jest komputerem, współpracujących ze sobą i funkcjonujących jako jedna całość.

Przykłady systemów rozproszonych:

  • System GPS

  • Rozproszone bazy danych

  • System transakcji międzybankowych

  • Rozproszone systemy plików

  • Gridy obliczeniowe

Różnica pomiędzy architekturą równoległą i rozproszoną

Architektury równoległe i rozproszone są często traktowane jako architektury tożsame. Osobiście się z tym nie zgadzam - jest sporo cech różniących obie architektury, oto one:

  • gorsze parametry sieci - większymi opóźnieniami w komunikacji (latency) oraz mniejszą szybkością łącz – systemy równoległe zazwyczaj połączone są szybkimi sieciami (InfiniBand, Gigabit Ethernet), systemy rozproszone są połączone łączami o gorszych parametrach

  • model komunikacji - komunikacja w systemach rozproszonych oparta jest zazwyczaj o protokoły typu żądanie-odpowiedź - RMI, CORBA, RPC, SOAP, REST itp. Komunikacja w systemach równoległych oparta jest na komunikacji międzyprocesowej (IPC) oraz przekazywaniu komunikatów - biblioteki PVM, MPI

  • systemy równoległe charakteryzują się lepszą wydajnością ale gorszą elastycznością - dostosowanie systemu równoległego do nowych warunków czy założeń może w praktyce oznaczać konieczność zaprojektowania systemu od nowa

  • sposób projektowania - projektując system równoległy zazwyczaj mamy już zbudowaną infrastrukturę (której koszty budowy są zazwyczaj ogromne) i projektujemy system tak, aby na niej działał

Problemy projektowe

Poniżej lista najczęściej pojawiających się i najbardziej uciążliwych problemów projektowych związanych z projektowaniem systemów rozproszonych:

  • Współdzielenie zasobów

  • Rozproszenie zasobów - konieczność niezawodnej, efektywnej komunikacji pomiędzy rozproszonymi zasobami

  • Heterogeniczność (niejednorodność) zasobów - konieczność integracji heterogenicznych systemów i zasobów

  • Zapewnianie określonych atrybutów jakościowych - skalowalność, wydajność, reużywalność, elastyczność, niezawodność działania etc

  • Modyfikowalność - konieczność łatwego wprowadzania zmian, zdolność do poszerzania o nowe usługi i zasoby

  • Bezpieczeństwo - konieczność zapewniania bezpieczeństwa komunikacji jak i konkretnych komunikujących się podsystemów

  • Przeźroczystość - konieczność zapewniania przeźroczystości systemu dla użytkownika, mówimy tu o przeźroczystości na kilku poziomach:

    • dostępu

    • położenia zasobów

    • migracji zasobów

    • replikacji zasobów i danych

    • współbieżności

    • awarii

    • wydajności

Wzorce architektoniczne

Poniżej lista wzorców architektury rozproszonej.

* [file sharing](/blog/projektowanie/katalog-wzorcow-architektonicznych/architektury-rozproszone/file-sharing/)


* [architektury klient-serwer](/blog/projektowanie/katalog-wzorcow-architektonicznych/architektury-rozproszone/architektury-klient-serwer/)


* [systemy agentowe](/blog/projektowanie/katalog-wzorcow-architektonicznych/architektury-rozproszone/systemy-agentowe/)

Comments