Co je n-úrovňová architektura?
N-úrovňová architektura dělí aplikaci na logické vrstvy a fyzické úrovně. Písmeno n označuje počet fyzických úrovní, na něž je aplikace rozdělená, což obvykle odpovídá počtu vrstev. Teoreticky můžeme mít dvouúrovňovou architekturu (klient-server), nebo dokonce pětiúrovňovou architekturu. Je ale běžné (a často i nejlepší) nepoužívat více než čtyři úrovně.
Pojďme si vysvětlit, co vrstvy a úrovně tvoří.
Co jsou vrstvy?
Vrstvy logicky rozdělují kód, který tvoří aplikaci. Každá vrstva je zodpovědná za konkrétní úkoly, například zpracovávání požadavků uživatelů, provoz obchodní logiky nebo ukládání dat.
Když aplikaci rozdělíme na tyto logické vrstvy, pracujeme s každou z nich samostatně. Díky tomu jsou komponenty aplikace modulární a umožňují nám snadněji udržovat aplikaci. Aplikaci můžeme pro každou z odpovědností optimalizovat. Vrstva zpracovávající webové požadavky se soustředí na svou hlavní úlohu – zpracování těchto požadavků. Nemusí se zabývat ukládáním dat nebo provozem obchodní logiky. Vrstva přístupu k datům se zase soustředí na optimalizaci komunikace s úložištěm dat a ignoruje podrobnosti prezentace dat uživateli. Tento princip zaměření pozornosti na konkrétní funkce se nazývá oddělení oblastí zájmu.
Na diagramu níže jsou zobrazené vrstvy v běžné n-úrovňové aplikaci. Každá vrstva zajišťuje jeden aspekt aplikace. Obchodní vrstva spravuje komunikaci mezi vrstvou uživatelského rozhraní a vrstvou přístupu k datům.
Co jsou úrovně?
Úrovně představují fyzické rozčlenění částí aplikace do samostatných výpočetních prostředků. Obecně platí, že na každé fyzické úrovni je spuštěná jedna logická vrstva aplikace.
Rozdělení architektury na fyzické úrovně přináší několik výhod:
- Součásti aplikace můžete škálovat odděleně, a to přidáním prostředků do každé z úrovní.
- Aplikace může být odolnější přidáním vyrovnávání zatížení pro detekci neúspěšných prostředků a přesměrováním požadavků na systémy, které jsou v pořádku.
- Aplikace může být bezpečnější tím, že omezí síťovou komunikaci mezi vrstvami a umožní jenom požadovaný přístup.
Komunikace mezi úrovněmi by měla probíhat směrem shora dolů. Každá úroveň může mluvit s další úrovní, která je pod ní, ale obecně není možné úrovně přeskočit. Omezení veřejně přístupné oblasti vrstvy slouží k zajištění vyšší bezpečnosti.
Tříúrovňová architektura
Tříúrovňová architektura je ze všech n-úrovňových architektur nejběžnější. Odpovědnost a název každé z vrstev a úrovní se může lišit v závislosti na aplikaci a podniku. Tříúrovňová aplikace ale obvykle má prezentační úroveň, aplikační neboli střední úroveň a datovou úroveň. Tříúrovňový model se používá ze všech n-úrovňových stylů nejčastěji Ve zbývající části tohoto modulu budeme používat tříúrovňový model – v každé úrovni běží jedna vrstva aplikace – a vrstvy budeme označovat synonymem úrovně.
Prezentační úroveň
Prezentační úroveň obvykle zpracovává požadavky uživatelů. Mohou to být uživatelé, kteří přistupují k webové stránce, nebo veřejný přístup k vaší aplikaci prostřednictvím zveřejněné rozhraní API. Tato úroveň se zaměřuje na uživatelské prostředí, poskytuje například intuitivní rozhraní a zajišťuje zabezpečenou komunikaci mezi koncovým uživatelem a vaší aplikací.
Na této úrovni se samotnými daty netýšíte kromě toho, jak se prezentuje uživateli. Na této úrovni obvykle neexistuje žádné zpracování dat ani přístup k datům. To je zodpovědností nižších úrovní.
Aplikační úroveň
Aplikační úroveň (často označovaná jako střední úroveň) se typicky zaměřuje na zajišťování obchodní logiky aplikace. Může se jednat o zpracovávání objednávek od zákazníků, sledování zásilek nebo aktualizace skladových zásob na základě přijatých materiálů. Tato úroveň je odpovědná za aktivity vytváření, čtení, aktualizací a odstraňování („operace CRUD“) proti datové úrovni. Představuje také vhodné místo pro volání do závislých služeb, jako jsou externí rozhraní API.
Tato úroveň se ne obává toho, jak se informace předá zpět uživateli, ani se nezamyslí, jak se data ukládají a načítá. Soustředí se jen na obchodní logiku potřebnou k plnění požadavků přijatých aplikací.
Datová vrstva
Na této úrovni se zaměřujeme na ukládání dat. Její zodpovědností je ukládat data v tabulkách, souborech nebo jiném médiu. Pro přístup k datům poskytuje rozhraní, jako je například T-SQL. V rámci tříúrovňové architektury zajišťuje přístup dat k aplikační úrovni.
Tato úroveň se nezabývá tím, jak se data prezentují uživateli, ani žádnou logikou spojenou s daty. Může v ní probíhat využití uložených procedur, ale většina logiky týkající se samotných dat by se měla zpracovávat ve vyšší vrstvě.
Kdy používat n-úrovňovou architekturu
Když jsme teď mluvili o n-úrovňové architektuře, popíšeme si, kdy byste tuto architekturu mohli použít. Zvažte n-úrovňovou architekturu v těchto případech:
- Malé až střední webové aplikace
- Migrace místních aplikací do Azure s minimálním refaktoringem
- Využití dovedností a schopností vývojářů v oblasti vývoje místních aplikací
K architekturám tohoto stylu se dobře hodí webové aplikace. N-úrovňové architektury s nimi mohou dobře fungovat díky své menší složitosti a často přirozenému rozdělení odpovědností, které se u webových aplikacích používá. Může jít o veřejně přístupné aplikace nebo obchodní aplikace interně používané organizací. U menších nebo jednodušších aplikací může stačit dvouúrovňová architektura (klient-server), v níž nejsou prezentační a aplikační úrovně oddělené, ale naopak sloučené.
N-úrovňové architektury jsou běžné u tradičních místních aplikací, takže jsou přirozeně vhodné pro migraci stávajících úloh do Azure. Aplikace tohoto stylu se často migrují do Azure s minimálním refaktoringem nebo úpravami, což zjednodušuje počáteční migraci. Jakmile budete v Azure, můžete využít výhod služeb PaaS (platforma jako služba) k dalšímu vylepšování vaší aplikace.
Vzhledem k tomu, že se jedná o běžný styl architektury, mají inženýři často vyšší úroveň zkušeností a obeznámenosti s ním. Když zvolíte tuto architekturu, můžete pomocí existujících dovedností nasazovat aplikace, aniž byste se řeštou nové vzory architektury.
Zkontrolujte své znalosti
Potřebujete pomoc? Projděte si našeho průvodce odstraňováním potíží nebo nahlaste potíže a uveďte konkrétní připomínky.