Cos'è l'architettura three-tier?
L'architettura three-tier, che separa le applicazioni in tre tier di calcolo logici e fisici, è l'architettura software predominante per le applicazioni client-server tradizionali.
Sfondo nero e blu
Cos'è l'architettura three-tier?

L'architettura three-tier è un'architettura di applicazioni software ben consolidata  che organizza le applicazioni in tre tier di calcolo logici e fisici: il tier presentazione, o interfaccia utente, il tier applicazione, dove i dati vengono elaborati, e il tier dati, dove i dati associati all'applicazione vengono memorizzati e gestiti.

Il vantaggio principale dell'architettura three-tier è che, poiché ciascun tier viene eseguito sulla propria infrastruttura, può essere sviluppato contemporaneamente da un team di sviluppo separato e può essere aggiornato o scalato in base alle necessità senza ripercussioni sugli altri tier.

Per decenni, l'architettura three-tier è stata l'architettura prevalente per le applicazioni client-server. Oggi la maggior parte delle applicazioni three-tier è un obiettivo per la modernizzazione che utilizza tecnologie native del cloud quali container e microservizi e per la migrazione verso il cloud.

I tre tier nel dettaglio

Tier presentazione

Il tier presentazione è l'interfaccia utente ed il livello di comunicazione dell'applicazione, in cui l'utente finale interagisce con l'applicazione. Il suo scopo principale è quello di visualizzare le informazioni e raccogliere informazioni dall'utente. Questo tier di livello superiore, ad esempio, può essere eseguito su un browser web, come applicazione desktop o come GUI (Graphical User Interface). Generalmente, i tier presentazione web sono sviluppati utilizzando HTML, CSS e JavaScript. Le applicazioni desktop possono essere scritte in diversi linguaggi, a seconda della piattaforma.

Tier applicazione

Il tier applicazione, noto anche come tier logico o tier intermedio, è il cuore dell'applicazione. In questo tier, le informazioni raccolte nel tier presentazione sono elaborate - a volte in relazione ad altre informazioni contenute nel tier dati - usando la logica di business, un insieme specifico di regole di business. Il tier applicazione può anche aggiungere, eliminare o modificare i dati nel tier dati. 

Il tier applicazione è tipicamente sviluppato utilizzando Python, Java, Perl, PHP o Ruby e comunica con il tier dati tramite chiamate  API.  

Tier dati

Il tier dati, in alcuni casi chiamato tier database, tier accesso ai dati o back-end, è il punto in cui vengono archiviate e gestite le informazioni elaborate dall'applicazione. Questo può essere un sistema di gestione del database relazionale come PostgreSQL, MySQL, MariaDB, Oracle, DB2, Informix o Microsoft SQL Server o in un server del database  NoSQL come Cassandra, CouchDB o MongoDB

In un'applicazione three-tier, tutte le comunicazioni passano attraverso il tier applicazione. Il tier presentazione e il tier dati non possono comunicare direttamente tra loro.

Confronto tra tier e livello

Nelle discussioni sull'architettura three-tier, il termine  livello  è spesso usato in modo intercambiabile - ed erroneamente - al posto di  tier, come in 'livello di presentazione' o 'livello di logica di business.' 

Non sono la stessa cosa. Il termine 'livello' si riferisce ad una divisione funzionale del software, mentre il termine 'tier' si riferisce ad una divisione funzionale del software che viene eseguita su un'infrastruttura separata dalle altre divisioni. L'app Contatti del cellulare, ad esempio, è un'applicazione a  tre-livelli , ma un'applicazione a  singolo tier ,  perché tutti e tre i livelli vengono eseguiti sul cellulare.

La differenza è importante, perché i livelli non possono offrire gli stessi vantaggi dei tier.

Vantaggi dell'architettura three-tier

Il principale vantaggio dell'architettura three-tier è costituito dalla separazione logica e fisica delle funzionalità. Ogni tier può essere eseguito su un sistema operativo separato e una piattaforma server - ad esempio, server web, server delle applicazioni, server di database - che meglio si adatta ai suoi requisiti funzionali. E ogni tier viene eseguito su almeno un hardware server dedicato o su un server virtuale, quindi i servizi di ogni tier possono essere personalizzati e ottimizzati senza ripercussioni sugli altri tier. 

