Cos'è l'architettura a tre livelli?

Veduta aerea di Tokyo al crepuscolo

Cos'è l'architettura a tre livelli?

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.

Non perdere mai una novità tecnologica

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.

Grazie per aver effettuato l'iscrizione!

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.

I tre livelli in dettaglio

Livello di presentazione

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.

Livello di applicazione

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.

Livello dati

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.

Sviluppo di applicazioni

Sali a bordo: sviluppo di applicazioni Enterprise nel cloud

In questo video il Dr. Peter Haumer illustra l'aspetto del moderno sviluppo di applicazioni aziendali nell'hybrid cloud, mostrando diversi componenti e pratiche, tra cui IBM Z Open Editor, IBM Wazi e Zowe. 

Benefici dell'architettura a tre livelli

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:

  • Sviluppo più rapido: poiché ogni livello può essere sviluppato simultaneamente da team diversi, un'organizzazione può portare l'applicazione sul mercato più velocemente e i programmatori possono utilizzare i linguaggi e gli strumenti più recenti e migliori per ogni livello.

  • Scalabilità migliorata: ogni livello può essere scalato indipendentemente dagli altri, secondo le necessità.

  • Maggiore affidabilità: l'interruzione in un livello è meno probabile che abbia un impatto sulla disponibilità o sulle prestazioni degli altri livelli.

  • Sicurezza migliorata: poiché il livello di presentazione e il livello dati non possono comunicare direttamente, un livello di applicazione ben progettato può funzionare come un firewall, impedendo le iniezioni SQL e altri utilizzare dannosi.

Livelli contro livelli

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.

Applicazione a tre livelli nello sviluppo web

Nello sviluppo web, i livelli hanno nomi diversi ma svolgono funzioni simili:

  • Il server web è il livello di presentazione e fornisce l'interfaccia utente. Di solito si tratta di una pagina web o di un sito web, ad esempio un sito di e-commerce in cui l'utente aggiunge prodotti al carrello, aggiunge i dettagli di pagamento o crea un account. Il contenuto può essere statico o dinamico e viene sviluppato utilizzando HTML, CSS e JavaScript.

  • Il server di applicazione corrisponde al livello intermedio, ospitando la logica aziendale che viene utilizzata per elaborare gli input dell'utente. Per continuare l'esempio dell'ecommerce, questo è il livello che interroga il database dell'inventario per restituire la disponibilità dei prodotti, o aggiunge dettagli al profilo di un cliente. Questo layer è spesso sviluppato utilizzando Python, Ruby o PHP ed esegue un framework come Django, Rails, Symphony o ASP.NET.

  • Il server di database è il livello dati o backend di un'applicazione web. Funziona su software di gestione database, come MySQL, Oracle, DB2 o PostgreSQL.

Altre architetture a più livelli

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.

Architettura a due livelli

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.

Architettura N-tier

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.

Soluzioni correlate
IBM Enterprise Application Service for Java

Un servizio single-tenant completamente gestito per lo sviluppo e la distribuzione di applicazioni Java.

Esplora le applicazioni Java
Soluzioni DevOps

Utilizza il software e gli strumenti DevOps per creare, distribuire e gestire app cloud-native su più dispositivi e ambienti.

Esplora le soluzioni DevOps
Enterprise Application Development Services

Lo sviluppo di applicazioni cloud significa programmare una volta, iterare rapidamente e distribuire ovunque.

Servizi per lo sviluppo di applicazioni
Fai il passo successivo

I servizi di consulenza per lo sviluppo delle applicazioni IBM Cloud offrono consulenza esperta e soluzioni innovative per semplificare la tua strategia cloud. Collabora con gli esperti di cloud e sviluppo di IBM per modernizzare, scalare e accelerare le tue applicazioni, ottenendo risultati trasformativi per la tua azienda.

Esplora i servizi per lo sviluppo di applicazioni Inizia a creare gratuitamente con IBM Cloud