Zpět na domů

Vícevrstvová architektura: podvrstvy a modely dat

Článek popisuje vícevrstvovou architekturu aplikací s použitím podvrstev a hierarchie modelů dat. Jsou zváženy struktury single/multi-tier, mechanismy dataflow a příklady pro webové aplikace. Vhodné pro middle/senior vývojáře.

Hierarchie vrstev v architektuře aplikací: úplný rozbor
Advertisement 728x90

Vrstvená architektura aplikací: hierarchie podsložek a modely dat

Vrstvená architektura umožňuje strukturovat aplikace tak, že rozdělí funkce do izolovaných vrstev: vrstva fasády pro externí přístup, vrstva logiky pro obchodní logiku a vrstva perzistence pro ukládání dat. Každá vrstva se skládá z podsložek — podsložka fasády, podsložka logiky a podsložka přístupu k datům —, které zajišťují jednosměrné interakce a obousměrnou výměnu dat mezi modely.

Hlavní komponenty jednovrstvové aplikace

Jednovrstvová aplikace sjednocuje tři skupiny funkcí:

  • Vrstvené funkce: soubor izolovaných vrstev s jednosměrnou interakcí mezi sousedními vrstvami a podsložkami.
  • Průřezové funkce: společné mechanismy dostupné všem vrstvám, jako je logování nebo bezpečnost.
  • Datový tok: operace pro přenos dat, včetně:

- Mapování dat pro převod mezi modely dat.

Google AdInline article slot

- Vazba dat pro propojení s uživatelským rozhraním.

- Serializace dat pro výměnu s externími systémy přes kanál přenosu dat.

Interakce vrstev je organizována hierarchicky: sousední vrstvy vyměňují data jednosměrně, modely dat obousměrně. Aplikace komunikuje s externími spotřebiteli (spotřebitelé/producenti dat) přes vstupní rozhraní aplikace a s externími zdroji dat (lokální/vzdálené) přes výstupní rozhraní aplikace.

Google AdInline article slot

Lokální zdroje dat: soubory, USB/COM/LPT porty. Vzdálené: databáze, FTP, LDAP, webové služby, zprostředkovatelé zpráv.

Struktura vrstvy a podsložek

Vrstva zahrnuje funkce a související modely dat. Podsložky:

  • Podsložka fasády: API pro externí přístup (veřejné metody).
  • Podsložka logiky: vnitřní logika vrstvy.
  • Podsložka přístupu k datům: přístup k externím zdrojům.

Příklady interakcí:

Google AdInline article slot
  • Vrstva fasády: obslužné rutiny událostí UI nebo endpointy.
  • Vrstva logiky: koordinace obchodní logiky (logika aplikace).
  • Vrstva perzistence: objekty přístupu k datům (DAO).

Podsložka logiky vrstvy fasády tvoří obsah UI (např. šablony zobrazení v ASP.NET MVC) a validátory (UniqueValueValidator s dotazem do DB přes podsložku přístupu k datům).

Podsložka logiky vrstvy logiky realizuje doménovou logiku, interaguje s perzistencí pro referenční data nebo v rekurzivních algoritmech.

Externí rozhraní a hranice aplikace

  • Horní hranice aplikace: brána k externím spotřebitelům přes vstupní rozhraní (vizuální formuláře, serverové sokety, časovače).
  • Dolní hranice aplikace: brána k zdrojům dat přes výstupní rozhraní (sokety, ovladače DB).

Přístup k datům z vrstev fasády/logiky:

  • Přímý k lokálním zdrojům.
  • Přes výstupní rozhraní k vzdáleným.
  • Přes vrstvu perzistence k databázím.

Vrstva perzistence se zaměřuje na ukládání a zpracování perzistentních dat.

Příklady architektur

Strukturální schémata ukazují použití ve webových službách, prohlížeči reportů a ASP.NET MVC.

V prohlížeči reportů:

  • Podsložka fasády: vizuální formulář s komponentou prohlížeče reportů.
  • Podsložka logiky: generátor reportů se šablonami (šablony reportů), který využívá data z podsložky přístupu k datům.
  • Podsložka přístupu k datům: dotazy k vrstvě perzistence pro data reportů.

Vícevrstvé architektury rozšiřují jednovrstvovou: každá vrstva je vrstvená aplikace, popisující Client-Server, řízené událostmi, potrubí a filtry, SOA, mikroslužby.

Co je důležité

  • Rozdělení na vrstvy (fasáda, logika, perzistence) zajišťuje izolaci a škálovatelnost.
  • Podsložky (fasáda, logika, přístup k datům) standardizují API a logiku.
  • Jednosměrná interakce vrstev minimalizuje cykly závislostí.
  • Datový tok (mapování, vazba, serializace) unifikuje přenos dat.
  • Hranice aplikace (vstupní/výstupní rozhraní) jasně oddělují vnitřní a vnější kontext.

— Editorial Team

Advertisement 728x90

Číst dál