Web server vs application server: cosa sono e le differenze

0
1117
web server e application server

In ambito informatico un software o un computer che lo ospita e che è in grado di eseguire programmi dedicati all’elaborazione di richieste HTTP provenienti dai client e che inoltre genera risposte, come le pagine web realizzate in HTML e altri oggetti analoghi viene chiamato comunemente web-server.

Un framework software che invece fornisce applicazioni a un dispositivo viene chiamato application server. Solitamente questi oggetti si trovano nelle università e negli uffici e permettono agli utenti collegati in rete di eseguire applicazioni che si trovano fisicamente collocate sulla stessa macchina.

Per via della crescita delle tecnologie Web 2.0 su Internet, molto rapidamente la linea di separazione che divide server web e application server sta diventando sempre più labile. Inoltre un server dedicato all’applicazione può venir configurato per diventare web server. Chiariamo quindi di cosa si tratta con web server vs application server.

Web server

Si tratta di un oggetto, un complesso di programmi, fnzionalità e hardware, che fornisce h24 le pagine web e fintantoché è funzionante e attivo gli utenti potranno accedere ai siti e ai contenuti web gestiti da questo dispositivo.

È quindi importante che un server web sia sempre attivo e funzionale, se non si vuole che gli utenti soffrano di scarse performance o addirittura dell’impossibilità di accedere alle risorse di cui hanno bisogno.

Esiste un parametro, il tempo di inattività, che definisce il periodo perso in attesa che una pagina web sia disponibile, oppure che le funzioni ad esso connesse si possano utilizzare.

Le più grandi società di web hosting fanno il possibile per mantenere un servizio continuativo, con infrastrutture dove i tempi di inattività sfiorano le frazioni di secondo. Si tratta spesso di una lotta fra le performance web server vs application server.

Di solito i server web per questioni di sicurezza non supportano il multithreading, inoltre non hanno pool e funzionalità di connessione, di isolamento e transazioni.

Consideriamo uno scenario per capire meglio un server web. Un utente desidera accedere a un sito utilizzando un browser sul suo PC, un software che si trova effettivamente quindi in esecuzione sulla macchina del client.

Questa richiesta viene inviata al server web che ha fisicamente le pagine in deposito sul suo disco rigido. Il servizio si premura di mandare il contenuto della pagina e gli oggetti che vengono richiesti al browser web, che provvede poi a far visualizzare all’utente.

Se server web riesce a servire rapidamente le richieste, il suo grado di efficienza può essere considerato da accettabile fino a ottimale. Ma questo servizio deve essere garantito su molteplici richieste da parte di tanti altri utenti che in uno stesso istante vogliono connettersi alla pagina.

È quindi indispensabile che il tempo che il server dedica al singolo utente sia il più breve possibile, ma al tempo stesso utilizzato in maniera ottimale, in modo tale che la percezione da parte dell’utente sia quella di continuità.

Application server

Questo può essere visto come un framework software in grado di creare un ambiente dove si possono eseguire molte applicazioni a prescindere dalla loro natura. Anche in questo caso il tempo di inattività è un parametro fondamentale, perché deve essere inferiore a una frazione di secondo.

Inoltre, di solito, gli application server supportano il multithreading con funzionalità come pool, isolamento, transazioni e pool di connessioni. Possono eseguire software differenti dipendenti a loro volta da applicativi non necessariamente preventivati. Clicca qui per approfondire le specifiche hardware di queste macchine.

Di solito utilizzano del middleware per abilitare sistemi di intercomunicazione con le applicazioni che da essi dipendono, come i server web, la gestione dei database e la grafica.

Differenze tra web server e application server

Anche se il gap web server vs application server si sta rapidamente assottigliando ci sono differenze fondamentali che rimangono.

Un server web gestisce un numero limitato di richieste mentre gli altri possono rispondere a un enorme quantità di call contemporanee. Gli application supportano sempre il multithreading e meccanismi come pool di connessioni e transazioni.

I server web sono in grado di supportare i file .War, a differenza degli application server che gestiscono sia .War che .Ear. Un’altra differenza fondamentale è che quelli per gli applicativi sono dotati di un middleware integrato che serve loro per la comunicazione con software, anche di alto livello, dei quali non si può avere una conoscenza aprioristica, a differenza di quanto accade con quelli web, che invece sono diretti.