Škálovateľnosť webovskej aplikácie (časť 1)

Pri písaní webovských aplikácii sa často nemyslí na základné pravidlá, ktoré
nám môžu značne uľahčiť administráciu resp. vykonávanie neskorších zmien v
našej aplikácii. A práve čas ktorý venujeme na dobré navrhnutie rozdelenia
logiky aplikácie sa nám v budúcnosti vráti ušetrením času pri vylepšovaní
aplikácie.

Škálovateľnosť je vlastne akási "znovupoužiteľnosť". To znamená, že aplikácia je rozdelená na niekoľko modulov , ktoré majú definované rozhranie. To znamená, že pri zachovaní správneho použitia rozhrania modulov môžeme vylepšovať slabé miesta modulov našej aplikácie.

Delenie aplikačnej logiky

Prvým historickým krokom bolo oddelenie dátovej a aplikačnej logiky. To znamená, že sa oddelili dáta od samotnej aplikácie. Druhým a vyspelejším (a samozrejme znalostne náročnejším) riešením je rozdelenie aplikácie na dátovú, aplikačnú a prezenčnú logiku.

Princíp rozdelenia aplikácie na dátovú a aplikačnú vrstvu

Ako už zo skúsenosti vieme, na našich ASP stránkach pracujeme s dátami v troch základných (a samozrejme od nich odvoliteľných) režimoch. Vkladanie (insert), aktualizácia (update) a mazanie (delete) . Všetky ostatné operacie sa dajú (a je to aj lepšie) zabezpečiť z prostredia databázy. To znamená, že vnútri ASP stránok uplatňujeme "iba" SQL dotazovanie. A tu je vlastne návod na oddelenie aplikačnej a dátovej logiky. Pri spojení na databázu používame uložené procedúry (stored procedures), pri nadvazovaní spojenia (otváraní objektu connection) používame reťazec uložený v Application premennej, ....

Príklad použitia v aplikácii

- V súbore GLOBAL.ASA máme premennú Application("conn_string") do ktorej vložíme reťazec, pomocou ktorého sa spojíme na databázu. Potom už v každej stránke použijeme na otvorenie spojenia premennú Application("conn_string").
- otvárame RecordSet pomocou volania uloženej procedúry s parametrami
- vykonávanie databázových operácii vykonávame pomocou uložených procedúr (neotvárame RecodSet)

Čo nám to pomôže ? Predstavme si, že príde požiadavka zákazníka zmeniť Oracle databázu na databázu SQL Server. Keďže máme oddelenú aplikačnú logiku od dátovej, pracujeme už iba na dátovej časti našej aplikácie a zvyšok ostáva nemenný. Iné by to bolo napríklad v prípade, ak by sme SQL príkazy používali vo vnútri SQL stránky. To by sme museli meniť každý SQL príkaz v ASP stránke. Samozrejme pri zmene tabuliek stačí pomeniť uložené procedúry a pre zachovaní rozhrania medzi dátovou a aplikačnou logikou, nemusíme aplikačnú časť vôbec meniť.

Na záver

Toto mal byť malý návod na čo myslieť pri tvorbe aplikácie, ktorá zodpovedá základným princípom škálovateľnosti. V druhom diele tohoto tipu si vysvetlíme princíp delenia aplikácie na aplikačnú, dátovú a prezentačnú logiku (teda vyšší stupeň škálovateľnosti), čo je zároveň momentálnym trendom smerovania webovského vývoja.

Developer,
Stiahnuté z Developer.sk