Middleware är benämningen på den mjukvara som hanterar utbytet mellan presentationlager, tjänstelager och informationslager i en flerlagersarkitektur. I en klassisk tvålagersarkitektur placeras affärslogiken i huvudsak på klienten. Denna fokus på klienter har gett upphov till uttrycket "feta" klienter.

I en mer modern flerlagersarkitektur placeras affärslogiken emellertid i ett separat lager mellan presentations- och informationslager. Detta gör det möjligt att placera applikationerna på en server istället för på klienten. Således konstruerar man "tunna" klienter.

 

Hur jämför sig 2-lager med flerlager? 2-lager   flerlager
Systemadministration: komplex(mer administration av logik på klienten) mindre komplex(administrationen centrerad till servern)
Säkerhet: låg hög
Datainkapsling: låg(exponerade datatabeller) hög(klienten anropar tjänster och metoder)
Prestanda: låg(många SQL anrop trafikerar nätverket) hög(endast tjänsteanrop och svar går mellan klient och server)
Skalbarhet: dålig(begränsad styrning av klienters kommunikations-förbindelser) utmärkt(kan fördela arbetsbördan på multipla servrar)
Enkelhet att utveckla: god blir bättre(klienter skapas med standardverktyg och verktygen för applikationsutveckling blir fler)
Server till server koppling: nej ja(via middleware)
Stödjer Internet: dåligt(bandbreddsgränser gör det svårare att ladda ned feta klienter och bedriva intensiv trafik) utmärkt(tunna klienter är lättare att ladda ned som applets eller beans; tjänsteanrop fördelar arbetsbördan till servern)
Stöd för heterogena databaser: nej ja(flerlagersapplikationer kan använda multipla databaser i samma affärstransaktion)
Arkitekturmässig flexibilitet: begränsad(klient och server) utmärkt(alla lager må existera på samma dator, tjänste- och informations- lagret må existera på samma dator; tjänste lagrets komponenter kan också distribueras på flera servrar)
Tillgänglighet: dålig(kan inte omdirigeras till en backup server) utmärkt(kan omstarta tjänstelagrets komponenter på backup servrar)