Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 65 di 68
  • livello ninja
Indice lezioni

Progettazione Multitier, verso il paradigma MVC

I principi utili allo sviluppo di web application performanti
I principi utili allo sviluppo di web application performanti
Link copiato negli appunti

Della progettazione multi-tier (multilivello), si discute non solo nei contesti dell'informatica applicata al web ma a tutti, anche quelli delle applicazioni tradizionali. Dall'evidenziare i limiti delle applicazioni legacy costruite con un approccio monolitico, si capisce l'esigenza di dividere logiche concettualmente diverse tra loro. Il dinamismo del web ha ancor più questa necessità in quanto è prassi comune cambiare il look dei siti web e implementare nuove funzioni. Una progettazione su un solo livello rende altamente complicato apportare le modifiche, in quanto il codice che dovrebbe occuparsi della presentazione è interlacciato al codice che rappresenta le funzioni del sistema (logica di business) e a quello che rappresenta le funzioni di persistenza dei dati (logica di persistenza).

Portare la progettazione dei sistemi su più livelli, concettualmente diversi tra loro, rende il lavoro molto meno duro e l'implementazione molto celere e meno soggetta ad errori. La modifica di un livello non influenzerà assolutamente i livelli intermedi, con un evidente vantaggio rispetto alle applicazioni su un solo livello logico.

L'astrazione a tre livelli è quella più comunemente adottata poiché scinde nei tre livelli più direttamente demarcabili la progettazione e l'implementazione del sistema. Portando la discussione sui sistemi web based, e senza ledere alla generalità, tale modello di programmazione prevede il livello di presentazione, quello di business e quello di persistenza.

Le funzionalità che il livello presentazione deve offrire sono molto vicine al classico HTML. Infatti, la sua funzione è quella di predisporre la corretta visualizzazione delle pagine web, in base a ciò che è espresso nel livello funzionale, quello che elabora i contenuti dinamici da presentare all'utente finale. La progettazione di questo livello dipende dalle funzioni che devono essere implementate dal sistema web. Il fatto di essere indipendente dal resto del sistema consente una sua progettazione che tenga conto di elementi propri di questo contesto, che sono di natura prettamente grafica e di design. Sarà altresì semplice modificare l'interfaccia grafica, in quanto, tale modifica non influenzerà il funzionamento della logica applicativa sottostante, né tantomeno, quella di persistenza.

Il livello Business è quello che realmente determina la potenzialità del sistema. In esso è predisposta la logica applicativa affinché determinate funzioni vengano portate a compimento. Il suo utilizzo avviene dal livello di presentazione, al quale deve restituire delle informazioni consone alla particolare funzione richiesta. In alcuni casi, la logica applicativa funziona da sé, in altri (più spesso), ha necessità di utilizzare dei dati presenti in un database recuperandoli dal livello sottostante, quello di persistenza. La progettazione di questo livello è quella probabilmente più importante, nel senso che essa rappresenta in maniera definitiva le funzioni del sistema web, e quindi il loro utilizzo dall'utente finale. La modifica di questo livello non determina cambiamenti nei livelli adiacenti. Importante sarà aderire alle funzioni che sono state previste e quindi prevedere il ritorno di valori che il livello di presentazione si aspetta.

Il livello di persistenza rappresenta in maniera definitiva il modo in cui i dati vengono memorizzati su un supporto fisico persistente. Non importa se la memorizzazione avviene su un database, sul file system o seguendo altre logiche. L'importante sarà predisporre delle funzioni standard utilizzabili dal livello di business. Si tratterà di operazioni di lettura o scrittura precedute (eventualmente) da una forma di autenticazione.

Il modello multi-tier per poter funzionare deve essere in grado di legare tali livelli in un'unica applicazione che riesca in qualche modo a far comunicare la presentazione con le funzioni di business, e queste ultime con il livello di persistenza.

I classici server che avevano lo scopo di fornire ai client una serie di pagine web su loro richiesta, si trasformano in web server, applicazioni predisposte a ricevere richieste dinamiche, a elaborarne il contenuto (seguendo la trafila presentazione - business - persistenza) e a presentarlo all'utente finale.

Ti consigliamo anche