dembol.org

Java and distributed systems architecture

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.

     

    Dodaj komentarz

    Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

    *

    Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>