L’architettura a tre livelli, che separa le applicazioni in tre livelli di calcolo logico e fisico, è l’architettura software predominante per le applicazioni client-server tradizionali.

Cos’è l’architettura a tre livelli?,

L’architettura a tre livelli è un’architettura di applicazioni software consolidata che organizza le applicazioni in tre livelli di calcolo logico e fisico: il livello di presentazione o interfaccia utente; il livello di applicazione, in cui i dati vengono elaborati; e il livello di dati, in cui i dati associati all’applicazione vengono archiviati e gestiti.

Il vantaggio principale dell’architettura a tre livelli è che, poiché ogni livello viene eseguito sulla propria infrastruttura, ogni livello può essere sviluppato simultaneamente da un team di sviluppo separato e può essere aggiornato o scalato secondo necessità senza influire sugli altri livelli.,

Per decenni l’architettura a tre livelli è stata l’architettura prevalente per le applicazioni client-server. Oggi, la maggior parte delle applicazioni a tre livelli sono obiettivi per la modernizzazione, utilizzando tecnologie native per il cloud come contenitori e microservizi, e per la migrazione al cloud.

I tre livelli in dettaglio

Livello di presentazione

Il livello di presentazione è l’interfaccia utente e il livello di comunicazione dell’applicazione, in cui l’utente finale interagisce con l’applicazione. Il suo scopo principale è quello di visualizzare informazioni e raccogliere informazioni dall’utente., Questo livello superiore può essere eseguito su un browser Web, come applicazione desktop o un’interfaccia utente grafica (GUI), ad esempio. I livelli di presentazione Web sono generalmente sviluppati utilizzando HTML, CSS e JavaScript. Le applicazioni desktop possono essere scritte in una varietà di lingue a seconda della piattaforma.

Livello applicazione

Il livello 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, a volte rispetto ad altre informazioni nel livello di dati, utilizzando business logic, un insieme specifico di regole aziendali. Il livello applicazione può anche aggiungere, eliminare o modificare i dati nel livello dati.

Il livello di applicazione è in genere sviluppato utilizzando Python, Java, Perl, PHP o Ruby, e comunica con il livello di dati utilizzando le chiamate API.

Data tier

Il data tier, talvolta chiamato database tier, data access tier o back-end, è il luogo in cui le informazioni elaborate dall’applicazione vengono archiviate e gestite., Questo può essere un sistema di gestione di database relazionali come PostgreSQL, MySQL, MariaDB, Oracle, DB2, Informix o Microsoft SQL Server, o in un server di database NoSQL come Cassandra, CouchDB o MongoDB.

In un’applicazione a tre livelli, tutte le comunicazioni passano attraverso il livello dell’applicazione. Il livello di presentazione e il livello di dati non possono comunicare direttamente tra loro.

Tier vs. layer

Nelle discussioni sull’architettura a tre livelli, layer è spesso usato in modo intercambiabile-ed erroneamente – per tier, come in ‘presentation layer’ o ‘business logic layer.,’

Non sono uguali. Un “livello” si riferisce a una divisione funzionale del software, ma un “livello” si riferisce a una divisione funzionale del software che gira su un’infrastruttura separata dalle altre divisioni. L’app Contatti sul telefono, ad esempio, è un’applicazione a tre livelli, ma un’applicazione a livello singolo, poiché tutti e tre i livelli vengono eseguiti sul telefono.

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

Vantaggi dell’architettura a tre livelli

Ancora una volta, il vantaggio principale 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 delle applicazioni, server di database-che meglio si adatta ai suoi requisiti funzionali. E ogni livello viene eseguito su almeno un hardware server dedicato o server virtuale, in modo che i servizi di ogni livello possono essere personalizzati e ottimizzati senza impatto gli altri livelli.,

Altri vantaggi (rispetto all’architettura a livello singolo o a due livelli) includono:

  • Sviluppo più veloce: 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: qualsiasi livello può essere scalato indipendentemente dagli altri secondo necessità.
  • Affidabilità migliorata: un’interruzione in un livello ha meno probabilità di influire sulla disponibilità o sulle prestazioni degli altri livelli.,
  • Maggiore sicurezza: poiché il livello di presentazione e il livello di dati non possono comunicare direttamente, un livello di applicazione ben progettato può funzionare come una sorta di firewall interno, impedendo iniezioni SQL e altri exploit dannosi.

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 dettagli di pagamento o crea un account. Il contenuto può essere statico o dinamico, e di solito è sviluppato utilizzando HTML, CSS e Javascript .
  • Il server delle applicazioni corrisponde al livello intermedio, ospitando la logica di business utilizzata per elaborare gli input dell’utente. Per continuare l’esempio di e-commerce, questo è il livello che interroga il database dell’inventario per restituire la disponibilità del prodotto o aggiunge dettagli al profilo di un cliente., Questo strato spesso sviluppato utilizzando Python, Ruby o PHP ed esegue un framework come e Django, Rails, Symphony o ASP.NET, per esempio.
  • Il server di database è il livello di dati o backend di un’applicazione Web. Funziona su software di gestione di database, come MySQL, Oracle, DB2 o PostgreSQL, per esempio.

Altre architetture multilivello

Mentre l’architettura a tre livelli è facilmente l’architettura applicativa multilivello più ampiamente adottata, 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, costituita da un livello di presentazione e un livello di dati; la logica di business vive nel livello di presentazione, nel livello di dati o in entrambi. Nell’architettura a due livelli il livello di presentazione – e di conseguenza l’utente finale-ha accesso diretto al livello di dati e la logica di business è spesso limitata. Una semplice applicazione di gestione dei contatti, in cui gli utenti possono inserire e recuperare i dati di contatto, è un esempio di un’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 livelli sono rare, perché i livelli aggiuntivi offrono pochi vantaggi e possono rendere l’applicazione più lenta, più difficile da gestire e più costosa da eseguire. Di conseguenza, l’architettura n-tier e l’architettura multi-tier sono solitamente sinonimi di architettura a tre livelli.,

Architettura a tre livelli e IBM Cloud

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

Fai il primo passo:

  • Se hai bisogno di assistenza con la strategia, i processi o le funzionalità—o vuoi un’attenzione completa-esplora come IBM può aiutare con la modernizzazione delle applicazioni.
  • Iniziare a utilizzare middleware containerizzato che può essere eseguito in qualsiasi cloud-tutto in bundle in IBM Cloud Paks.
  • Migrare facilmente i carichi di lavoro VMware esistenti nel cloud pubblico utilizzando le soluzioni IBM Cloud for VMware.,
  • Pianifica ed esegui le tue strategie di modernizzazione delle applicazioni come parte della trasformazione digitale in corso con l’aiuto dei servizi di modernizzazione delle applicazioni di IBM.

Inizia oggi con un account IBM Cloud.