Wielowarstwowa architektura aplikacji: hierarchia podwarstw i modele danych
Wielowarstwowa architektura pozwala strukturyzować aplikacje, dzieląc funkcjonalność na izolowane warstwy: warstwę fasady dla dostępu zewnętrznego, warstwę logiki biznesowej oraz warstwę trwałości dla przechowywania danych. Każda warstwa składa się z podwarstw — podwarstwy fasady, podwarstwy logiki i podwarstwy dostępu do danych — zapewniających jednokierunkową interakcję i dwukierunkową wymianę danych między modelami.
Główne komponenty aplikacji jednowarstwowej
Aplikacja jednowarstwowa łączy trzy grupy funkcjonalności:
- Funkcjonalność warstwowa: zestaw izolowanych warstw z jednokierunkową interakcją między sąsiednimi warstwami i podwarstwami.
- Funkcjonalność poprzeczna: wspólne mechanizmy dostępne dla wszystkich warstw, takie jak logowanie czy zabezpieczenia.
- Funkcjonalność przepływu danych: operacje przenoszenia danych, w tym:
- Mapowanie danych do transformacji między modelami danych.
- Powiązywanie danych z interfejsem użytkownika (UI).
- Serializacja danych do wymiany z zewnętrznymi systemami przez kanał transferu danych.
Interakcja warstw jest zorganizowana hierarchicznie: sąsiednie warstwy wymieniają dane jednokierunkowo, modele danych — dwukierunkowo. Aplikacja komunikuje się z zewnętrznymi konsumentami (konsumenci/producenci danych) przez interfejs wejściowy aplikacji, a z zewnętrznymi źródłami danych (lokalnymi/zdalnymi) przez interfejs wyjściowy aplikacji.
Lokalne źródła danych: pliki, porty USB/COM/LPT. Zdalne: bazy danych, FTP, LDAP, serwisy webowe, brokerzy wiadomości.
Struktura warstwy i podwarstw
Warstwa obejmuje funkcjonalność i powiązane modele danych. Podwarstwy:
- Podwarstwa fasady: API dla dostępu z zewnątrz (metody publiczne).
- Podwarstwa logiki: wewnętrzna logika warstwy.
- Podwarstwa dostępu do danych: dostęp do zewnętrznych źródeł.
Przykłady interakcji:
- Warstwa fasady: obsługiwacze zdarzeń UI lub endpointy.
- Warstwa logiki: koordynacja logiki biznesowej (logika aplikacji).
- Warstwa trwałości: obiekty dostępu do danych (DAO).
Podwarstwa logiki warstwy fasady formuje zawartość UI (np. szablony widoków w ASP.NET MVC) i walidatory (UniqueValueValidator z zapytaniem do bazy przez podwarstwę dostępu do danych).
Podwarstwa logiki warstwy logiki realizuje logikę domenową, interagując z warstwą trwałości dla danych referencyjnych lub w algorytmach rekurencyjnych.
Zewnętrzne interfejsy i granice aplikacji
- Górna granica aplikacji: brama do zewnętrznych konsumentów przez interfejs wejściowy (formularze wizualne, gniazda po stronie serwera, timery).
- Dolna granica aplikacji: brama do źródeł danych przez interfejs wyjściowy (gniazda, sterowniki baz danych).
Dostęp do danych z warstw fasady/logiki:
- Bezpośredni do lokalnych źródeł.
- Przez interfejs wyjściowy do zdalnych.
- Przez warstwę trwałości do baz danych.
Warstwa trwałości skupia się na przechowywaniu i przetwarzaniu danych trwałych.
Przykłady architektur
Schematy strukturalne pokazują zastosowanie w serwisach webowych, przeglądarce raportów i ASP.NET MVC.
W przeglądarce raportów:
- Podwarstwa fasady: formularz wizualny z komponentem przeglądarki raportów.
- Podwarstwa logiki: generator raportów ze szablonami (szablony raportów), korzystający z danych z podwarstwy dostępu do danych.
- Podwarstwa dostępu do danych: zapytania do warstwy trwałości dla danych raportowych.
Wielowarstwowa architektura rozszerza jednowarstwową: każde ogniwo to warstwowa aplikacja, opisując Client-Server, Event-Driven, Pipes and Filters, SOA, Mikrousługi.
Co jest najważniejsze
- Podział na warstwy (fasada, logika, trwałość) zapewnia izolację i skalowalność.
- Podwarstwy (fasada, logika, dostęp do danych) standaryzują API i logikę.
- Jednokierunkowa interakcja warstw minimalizuje cykle zależności.
- Przepływ danych (mapowanie, powiązywanie, serializacja) ujednolica przenoszenie danych.
- Granice aplikacji (interfejsy wejściowy/wyjściowy) wyraźnie oddzielają kontekst wewnętrzny od zewnętrznego.
— Editorial Team
Brak komentarzy.