Architettura N-Tier
Nell'ingegneria del software, il termine architettura multi-tier o N-Tier indica un'architettura software in cui le varie funzionalità del software sono logicamente separate ovvero suddivise su più strati o livelli software differenti in comunicazione tra loro (nel caso di applicazioni web questi strati sono la logica di presentazione, l'elaborazione dei processi e la gestione della persistenza dei dati).
Ciascuno strato è in comunicazione diretta con quelli adiacenti ovvero richiede ed offre servizi allo strato adiacente in maniera concettualmente simile a quanto accade con le architetture di rete a strati (in linguaggio strettamente informatico si dice che ciascuno strato è client-server per gli strati adiacenti, fatta eccezione per gli strati estremi che sono solo client o solo server). Ad esempio, un'applicazione che utilizza il middleware per gestire le richieste di dati tra un utente e un database, utilizza un'architettura multi-tier. In generale i vari strati possono risiedere sulla stessa macchina oppure su macchine elaboratrici differenti mappando così il relativo sistema informatico che ospita, a livello infrastrutturale, l'applicazione. Negli anni novanta si diffuse l'architettura client-server a due livelli, mentre negli anni 2000 l'impiego più diffuso di un'architettura multi-tier è l'architettura a tre livelli.
Architettura Three-tier
Three-tier è un'architettura client-server in cui l'interfaccia utente, i processi logico funzionali ("regole aziendali"), l'archiviazione informatica dei dati e l'accesso ai dati sono sviluppate e mantenute come moduli indipendenti, la maggior parte delle volte su piattaforme separate.
Il three-tier è un modello di architettura software e allo stesso tempo uno schema di progettazione software.
Oltre ai vantaggi abituali di software modulare con interfacce ben definite, l'architettura three-tier è destinata a consentire a qualsiasi dei tre livelli di essere aggiornati o sostituiti indipendentemente dal cambiamento di requisiti o tecnologia. Ad esempio, un cambiamento di sistema operativo nel livello di presentazione interesserebbe solo il codice di interfaccia utente.
In genere, l'interfaccia utente viene eseguito su un desktop PC o workstation e utilizza un'interfaccia utente grafica standard, la logica di processo funzionale può essere costituito da uno o più moduli separati in esecuzione su una workstation o applicazioni server, e un RDBMS in un database server o mainframe contiene i dati di archiviazione logica del computer. Il livello intermedio può essere anche multi-tier(in questo caso l'architettura complessiva si chiama “n-tier architecture”).
Three-tier architecture ha i seguenti tre livelli:
- Livello di presentazione : Questo è il livello più alto dell'applicazione. Il livello di presentazione mostra le informazioni relative a servizi come merce online, acquisti, e i contenuti del carrello della spesa. Comunica con altri livelli attraverso i risultati di output al livello browser/client e tutti gli altri livelli della rete.
- Livello applicazione (business logic, la logica di primo livello, l'accesso ai dati di secondo livello, o di livello intermedio): La logica di primo livello viene tirato fuori dal livello di presentazione e, come suo proprio livello, controlla la funzionalità di un'applicazione eseguendo elaborazioni dettagliate.
- Livello dati: Questo livello è costituito da server database. Qui le informazioni vengono memorizzate e recuperate. Questo livello mantiene i dati neutrali e indipendenti da applicazioni server o da logica di business. Fornendo informazioni del proprio livello inoltre migliora la scalabilità e le prestazioni.
Sviluppo Web di utilizzo
Nel campo web development, il three-tier è spesso utilizzato per fare riferimento a websites, comunemente commercio elettronico, che sono costruiti utilizzando tre livelli:
- Un front-end web server che fornisce contenuti statici, e potenzialmente, alcuni contenuti nella cached dinamica. In applicazione web based, il front-end è il contenuto visualizzato dal browser. Il contenuto può essere statico o generato dinamicamente.
- Un medio processo di contenuti dinamici e generazione del livello di application server, per esempio Java EE, ASP.NET, PHP, Ruby, piattaforma ColdFusion.
- Un back-end database, che comprende due serie di dati e il database management system o RDBMS il software che gestisce e fornisce l'accesso ai dati.