Architettura three-tier

menu icon

Architettura three-tier

L'architettura three-tier (a tre strati), che separa le applicazioni in tre tier di calcolo logici e fisici, è l'architettura software predominante per le applicazioni client-server tradizionali.

Cos'è l'architettura three-tier?

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

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 effetti sugli altri tier.

Per decenni, l'architettura three-tier è stata l'architettura prevalente per le applicazioni client-server. Oggi, la maggior parte delle applicazioni a tre tier rappresentano obiettivi per la modernizzazione, utilizzando tecnologie native per il cloud come contenitori e microservizi, e per la migrazione verso il cloud.

Architettura three-tier nel dettaglio

Tier di presentazione

Il tier di 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 di presentazione web sono sviluppati utilizzando HTML, CSS e JavaScript. Le applicazioni desktop possono essere scritte in diversi linguaggi, a seconda della piattaforma.

Tier dell'applicazione

Il tier dell'applicazione, noto anche come tier logico o tier intermedio, è il cuore dell'applicazione. In questo tier, le informazioni raccolte nel tier di presentazione vengono elaborate - a volte rispetto ad altre informazioni nel tier dei dati - utilizzando la logica aziendale, una serie specifica di regole aziendali. Il tier dell'applicazione può anche aggiungere, eliminare o modificare i dati nel tier dei dati.

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

Tier dei dati

Il tier dei dati, in alcuni casi chiamato tier del database, tier di 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 dell'applicazione. Il tier di presentazione e il tier dei dati non possono comunicare direttamente tra loro.

Confronto tra tier e livello

Nelle discussioni sull'architettura three-tier, il termine livello viene spesso utilizzato in modo intercambiabile - e erroneamente - per tier, come in 'livello di presentazione' o 'livello di logica aziendale'. 

I concetti sono differenti. 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 telefono, ad esempio, è un'applicazione a tre livelli, ma un'applicazione a singolo tier, poiché tutti e tre i livelli vengono eseguiti sul telefono.

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 e una piattaforma server separati - ad esempio, server web, server delle applicazioni, server di database - che meglio si adattano ai relativi requisiti funzionali. E ogni tier viene eseguito su almeno un hardware server dedicato o server virtuale, quindi i servizi di ogni tier possono essere personalizzati e ottimizzati senza effetti sugli altri tier. 

Altri vantaggi (rispetto all'architettura a singolo o a due tier) comprendono:

  • Sviluppo più veloce: 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 in base alle necessità.
  • Massima affidabilità: un'interruzione in un tier avrà meno probabilità di avere impatto sulla disponibilità o sulle prestazioni degli altri tier.
  • Sicurezza migliorata: poiché il tier di presentazione e il tier dei dati non riescono a comunicare direttamente, un tier dell'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 livello di 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, 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 un 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 e Django, Rails, Symphony o ASP.NET, ad esempio.
  • Il server database è il tier di 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 di presentazione e da un tier dei dati; la logica aziendale è compresa nel tier di presentazione, nel tier dei dati o in entrambi. Nell'architettura two-tier, il tier di presentazione - e di conseguenza l'utente finale - ha accesso diretto al tier dei dati e la logica aziendale è 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 - fa riferimento 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.

Architettura three-tier e IBM Cloud

IBM Cloud offre prodotti e servizi per aiutarti a modernizzare le tue applicazioni three-tier legacy nel tuo percorso verso il cloud.

Fai il primo passo:

  • Che tu abbia bisogno di assistenza con strategia, processi o funzionalità - o desideri attenzione per tutto il servizio - scopri come IBM può aiutarti a eseguire la modernizzazione delle applicazioni.
  • Inizia ad utilizzare il middleware containerizzato che può essere eseguito in qualsiasi cloud - fornito in bundle in IBM Cloud Pak.
  • Migra facilmente i carichi di lavoro VMWare esistenti nel cloud pubblico utilizzando IBM Cloud for VMware Solutions.
  • Pianifica ed esegui le tue strategie di modernizzazione delle applicazioni nell'ambito della tua trasformazione digitale in corso con l'aiuto dei servizi di modernizzazione delle applicazioni di IBM.

Inizia con un Account IBM Cloud oggi stesso.