Three-tier architecture ( three-tier architecture , eng. three-tier ) är en arkitektonisk modell av ett mjukvarukomplex som förutsätter närvaron av tre typer av komponenter (nivåer, länkar): klientapplikationer (med vilka användare arbetar ), applikationsservrar (med vilka klientapplikationer fungerar) och databasservrar (med vilka applikationsservrar fungerar) [1] .
Klienten ( klientskiktet ) är en komponent av komplexet (vanligtvis grafiskt ) som tillhandahålls till slutanvändaren. Den här nivån ska inte ha direkta kopplingar till databasen (för säkerhets- och skalbarhetskrav), laddas med den huvudsakliga affärslogiken (för skalbarhetskrav ) och lagra applikationstillståndet (för tillförlitlighetskrav ). Endast den enklaste affärslogiken tas vanligtvis till denna nivå: auktoriseringsgränssnitt , krypteringsalgoritmer , kontroll av indatavärden för giltighet och formatöverensstämmelse, enkla operationer med data (sortering, gruppering, räkningsvärden) som redan är laddade på terminalen.
Applikationsservern ( mellanlager , mellanlager ) ligger på andra nivån, det mesta av affärslogiken är koncentrerad på den. Endast fragment som exporteras till klienten (terminaler), såväl som logiska element nedsänkta i databasen (lagrade procedurer och utlösare) förblir utanför den. Implementeringen av denna komponent tillhandahålls av mellanvaran . Applikationsservrarna är utformade på ett sådant sätt att ytterligare instanser till dem säkerställer horisontell skalning av mjukvarupaketets prestanda och inte kräver ändringar av applikationskoden.
Databasservern ( datalagret ) tillhandahåller datalagring och placeras på en separat nivå, implementerad, som regel, med hjälp av databashanteringssystem , anslutning till denna komponent tillhandahålls endast från applikationsservernivån.
I de enklaste konfigurationerna kan alla komponenter eller några av dem kombineras på en datornod. I produktiva konfigurationer används som regel en dedikerad beräkningsnod för databasservern eller ett kluster av databasservrar, för applikationsservrar, en dedikerad grupp beräkningsnoder till vilka klienter (terminaler) är direkt anslutna.
Jämfört med en tvåskikts klient-serverarkitektur eller en filserverarkitektur ger en treskiktsarkitektur i regel större skalbarhet (på grund av applikationsserverns horisontella skalbarhet och anslutningsmultiplex), större konfigurerbarhet (pga. isolering av nivåer från varandra). Implementeringen av applikationer som är tillgängliga från en webbläsare eller från en tunn klient involverar som regel distribution av ett mjukvarupaket i en arkitektur i tre nivåer. Samtidigt är utvecklingen av mjukvarusystem i tre nivåer vanligtvis svårare än för tvåstegssystem, och närvaron av ytterligare mellanprogram kan medföra extra kostnader för administrationen av sådana komplex.