Arhitectura aplicației este proiectarea organizațională a unei întregi aplicații software, inclusiv toate subcomponentele și schimburile de aplicații externe. Există mai multe modele de proiectare care sunt utilizate pentru a defini acest tip de arhitectură, iar aceste modele ajută la comunicarea modului în care o aplicație va finaliza procesele de afaceri necesare, așa cum sunt definite în cerințele de sistem.
O aplicație software este un sistem conceput pentru a automatiza sarcini specifice într-o manieră logică pentru a satisface un set de cerințe. Se bazează pe sistemele de operare și bazele de date subiacente pentru a stoca și a efectua sarcini în cadrul aplicației. Arhitectura aplicației este modelul care definește modul în care programul va interacționa cu serverele și componentele din domeniile straturilor de aplicație.
Odată cu extinderea interoperabilității în cadrul software-ului, au fost create componente modulare care se specializează în domenii specifice ale proceselor de afaceri din cadrul unei aplicații. Arhitectura definește toate componentele din design și modul în care acestea vor comunica în cadrul aplicației. Această definiție include toate straturile unei aplicații.
Există trei domenii principale de control în cadrul tuturor aplicațiilor: stratul de prezentare, stratul de afaceri și stratul de acces la date. Fiecare domeniu dintr-o aplicație are o responsabilitate specifică care, atunci când este unită cu celelalte straturi, satisface cerințele de afaceri de bază ale unei aplicații.
Arhitectura aplicației este folosită ca model pentru a se asigura că modulele de bază ale unei aplicații vor sprijini creșterea viitoare. Creșterea poate veni în domeniile interoperabilității viitoare, cererii crescute de resurse sau cerințelor de fiabilitate crescute. Cu o arhitectură completă, părțile interesate înțeleg complexitățile componentelor subiacente în cazul în care sunt necesare schimbări în viitor.
Odată cu crearea programării avansate orientate pe obiecte, designul organizațional a devenit o componentă vitală în definirea modului în care va funcționa o aplicație. Acest lucru se datorează utilizării pe scară largă a aplicațiilor N-Tier în majoritatea întreprinderilor. Aplicațiile N-Tier permit implementarea sub-componentelor sau modulelor pe mai multe servere dintr-o întreprindere.
Atunci când definiți arhitectura unei aplicații, este de asemenea important să definiți arhitectura serverului de aplicații. Această arhitectură de server se suprapune designului hardware care va facilita implementarea componentelor software. Arhitecturile bune de server de aplicații ar trebui să accepte atât paradigmele de creștere orizontală, cât și verticală.
Arhitectura serviciului de aplicație definește modul în care aplicația va pune la dispoziție componentele cheie de afaceri pentru alte module din cadrul unei aplicații. Cu definiția interfețelor disponibile, interoperabilitatea dintre straturile de aplicație este mai bine înțeleasă de părțile interesate din cadrul organizației.