Altri vantaggi (rispetto all'architettura single-tier o two-tier)  comprendono:

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

  • Scalabilità migliorata: qualsiasi tier può essere scalato indipendentemente dagli altri come necessario.

  • Affidabilità migliorata: la probabilità che un'interruzione in un tier abbia impatto sulla disponibilità o sulle prestazioni degli altri tier sarà minore.

  • Sicurezza migliorata: poiché il tier presentazione e il tier dati non possono comunicare direttamente, un tier applicazione ben progettato può funzionare come una sorta di firewall interno, impedendo SQL Injection e altri exploit dannosi.
Applicazione three-tier nello sviluppo web

Nello sviluppo web, i tier hanno nomi diversi  ma eseguono funzioni simili:

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

  • Il server delle applicazioni  corrisponde al tier intermedio e ospita la logica di business utilizzata per elaborare gli input degli utenti. Continuando con l'esempio di e-commerce, questo è il tier che interroga il database dell'inventario per restituire la disponibilità del prodotto o aggiunge dettagli al profilo di un cliente. Questo livello spesso veniva sviluppato usando Python, Ruby o PHP ed esegue un framework come Django, Rails, Symphony o ASP.NET, ad esempio.

  • Il server di database  è il tier dati o backend di un'applicazione web. Viene eseguito sul software di gestione del database, come MySQL, Oracle, DB2 o PostgreSQL, ad esempio.
Altre architetture multi-tier

Mentre l'architettura three-tier è l'architettura applicativa multi-tier più adottata, esistono altre architetture che potresti incontrare nel tuo lavoro o nella tua ricerca.

Architettura two-tier 

L'architettura two-tier è l'architettura client-server originale, costituita da un tier presentazione e da un tier dati; la logica aziendale è compresa nel tier presentazione, nel tier dati oppure in entrambi. Nell'architettura two-tier, il tier di presentazione - e di conseguenza l'utente finale - ha accesso diretto al tier dati e la logica di business è spesso limitata. Una semplice applicazione di gestione dei contatti, in cui gli utenti possono inserire e richiamare i dati dei contatti, è un esempio di applicazione two-tier.  

Architettura n-tier

L'architettura n-tier - chiamata anche architettura multi-tier -  si riferisce a  qualsiasi  architettura applicativa con più di un tier. Tuttavia, le applicazioni con più di tre livelli sono rare, perché ulteriori livelli offrono pochi vantaggi e possono rendere l'applicazione più lenta, più difficile da gestire e più costosa da eseguire. Di conseguenza, i termini architettura n-tier e architettura multi-tier sono generalmente sinonimi che indicano l'architettura three-tier.

Soluzioni correlate
IBM Cloud Paks®

Passa al cloud più velocemente con le soluzioni IBM Cloud Pak® in esecuzione sul software Red Hat OpenShift — soluzioni integrate, open source, containerizzate, certificate da IBM.

Esplora IBM Cloud Paks®
IBM Cloud® for VMware Solutions

Modernizza senza soluzione di continuità i tuoi carichi di lavoro e le tue applicazioni VMware con IBM Cloud®.

Esplora IBM Cloud® for VMware Solutions
IBM Cloud Pak® for Applications

Modernizza, crea nuove applicazioni, riduci i costi e ottimizza il ROI.

Esplora IBM Cloud Pak® for Applications
Risorse Cosa si intende per modernizzazione di un'applicazione?

Scopri cos'è la modernizzazione delle applicazioni, i vantaggi e le sfide comuni e come iniziare.

Cos'è un database relazionale?

Scopri come funzionano i database relazionali e come si confrontano con altre opzioni di storage di dati.

Cosa si intende per nativo del cloud?

Esplora le applicazioni native del cloud e in che modo promuovono l'innovazione e la velocità all'interno della tua azienda.

Passa alla fase successiva

IBM Cloud® offre prodotti e servizi per aiutarti a modernizzare le tue applicazioni three-tier legacy nel tuo percorso verso il cloud.Che tu abbia bisogno di assistenza con strategia, processi o funzionalità - o desideri un servizio completo - scopri come IBM può aiutarti a eseguire la modernizzazione delle applicazioni.Inizia ad utilizzare il middleware containerizzato che può essere eseguito in qualsiasi cloud - integralmente fornito in bundle in IBM Cloud Paks®.

Scopri di più su IBM Cloud Paks®