Cztery wymiary architektury [Head First – Software Architecture]

Architekturę systemu można zazwyczaj opisać za pomocą czterech wymiarów:
Charakterystyki
Komponenty Logiczne
Styl
Decyzje

Charakterystyki

Opisują to jaki ma być system. Przykładowo ma być:
– skalowalny (ang. scalability)
– dostępny w określonym czasie (ang. availability)
– wydajny (ang. performance)
– bezpieczny (ang. security)
– niezawodny (ang. reliability)
– odporny na wywałkę systemu (ang. resilience)- zdolność systemu do odzyskiwania po awariach lub problemach i kontynuowania pracy
– rozszerzalność (ang. extensibility) – zdolność systemu do łatwego dodawania nowych funkcji lub modułów
– zwinność (ang. agility) – zdolność systemu do szybkiego reagowania na zmiany w wymaganiach, technologiach lub środowisku
– interoperacyjność (ang. interoperability) – zdolność systemu do współpracy z innymi systemami
– odporność na awarie (ang. fault tolerancy) – zdolność systemu do kontynuowania pracy mimo wystąpienia awarii jednej lub więcej jego części

Komponenty Logiczne

Są to elementy z których zbudowany jest system. Każdy komponent pełni jakąś funkcję. Przykładowo:
– obsługa płatności
– dostarczanie produktu
– śledzenie zamówienia

Komponenty logiczne są najczęściej reprezentowane w systemie za pomocą modułów, katalogów czy pakietów.

Styl

Definiuje ogólny kształt systemu. Przykładowo:
– mikro usługi (ang. microservices) – dobrze skalowalne, lecz przy okazji bardziej złożone
– architektura warstwowa (ang. layered architecture) – mniej skalowalna, ale łatwiejsza i mniej kosztowna
– architektura zdarzeniowa (ang. event-driven architecture) – bardzo skalowalna i bardzo szybka

Decyzje

Decyzje odnośnie systemu mające znaczące i długoterminowe konsekwencje. Przykładowo:
– front-end nie komunikuje się bezpośrednio z bazą danych, tylko z back-endem
– wybór frameworka
– wybór bazy danych (SQL, NoSQL, …)

Pozostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *