Applikationsarkitektur är den organisatoriska designen av en hel mjukvaruapplikation, inklusive alla underkomponenter och externa applikationsutbyten. Det finns flera designmönster som används för att definiera denna typ av arkitektur, och dessa mönster hjälper till att kommunicera hur en applikation kommer att slutföra de nödvändiga affärsprocesserna som definieras i systemkraven.
En mjukvaruapplikation är ett system utformat för att automatisera specifika uppgifter på ett logiskt sätt för att tillgodose en uppsättning krav. Den förlitar sig på underliggande operativsystem och databaser för att lagra och utföra uppgifter i applikationen. Applikationsarkitekturen är ritningen som definierar hur programmet kommer att interagera med servrar och komponenter inom applikationslagrens domäner.
Med expansionen av interoperabilitet inom mjukvara har modulära komponenter skapats som specialiserar sig på specifika områden av affärsprocesser inom en applikation. Arkitekturen definierar alla komponenter i designen och hur de kommer att kommunicera i applikationen. Denna definition inkluderar alla lager i en applikation.
Det finns tre huvudområden för kontroll inom alla applikationer: presentationslagret, affärslagret och dataåtkomstlagret. Varje domän inom en applikation har ett specifikt ansvar som, när den förenas med de andra lagren, uppfyller de underliggande affärskraven för en applikation.
Applikationsarkitekturen används som en ritning för att säkerställa att de underliggande modulerna i en applikation kommer att stödja framtida tillväxt. Tillväxt kan komma inom områdena framtida interoperabilitet, ökat resursbehov eller ökade krav på tillförlitlighet. Med en färdig arkitektur förstår intressenterna komplexiteten hos de underliggande komponenterna om förändringar skulle bli nödvändiga i framtiden.
Med skapandet av avancerad objektorienterad programmering har den organisatoriska designen blivit en viktig komponent för att definiera hur en applikation ska fungera. Detta beror på den omfattande användningen av N-Tier-applikationer i de flesta företag. N-Tier-applikationer möjliggör distribution av underkomponenter eller moduler över flera servrar inom ett företag.
När man definierar en applikations arkitektur är det också viktigt att definiera applikationsserverns arkitektur. Denna serverarkitektur överlagrar hårdvarudesignen som kommer att underlätta distributionen av programvarukomponenterna. Bra applikationsserverarkitekturer bör stödja både horisontella och vertikala tillväxtparadigm.
Applikationstjänstarkitekturen definierar hur applikationen kommer att göra viktiga affärskomponenter tillgängliga för andra moduler i en applikation. Med definitionen av tillgängliga gränssnitt förstås interoperabilitet mellan applikationslagren bättre av intressenter inom organisationen.