Le moderne applicazioni REST sono architettura a 3 livelli o architettura a 4 livelli?
Attualmente sto imparando UML e Deployment/Component Diagrams e desidero modellare la mia applicazione esistente in un'architettura a 3 o 4 livelli. La mia app ha le seguenti istanze:
- Applicazione angolare
- Applicazione Java Spring Boot come servizio Web REST
- Banca dati
Tutte e tre le istanze possono essere distribuite su server diversi. Nella mia mente, questa è un'architettura a 3 livelli. Ma ora sono confuso, perché non sono sicuro che il client con il browser Web sia il quarto livello della mia architettura. Il browser Web e l'applicazione angolare possono trovarsi nel livello di presentazione, in questo modo:

Sto pensando e sono confuso su questo, perché in questo post:
Va bene usare il diagramma dei componenti UML per un'architettura a 3 livelli?
riassume l'applicazione e il browser nel livello di presentazione.
EDIT: ecco come lo realizzerei come un diagramma di distribuzione dell'architettura a 4 livelli:

Risposte
La tua applicazione ha un'architettura a 3 livelli. Il browser è semplicemente un ambiente di esecuzione che esegue parte del codice dell'applicazione front-end.
L'applicazione front-end è suddivisa tra la distribuzione sul server web (come minimo, che ospita i file statici che compongono il tuo front-end anche se (perché stai usando angolare) non sta facendo altro) e il browser web.
L'API è il secondo livello. La tua app angolare si sta connettendo a questo per richiamare la logica e accedere ai dati.
Il database è il terzo livello.
Vorrei andare con il tuo diagramma in alto, ma mettere la tua app angolare nidificata all'interno del browser.