Nahoru
 

Enterprise aplikace

Možná se kolem vás ochomýtl termín „enterprise software“ nebo podnikový program. Co si pod tím představit? Jak se vůbec liší „normální“ a „podnikový“ program?

Podnikové programy se používají v (jak určitě není překvapením) podnicích, školách, nemocnicích, bankách apod. Můžeme je definovat třemi charakteristickými vlastnostmi:

  • Výkonné
  • Robustní (nezastaví se na špatné vstupy)
  • Rozšiřitelné a modifikovatelné

Takové vlastnosti by však měl splňovat všechen software. Pravá síla enterprise aplikací se skrývá hlouběji ve slovíčku „modifikovatelné“. Nějaké části systémů a programů stárnou a časem se hodí je vyměnit za novější, lepší a spolehlivější. Pokud například v podnikové aplikaci přestane fungovat stará databáze, mělo by být možné provést výměnu bez rozsáhlých změn stávajícího systému. Nemá totiž smysl znovu vybudovat stejnou aplikaci od základu a zaměnit jen jednu její část.

Enterprise aplikace je jako stavět dům z lega – skládá se z mnoho robustních dílů a pokud chceme přidat další místnost nebo vyměnit střechu, stačí malé a jednoduché úpravy.

Business logika

Střed celé podnikové aplikace je business logika. Jedná se o program obstarávající základní chování, logiku a algoritmizaci. Business logika školy by obsahovala operace typu: editace studentů a ověření jeho dat (např. že student musí mít jméno a příjmení), vypočtení průměru známek, výpočet váženého průměru, vyhledávací algoritmy, filtrovací algoritmy, algoritmy pro automatickou tvorbu rozvrhů apod.

Celá aplikace se staví na business logice. Důležité je postavit tuto vrstvu tak, aby bylo irelevantní, jakou použijeme databázi, klienta (desktop aplikaci, webovou aplikaci, …) nebo další potřebné technologie, protože se časem mohou vyměnit. Například v našem případu business logiky pro školu by vyhledávacímu algoritmu mělo být jedno, zda data putují do webové stránky nebo mobilní aplikace. Algoritmus by měl dostat data, zpracovat je a poslat dál.

Samozřejmě i business vrstva časem zestárne, avšak pokud je tvořena z velice populárního jazyka (např.: C, C++, C#, Java, JavaScript, …), velice pravděpodobně se tak stane za enormně dlouho. Ba co víc, pokud by k tomu došlo, lze přepsat pouze samotnou business vrstvu anebo upravit potřebné části kódu v novém jazyce. Multijazyčné vrstvy jsou v business aplikace vídány velice často.

Vrstvení enterprise aplikace

Hlavní výhoda a smysl enterprise aplikací je rozšiřitelnost a modifikovatelnost. Vzhledem k tomu, že tento typ programů může růst do enormních objemů kódu, snažíme se tvořit nezávislé vrstvy (bloky, balíčky) kódů. Obecně platí rozdělení na 3 velké části:

  1. Datová vrstva
  2. Logická vrstva
  3. Prezentační vrstva

Datová vrstva obstarává práci a operace s daty. Střed této vrstvy je databáze, která umí přijímat data, ukládat data, mazat data a velice efektivně vyhledávat data.

Logickou vrstvu (neboli business logiku) můžeme považovat za takový mozek celého chodu aplikace. Obsahuje všechny důležité algoritmy, funkce a metody obstarávající esenciální výpočty a operace. Tato vrstva mimo jiné zahrnuje modul pro komunikaci s databází a s klienty (web, aplikace). Je důležité komunikaci oddělit od algoritmů, jelikož pokud budeme potřebovat například vyměnit databázový systém, nemusíme procházet všechny složité algoritmy a upravovat je, nýbrž stačí přeprogramovat jednu malou komunikační vrstvu.

Prezenční vrstva se nestará o nic jiného nežli poskytování všech funkčností obchodní logiky uživatelům, a to za pomoci webů, mobilních aplikací, desktopových aplikací apod. Důležitá vlastnost prezenční vrstvy je taková, že v podstatě „nic neumí“. Všechny operace obstarává mozek aplikace, tedy obchodní logika. Prezenční vrstva je pouze prostředníkem.

Business aplikace jsou ještě složitější, tento popis slouží pouze jako ilustrace toho, jak fungují.

Zjednodušené schéma malé podnikové aplikace
Obrázek č. 1: Zjednodušené schéma malé podnikové aplikace

Enterprise aplikace jsou tak velké, že tvořit je jako jednolitý program pravděpodobně skončí finanční katastrofou. Tento typ softwaru stavíme po solidních vrstvách a to tak, aby výměna jakéhokoliv modulu měla minimální dopad na celý ekosystém a zároveň jsme mohli snadno přidávat další funkčnosti.