Architektura aplikacji to projekt organizacyjny całej aplikacji, w tym wszystkich podkomponentów i wymian aplikacji zewnętrznych. Istnieje kilka wzorców projektowych, które są używane do definiowania tego typu architektury, a wzorce te pomagają zakomunikować, w jaki sposób aplikacja będzie realizować niezbędne procesy biznesowe określone w wymaganiach systemowych.
Aplikacja to system zaprojektowany do automatyzacji określonych zadań w logiczny sposób, aby spełnić zestaw wymagań. Opiera się na podstawowych systemach operacyjnych i bazach danych do przechowywania i wykonywania zadań w aplikacji. Architektura aplikacji to plan, który definiuje sposób interakcji programu z serwerami i komponentami w domenach warstw aplikacji.
Wraz z rozszerzeniem interoperacyjności w obrębie oprogramowania stworzono modułowe komponenty, które specjalizują się w określonych obszarach procesów biznesowych w aplikacji. Architektura definiuje wszystkie komponenty w projekcie i sposób, w jaki będą się komunikować w aplikacji. Ta definicja obejmuje wszystkie warstwy aplikacji.
We wszystkich aplikacjach istnieją trzy główne obszary kontroli: warstwa prezentacji, warstwa biznesowa i warstwa dostępu do danych. Każda domena w aplikacji ma określoną odpowiedzialność, która po połączeniu z innymi warstwami spełnia podstawowe wymagania biznesowe aplikacji.
Architektura aplikacji jest używana jako plan, aby zapewnić, że podstawowe moduły aplikacji będą wspierać przyszły rozwój. Wzrost może nastąpić w obszarach przyszłej interoperacyjności, zwiększonego zapotrzebowania na zasoby lub zwiększonych wymagań dotyczących niezawodności. Dzięki ukończonej architekturze interesariusze rozumieją złożoność podstawowych komponentów, jeśli w przyszłości będą konieczne zmiany.
Wraz z tworzeniem zaawansowanego programowania obiektowego, projekt organizacyjny stał się istotnym elementem określania sposobu funkcjonowania aplikacji. Wynika to z szerokiego wykorzystania aplikacji N-Tier w większości przedsiębiorstw. Aplikacje N-Tier umożliwiają wdrażanie podkomponentów lub modułów na wielu serwerach w przedsiębiorstwie.
Podczas definiowania architektury aplikacji ważne jest również zdefiniowanie architektury serwera aplikacji. Ta architektura serwera nakłada się na projekt sprzętu, który ułatwi wdrażanie składników oprogramowania. Dobre architektury serwerów aplikacji powinny obsługiwać zarówno poziomy, jak i pionowe paradygmaty wzrostu.
Architektura usługi aplikacji definiuje sposób, w jaki aplikacja będzie udostępniać kluczowe komponenty biznesowe innym modułom w aplikacji. Dzięki dostępnym definicjom interfejsów interoperacyjność między warstwami aplikacji jest lepiej rozumiana przez interesariuszy w organizacji.