# Server per applicazioni web

In informatica un server per applicazioni web è una tipologia server che permette ad uno sviluppatore di creare applicazioni web utilizzando comuni linguaggi di programmazione, fornendo anche tutta una serie di altri servizi come la possibilità di usare modelli predefiniti (template), un modello coerente per la sicurezza, la persistenza dei dati, le sessioni e altre funzionalità utili nella creazione di un'applicazione web.

## Vantaggi nell'uso di un Web Application Server (Server per Applicazioni Web)

Per scrivere un'applicazione web anche di moderate dimensioni, di norma è una buona idea cominciare il progetto utilizzando una piattaforma software per l'esecuzione di applicazioni web (salvo nel caso in cui le esigenze siano estremamente particolari).
Un Server di Applicazioni fornisce un ambiente di esecuzione per l'applicativo che avrete creato, normalmente usando un linguaggio di scripting come PHP o ASP o un linguaggio più evoluto come Java. Viene fornito un supporto alla concorrenza (indispensabile per le applicazioni Web), meccanismi di sicurezza, modalità di accesso ai dati uniformi per le diverse applicazioni ecc...

## Servizi tipici di un server per applicazioni

Molti server per applicazioni contemplano alcuni dei seguenti servizi.

### Presentazione di Contenuto Dinamico

È possibile calibrare la presentazione del sito web in funzione degli utenti che lo visitano e fornire agli utenti la possibilità di eseguire ricerche. I server di applicazioni consentono di generare contenuto dinamico. Inoltre, generalmente sono corredati da strumenti per la personalizzazione, per l'integrazione con basi di dati, per l'indicizzazione dei contenuti e la ricerca.

### Manutenzione al sito web

Un piccolo sito web è facile da mantenere, ma un sito web che serve migliaia di documenti, immagini e file richiede strumenti di gestione importanti. È utile potere organizzare i dati del sito, la logica e la presentazione da un unico punto di accesso. Un server di applicazioni generalmente può aiutare a gestire i contenuti e la presentazione in questa modalità.

### Creare un sistema di gestione dei contenuti

Una nuova tipologia di applicazioni, i sistemi di gestione dei contenuti consente agli editori tecnicamente non esperti di creare e mantenere aggiornati i contenuti per un sito web. Un server di applicazioni fornisce gli strumenti con i quali è possibile costruire un sistema di gestione dei contenuti.

### Creare un'applicazione di Commercio Elettronico

I server di applicazioni offrono un ambiente all'interno del quale è possibile progettare sofisticate applicazioni di commercio elettronico.

### Controllare le responsabilità dei contributori

Quando si ha a che fare con più utenti, la sicurezza diventa importante. È importante essere in grado di delegare i compiti con sicurezza a diverse classi di utenti del sistema. Per esempio, le persone del dipartimento di ingegneria possono avere la necessità di gestire le loro pagine web e i loro programmi, i grafici invece possono voler modificare i loro modelli di impaginazione, mentre gli amministratori della base di dati possono interagire con il modo in cui le interrogazioni vengono eseguite. I server di applicazioni web tipicamente mettono a disposizione un meccanismo per il controllo degli accessi e per l'assegnamento delle varie mansioni ai gruppi di lavoro, comunemente sotto forma di login o logout.

### Fornire servizi di rete

Un sito web abilitato a servizi di rete dovrà sapere come far fronte alle richieste di altri programmi per computer. Per esempio, nel caso di un sito web di notizie, si potrebbe voler condividerle con un altro sito web; questo si può ottenere facendo sì che la notizia alimenti un servizio di rete. I server di applicazioni sono nati per offrire metodi con i quali si abilitano questo genere di servizi di rete.

### Integrare diversi sistemi

I contenuti possono essere memorizzati in molti posti: in basi di dati relazionali, in file, in siti web distinti e così via. I server di applicazioni tipicamente permettono di presentare una visione unificata dei dati integrando differenti sistemi di terze parti.

### Fornire Scalabilità

I server per applicazioni web consentono alle applicazioni web di essere suddivise su più di un sistema potendo gestire così il carico causate dalle richieste al vostro sito web.

## Esempi di server per applicazioni web

* Internet Information Services
* Apache Tomcat
* WebSphere
* JBoss
* Oracle WebLogic Server
* GlassFish
* Zope
* Geronimo