Cos'è un diagramma di architettura di sistema per applicazioni web?
Anche se quanto segue non è una rappresentazione perfetta dell'architettura di sistema in questione, e nonostante l'esistenza di altre architetture, ho usato il seguente diagramma in passato per spiegare i livelli tipici dell'architettura di un'applicazione web.
Questa architettura supporta MVC, che definisco di seguito secondo una vecchia slide di un corso di formazione sulle applicazioni web che facevo:
dove la stratificazione dell'architettura corrisponde sostanzialmente a MVC come segue:
Anche se le slide e così via usate in questa risposta riguardano applicazioni web basate su Java, i concetti sono generici.
Un'architettura più recente è l'uso di microservizi dove l'architettura di un'applicazione è suddivisa in un insieme di servizi, come segue:
Dove ogni servizio ha un insieme ristretto e focalizzato di responsabilità, e sono esposti indipendentemente sotto forma di API accessibili a distanza, per esempio REST, consumati usando protocolli come HTTP.
Un servizio di shopping online potrebbe avere microservizi separati per gli account utente, il catalogo prodotti, la manutenzione del carrello e l'elaborazione degli ordini.
Il framework Spring Boot è progettato per questo tipo di implementazione.