Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

IIS6: note sull'architettura

La gestione dei processi in IIS6 e le differenze con le precedenti versioni
La gestione dei processi in IIS6 e le differenze con le precedenti versioni
Link copiato negli appunti

In questo articolo parliamo di IIS 6, la più recente versione del web server di casa Microsoft, che porta con sè diverse migliorie e cambiamenti utili sia per lo sviluppo di applicazioni ASP.NET sia per la gestione del web server stesso. Come premessa diciamo subito che IIS6 è stato totalmente riscritto e che, a differenza dei suoi predecessori, supporta nativamente ASP.NET e il NET Framework.

La prima novità di cui bisogna tener conto è legata alla sicurezza e alla sua implementazione. Nel vecchio sistema IIS5 i processi degli utenti erano gestiti con i permessi del Local System Account, adesso invece queste richieste sono soggette ai permessi del NetworkServices che possiede sicuramente permessi più limitati.

Se quando si installava IIS5 la prima preoccupazione era quella di disabilitare quelle opzioni dannose che venivano installate come configurazione standard, nel nuovo IIS6 tutte le opzioni, le estensioni e quant' altro sono disabilitate compresa l'estensione per l'esecuzione delle pagine .asp e .aspx.

La gestione dei processi

Per evitare eventuali crash di sistema, IIS5 implementava 3 differenti livelli di isolamento dei processi delle applicazioni web, tanto più elevato quanto più le applicazioni fossero state instabili.

Purtroppo questa soluzione non sempre evitava l'instabilità del server stesso e quindi anche applicazioni isolate con un livello "alto" potevano abbassare drasticamente le prestazioni del web server. Questo perchè sia la parte di amministrazione, sia quella di controllo usavano lo stesso processo usato dalle applicazioni web e quindi il malfunzionamento di una di queste parti portava al malfunzionamento di tutto il sistema.

Per capire meglio questo concetto, di seguito viene illustrata la struttura con la quale IIS6 gestisce i processi interni e le applicazioni web.

Figura 1. Struttura di IIS6
Struttura IIS6

La struttura è composta principalmente da 3 componenti, ovvero:

  • HTTP.SYS che si occupa delle richieste http,
  • WAS che monitorizza lo stato delle applicazioni
  • e il W3WP che si occupa dell' insieme delle applicazioni. Ma vediamoli singolarmente per avere un' idea più chiara.

Il primo componente, che poi non è un componente ma un driver, è HTTP.SYS. Questo driver viene usato come listner ovvero come ascoltatore delle richieste HTTP, serve per incanalare le varie richieste fatte dai client al server web. Ma la novità sta nel fatto che HTTP.SYS lavora in modalità kernel quindi questo driver ha la possibilità di interagire direttamente con l'hardware della macchina, senza dover passare la richiesta a particolari funzioni API di Windows. Si deduce che la velocità di questo driver sia notevolmente cambiata.

Le applicazioni che girano su IIS6 vengono monitorate dal WAS. Il WAS è un servizio di Windows atto a monitorare le applicazioni web e il riciclaggio delle stesse. Questo servizio lavora ad intervalli periodici, ad ogni intervallo di tempo controlla tutti i WorkProcess ed in caso di malfunzionamento di uno di essi ne segnala il guasto nel registro degli eventi di Windows e si preoccupa di deallocare e riallocare il processo senza che questo interferisca con le prestazioni del web server stesso.

A questo punto non ci resta che parlare del W3WP. Questo processo è il vecchio "dllhost.exe" che esisteva in IIS5 ed ha un solo compito, ma molto importante, ovvero, quello di monitorare le singole applicazioni web o gli ApplicationPool, cioè degli insiemi di applicazioni. Nel caso in cui una di queste applicazioni manifesti un malfunzionamento, questo processo ne provvede il riavvio senza inficiare le prestazioni delle altre applicazioni web presenti nel web server.

Ti consigliamo anche