Che cos'è l'architettura Multitier?
Nell'informatica, "architettura a più livelli" è un termine applicato a una disposizione di componenti o software in cui le diverse funzioni richieste per completare un'operazione sono segmentate in divisioni fisiche o logiche separate. Ciascuno dei segmenti dell'architettura più grande è responsabile dell'esecuzione di un determinato tipo di attività ed è per lo più ignaro del funzionamento interno dei segmenti circostanti che svolgono attività diverse. Le divisioni più comuni e più basilari utilizzate nell'architettura a più livelli sono i livelli di presentazione, logica e dati. La presentazione è responsabile solo per la visualizzazione di informazioni a un utente e il livello dati è responsabile solo per l'archiviazione o il recupero dei dati, mentre il livello logico collega i due, applicando la logica del programma all'input dell'utente dalla presentazione e dando senso alle informazioni dal livello dati . I sistemi informatici di grandi dimensioni utilizzano un'architettura a più livelli perché astraggono i diversi punti di esecuzione del flusso di controllo, consentendo di targetizzare diversi componenti precisi per aggiornamenti, test o debug lasciando intatti i restanti moduli.
L'architettura a più livelli può anche essere definita architettura a più livelli, anche se c'è una differenza. Nella maggior parte dei casi, l'uso del termine "architettura a più livelli" implica che i componenti separati di un sistema si trovano effettivamente su hardware o server fisicamente diversi, mentre un sistema a strati potrebbe implementare solo applicazioni diverse in esecuzione nello stesso spazio fisico. Tuttavia, non tutti i sistemi a più livelli utilizzano hardware separato; possono invece separare le funzioni solo attraverso divisioni logiche, come partizioni diverse su un singolo disco.
La maggior parte dell'architettura a più livelli ha tre livelli distinti, sebbene possano esserci più livelli, a seconda delle esigenze o della configurazione di un sistema. Il primo livello è noto come livello di presentazione ed è responsabile della visualizzazione delle informazioni che gli vengono passate, oltre a fornire agli utenti un modo per fornire input, più comunemente attraverso un'interfaccia utente grafica (GUI). Il livello di presentazione si collega al livello logico, che è l'area in cui viene valutato l'input dell'utente, i dati vengono recuperati dal livello di dati e vengono eseguiti elaborazioni o calcoli specifici. Il livello logico è più o meno quello che tradizionalmente viene considerato come un'applicazione standard per computer, sebbene non abbia funzionalità per la visualizzazione diretta dell'output e nessun modo per ricevere direttamente l'input da un utente.
Il livello dati è responsabile solo della scrittura e della lettura dei dati e può assumere la forma di una matrice di dischi o di un sistema di gestione di database relazionali (RDBMS). Sebbene il livello dati sia responsabile della gestione dell'archiviazione e del recupero dei dati in un'impostazione di architettura a più livelli, non è a conoscenza del contesto dei dati e si occupa solo di record o funzioni di input e output del disco. Una caratteristica che definisce i livelli nell'architettura a più livelli è che nessun segmento supera i limiti delle attività che è stato specificato, quindi nessuna logica di business o funzionalità di dati è disponibile nel livello di presentazione e il livello di logica non può scrivere file direttamente o direttamente accedere alla GUI attraverso la quale l'utente sta lavorando. Tutte le interazioni avvengono attraverso comunicazioni in stile client-server, con ogni livello che serve in qualche modo sia come client che come server, a seconda dell'interazione che sta avvenendo.
Uno dei motivi per cui una grande rete di computer potrebbe utilizzare un sistema a più livelli è perché ogni passaggio necessario nel flusso di lavoro è modulare e può essere gestito indipendentemente dalle altre parti. Ciò significa che i terminali o la GUI utilizzati dagli utenti possono essere modificati senza richiedere modifiche alla logica o ai livelli di dati. Allo stesso modo, l'RDBMS o le unità di archiviazione fisiche possono essere modificate senza influire su nient'altro. Questa modularità è molto difficile, se non impossibile, da ottenere con un sistema a livello singolo in cui tutti gli aspetti sono saldati in un'unica applicazione compilata.