L'architettura a tre livelli è un'architettura software ben affermata che organizza le applicazioni in tre livelli logici e fisici di calcolo: il livello di presentazione, o interfaccia utente; il livello applicativo, dove vengono elaborati i dati; e il livello dati, dove i dati applicativi sono memorizzati e gestiti.
Il principale beneficio dell'architettura a tre livelli è che, poiché ogni livello funziona sulla propria infrastruttura, ogni livello può essere sviluppato simultaneamente da un team di sviluppo separato. E può essere aggiornato o scalato in base alle esigenze senza impattare sugli altri livelli.
Per decenni l'architettura a tre livelli è stata la tipologia prevalente per le applicazioni client-server. Oggi, la maggior parte delle applicazioni a tre livelli sono obiettivi di modernizzazione che utilizza tecnologie cloud-native come container e microservizi e per migrazione al cloud.
Newsletter di ricerca
Scopri le ricerche emergenti in materia di AI, informatica quantistica, hybrid cloud e altro dagli esperti IBM con la newsletter mensile Future Forward. Leggi l'Informativa sulla privacy IBM.
L'abbonamento sarà fornito in lingua inglese. Troverai un link per annullare l'iscrizione in tutte le newsletter. Puoi gestire i tuoi abbonamenti o annullarli qui. Per ulteriori informazioni, consulta l'Informativa sulla privacy IBM.
Il livello di presentazione è l'interfaccia utente e il livello di comunicazione dell'applicazione, dove l'utente finale interagisce con l'applicazione. Il suo scopo principale è mostrare informazioni all'utente e raccoglierle. Questo livello superiore può essere eseguito su un browser web, come applicazione desktop o come interfaccia utente grafica (GUI), ad esempio. I livelli di presentazione web sono sviluppati utilizzando HTML, CSS e JavaScript. Le applicazioni desktop possono essere scritte in diverse lingue, a seconda della piattaforma.
Il livello dell'applicazione, noto anche come livello logico o livello intermedio, è il cuore dell'applicazione. In questo livello, le informazioni raccolte nel livello di presentazione vengono elaborate (talvolta rispetto ad altre informazioni del livello dati) utilizzando la logica di business, un insieme specifico di business rules. Il livello di applicazione può anche aggiungere, eliminare o modificare dati nel livello di dati.
Il livello applicazione è in genere sviluppato utilizzando Python, Perl, PHP o Ruby, e comunica con il livello dati mediante chiamate API.
Il livello dati, talvolta chiamato livello database, livello di accesso ai dati o back-end, è il luogo in cui vengono memorizzate e gestite le informazioni elaborate dall'applicazione. Questo può essere un sistema di gestione di database relazionale come PostgreSQL, MySQL, MariaDB, Oracle, Db2, Informix o Microsoft SQL Server, oppure in un server di database NoSQL come Cassandra, CouchDB o MongoDB.
In un'applicazione a tre livelli, tutte le comunicazioni passano attraverso il livello applicativo. I livelli di presentazione e di dati non possono comunicare direttamente tra loro.
Anche in questo caso, il principale beneficio dell'architettura a tre livelli è la separazione logica e fisica delle funzionalità. Ogni livello può essere eseguito su un sistema operativo e una piattaforma server separati (ad esempio, server web, server di applicazioni, server di database) che si adattano meglio ai suoi requisiti funzionali. Inoltre, ogni livello funziona su almeno un server hardware o server virtuale dedicato, così i servizi di ogni livello possono essere personalizzati e ottimizzati senza influenzare gli altri.
Altri benefici (rispetto all'architettura a uno o due livelli) includono:
Nelle discussioni sull'architettura a tre livelli, il livello (layer) viene spesso utilizzato in modo intercambiabile (ed errato) per il livello (tier), come nel caso di "layer di presentazione" o "layer logico aziendale".
Tuttavia, non sono uguali. Un "layer" si riferisce a una divisione funzionale del software, mentre un "tier" si riferisce a una divisione funzionale del software che viene eseguita su un'infrastruttura separata dalle altre divisioni. L'app Contatti sul tuo telefono, ad esempio, è un'applicazione a tre layer, ma a tier singolo, perché tutti e tre i livelli girano sul tuo telefono.
La differenza è importante perché i layer non possono offrire gli stessi benefici dei tier.
Nello sviluppo web, i livelli hanno nomi diversi ma svolgono funzioni simili:
Sebbene l'architettura a tre livelli sia facilmente l'architettura applicativa multi-tier più diffusa, ce ne sono altre che potresti incontrare nel tuo lavoro o nella tua ricerca.
L'architettura a due livelli è l'architettura client-server originale, composta da un livello di presentazione e un livello dati. La logica di business vive nel livello di presentazione, nel livello dati o in entrambi. Nell'architettura a due livelli, il livello di presentazione (e quindi l'utente finale) ha accesso diretto al livello di dati, e la logica di business è spesso limitata. Una semplice applicazione di gestione dei contatti, dove gli utenti possono inserire e recuperare dati di contatto, è un esempio di applicazione a due livelli.
L'architettura N-tier, chiamata anche architettura multi-tier, si riferisce a qualsiasi architettura di applicazione con più di un livello. Ma le applicazioni con più di tre strati sono rare perché gli strati aggiuntivi offrono pochi benefici e possono rendere l'applicazione più lenta, più difficile da gestire e più costosa da eseguire. Di conseguenza, architettura N-tier e architettura multi-tier sono solitamente sinonimi di architettura a tre livelli.
Un servizio single-tenant completamente gestito per lo sviluppo e la distribuzione di applicazioni Java.
Utilizza il software e gli strumenti DevOps per creare, distribuire e gestire app cloud-native su più dispositivi e ambienti.
Lo sviluppo di applicazioni cloud significa programmare una volta, iterare rapidamente e distribuire ovunque.