Delphi - Multi-tier alkalmazásfejlesztés MIDAS komponensekkel

Multi-tier 1. rész

Ettől a héttől kezdve új cikksorozatot indítunk, melyben 13 részen keresztül mutatjuk be a többrétegű (multi-tier) alkalmazás fejlesztés fortélyait. Ehhez elengedhetetlen lesz a MIDAS palettán lévő komponensek ismerete, így cikkről-cikkre sorra vesszük ezeket is. A többrétegű (multi-tier) adatbázisstruktúra rövid áttekintése

A többrétegű (multi-tier) adatbázisok általában három, vagy több réteget tartalmaznak. Ezek elhelyezkedhetnek külön-külön gépeken is, de ez nem feltétlenül követelmény, vagyis az összes réteg akár egy gépen is lehet.

Az egyes rétegek általában a következő munkamegosztás szerint épülnek fel:

1. réteg: Adatbázisszerver

Ez végzi az adatok tárolását és a közvetlen adatfeldolgozást. Ez azt jelenti, hogy az adatbázisszerverhez a klienstől (a középső rétegen keresztül) csak a kérés érkezik be, és az adatok konkrét kezelését, leválogatását a szerver végzi el, majd a kért, rendszerezett adatok utaznak csak vissza (szintén a középső rétegen keresztül) a klienshez.
Így a hálózati adatforgalom a minimálisra csökkenthető, mert nem történik teljes
adatállományok "utaztatása" a hálózaton.

A külön adatbázisszerver-réteg másik előnye az, hogy - mivel itt általában SQL adatbázisokról van szó (esetünkben InterBase) -, ezért már maga az adatbázis is rendelkezik bizonyos programrészek tárolásának lehetőségével triggerek és tárolt eljárások formájában.
Ezek az SQL adatbázis részei, és lehetővé teszik, hogy bizonyos funkciókat, ellenőrzéseket már az adatbázis szintjén meghatározzunk. Ha például egy triggerbe valamilyen adatellenőrzést építünk be, akkor ez a triggerhez rendelt esemény bekövetkezésekor mindig lefut, és ezt sehonnan sem lehet kikerülni, sem a középső rétegből, sem a kliensrétegből.
A tárolt eljárásoknál is hasonló a helyzet, ugyanis elérhető velük az, hogy a táblák és nézetek közvetlen elérését csak a tárolt eljárásokon keresztül engedélyezzük, közvetlenül nem.
Így az adatvédelem és a hozzáférési jogosultságok egyszerűen kezelhetők.

2. réteg: Alkalmazáslogika

Általánosságban elmondható, hogy a középső réteg adatszolgáltatóként működik, vagyis biztosítja az adatbázisszerver által szolgáltatott adatok kliens-oldali elérhetőségét. Ebben a rétegben kap helyet az alkalmazáslogika, amely tartalmazza azokat az eljárásokat, amelyeket az adatbázis szintjén nem tudtunk lekódolni. Ugyanazt a középső réteget megosztottan több kliens is használhatja.

3. réteg: Kliens alkalmazás

A többrétegű alkalmazások nagy előnye, hogy a kliens alkalmazást thin (sovány) kliensként valósíthatjuk meg, amely nem igényli, hogy a kliens alkalmazást futtató gépen is telepítve legyen a BDE (Borland Database Engine), helyette - mint azt majd később látni fogjuk - egy másik szoftverkomponenst kell telepíteni.
Másik előnye a sovány kliensnek az, hogy az alkalmazáslogika a középső rétegben van, ezért az adatok védelme - akár az integritás, akár az illetéktelen felhasználás tekintetében - biztonságosan megoldható, mert az adatokat és a jogosultságokat nem a kliensalkalmazásban ellenőrizzük, hanem egyrészt az adatbázisszerveren, másrészt a középső rétegben.


A multi-tier architektúra további tulajdonságait részletesebben tárgyaljuk majd a következő cikkekben, a konkrét példák kapcsán.

A MIDAS technológia ismertetése


A cikk bevezető részében ismertetett multi-tier technológia megvalósításához a Delphi egy igen hatékony, könnyen kezelhető technológiát biztosít a MIDAS-technológia "személyében".

MIDAS: Multi-tiered Distributed Application Services (többrétegű, elosztott alkalmazás szolgáltatások).
(Itt megjegyezném, hogy a névben szereplő "distributed" szó "elszórt"-nak is fordítható, tehát itt nem annyira a hagyományos értelemben vett osztott ADATBÁZIS-architektúráról - vagyis az adatbázis tábláinak térbeni elosztottságáról - van szó, mint inkább az ALKALMAZÁSOK térbeni elosztottságáról, valamint platformfüggetlenségéről.)

A Midas-alkalmazások telepítése, szükséges szerver- és kliensoldali szoftverkomponensek

A Midas-alkalmazások futtatásához mind a szerver-, mind a kliensgépre telepíteni kell a MIDAS.DLL-t és regisztrálni a Windows alá. A szervergépen szükség lesz még az STDVCL40.DLL-re is.


Ezek a Windows\System\ könyvtárba kerülnek, telepítésüket pedig automatikusan elvégzi az InstallShield Express, az alkalmazásunk telepítésével együtt. Ha elkészült alkalmazásunkat nem InstallShield Express- szel végezzük, akkor lehetőségünk van a két DLL manuális regisztrációjára a REGSVR32.EXE segédprogram segítségével. Ezt szintén a Windows\System\ könyvtárban találhatjuk. (Ha ezt próbaképpen, parancssor- paraméterek nélkül elindítjuk, akkor egy hibaüzenettel együtt visszakapjuk a szerver regisztrációjához szükséges paramétereket.)


A későbbiekben ismertetetésre kerülő adatbázis kapcsolatok kezeléséhez (TSocketConnection, TWebConnection, TDCOMConnection) még szükségünk lesz egyéb szoftverkomponensek telepítésére is, valamint DCOM-szerver regisztrálására is. Ezeket a következő részekben, az éppen bemutatásra kerülő adatbázis-kapcsolattal együtt mindig feltüntetjük, és leírjuk - amennyiben szükséges - telepítésük módját is.




Multi-tier cikksorozat