A háromszintű architektúra ( three-tier architecture , eng. three-tier ) egy szoftverkomplexum architekturális modellje , amely háromféle komponens (szintek, hivatkozások) jelenlétét feltételezi: kliens alkalmazások (amelyekkel a felhasználók dolgoznak ), alkalmazásszerverek (amelyekkel a kliens alkalmazások működnek) és az adatbázis-kiszolgálók (amelyekkel az alkalmazásszerverek működnek) [1] .
A kliens ( kliens réteg ) a végfelhasználó számára biztosított komplex (általában grafikus ) összetevője. Ez a szint nem állhat közvetlen kapcsolatban az adatbázissal (biztonsági és méretezhetőségi követelmények miatt), nem lehet betöltve a fő üzleti logikával ( méretezhetőségi követelmények esetén ), és nem tárolhatja az alkalmazás állapotát ( megbízhatósági követelmények esetén ). Általában csak a legegyszerűbb üzleti logika kerül erre a szintre: engedélyezési felület, titkosítási algoritmusok , bemeneti értékek érvényességének és formátummegfelelőségének ellenőrzése, egyszerű műveletek a terminálon már betöltött adatokkal (rendezés, csoportosítás, értékek számlálása).
Az alkalmazásszerver ( középső réteg , középső réteg ) a második szinten található, erre összpontosul az üzleti logika nagy része. Csak a kliensbe exportált töredékek (terminálok), valamint az adatbázisba merített logikai elemek (tárolt eljárások és triggerek) maradnak azon kívül. Ennek az összetevőnek a megvalósítását a köztes szoftver biztosítja . Az alkalmazásszervereket úgy tervezték, hogy további példányok hozzáadása biztosítja a szoftvercsomag teljesítményének vízszintes skálázását , és nincs szükség az alkalmazás kódjának módosítására.
Az adatbázis-kiszolgáló ( adatréteg ) adattárolást biztosít, és külön szintre kerül, rendszerint adatbázis-kezelő rendszerekkel valósítják meg, ehhez a komponenshez csak az alkalmazásszerver szintjéről biztosítanak kapcsolatot.
A legegyszerűbb konfigurációkban az összes komponens, vagy azok egy része kombinálható egy számítási csomóponton. A produktív konfigurációkban általában egy dedikált számítási csomópontot használnak az adatbázis-kiszolgálóhoz vagy adatbázis-kiszolgálók fürtjéhez , az alkalmazáskiszolgálókhoz pedig a számítási csomópontok dedikált csoportját, amelyekhez az ügyfelek (terminálok) közvetlenül csatlakoznak.
A kétszintű kliens-szerver architektúrához vagy a fájl-szerver architektúrához képest a háromrétegű architektúra általában nagyobb skálázhatóságot biztosít (az alkalmazásszerver vízszintes skálázhatósága és a kapcsolat multiplexelés miatt), nagyobb konfigurálhatóságot (a a szintek egymástól való elszigetelése). A webböngészőből vagy vékony kliensből elérhető alkalmazások megvalósítása általában egy szoftvercsomag háromszintű architektúrában történő telepítését jelenti. Ugyanakkor a háromszintű szoftverrendszerek fejlesztése általában nehezebb, mint a kétszintűek esetében, és a további köztes szoftverek jelenléte többletköltséget jelenthet az ilyen komplexumok adminisztrációjában .