martedì 22 novembre 2011

Interview question: differenza tra architettura a 2 tier e achitettura a 3 tier

Partiamo col dire che quando si parla di tier la ment va subito a un'applicazione di tipo client-server. Per spiegare la differenza tra queste due architetture partiamo da un esempio.

Supponiamo di voler scrivere un programma che permetta in una scuola agli studenti di sapere la media dei voti nelle diverse materie. Il programma è strutturato in modo che i voti degli alunni siano memorizzati nel database che risiede sul server, mentre l'applicazione che permette di accedere ai voti e alla media risiede lato client. Quando gli studenti vogliono sapere la media dei loro voti utilizzano il programma (cliccando sui pulsanti, aprendo le fineste ecc.) inviando cosi una query al database che risiede sul server. Il database risponderà con i dati richiesti e l'applicazione calcolerà cosi la media. 
Questo è un esempio di architettura a 2 tier. I 2 tier sono:
  1. Data server, dove girà il database contenente le informazioni
  2. L'applicazione client
Questa architettura va bene se la scuola avesse solo una cinquantina di studenti. Ma supponiamo che la scuola abbia 10000 studenti. Ora la situazione inizia a farsi più problematica...
Ogni volta che uno studente, attraverso l'applicazione client, effettua una query il data server dovrà gestire questa query. Questo diventa un enorme lavoro per una risorsa di rete.
Per ovviare a tale problema si utilizza l'architettura a 3 tier, inserendo un altro programma a livello server, chiamato server application. In questo modo l'applicazione client non farà più riferimento al database ma passerà prima attraverso l'application server che poi girerà le queries al database.
Ora ogni studente per sapere la sua media dovrà eseguire i seguenti passi:
  1. Lo studente interroga l'applicazione client
  2. L'applicazione client interroga l'applicazione server
  3. L'applicazione server effettua la query sul data server
  4. Il data server restituisce un recordset contenente i voti dello studente
  5. L'applicazione server effettuerà tutti i calcoli per determinare la media
  6. L'applicazione server restituisce la media calcolata all'applicazione client
  7. L'applicazione client mostra la media allo studente
Anche se il processo sembra più lungo su carta, in realtà è molto più veloce. Questo perchè al paso 6 all'applicazione client non viene più resitutito un recordset (che generà un grande ammontare di traffico di rete) ma solo un semplice numero!



Ovviamente esistono altri vantaggi di un'architettura a 3 tier ma in questo articolo ho solo voluto dare un'idea generale sulle 2 architetture.


Questo articolo prende spunto principalmente da link


Nessun commento:

Posta un commento