Web Server vs Application Server

Web Server

“Un web server (o server web) è un’applicazione software che, in esecuzione su un server, è in grado di gestire le richieste di trasferimento di pagine web di un client, tipicamente un web browser.
La comunicazione tra server e client avviene tramite il protocollo HTTP, che utilizza la porta TCP 80 (o 8080), o eventualmente la versione sicura HTTPS, che utilizza invece la 443.
Su un server web risiedono dunque i siti web tramite hosting.
L’insieme di tutti i web server interconnessi a livello mondiale dà vita al World Wide Web.

Teoricamente un qualsiasi dispositivo per cui sia disponibile qualche software che agisca come server web può diventare un server web, ma solitamente i dispositivi che ospitano server web sono sistemi hardware dedicati e ottimizzati a tale scopo.
Ad esempio si può installare un server web su un normale PC allo scopo di testare in locale un insieme di pagine web oppure per consentire l’accesso ai propri documenti da altri client host, sia in rete locale, sia via Internet.”

Fonte: Wikipedia

web-server_vs_application-server

Quando però si ha a che fare con pagine web più sofisticate e non semplicemente vetrina, che implicano richieste di processi di memoria, calcoli che poi devono rendere un risultato. Ad esempio un programma in Java, a cui fai fare dei calcoli dandogli in input i parametri degli utenti per poi leggere l’output, è un processo che appesantisce molto la macchina del server (pensiamo al fatto che il server può essere contattato da migliaia di client diversi contemporaneamente).

Sul finire degli anni ’90 Java ha creato una serie di tecnologie per rispondere a questa esigenza. Ha inventato degli standard per andare a gestire la comunicazione in rete e delle classi Java che vanno a modellare tutto: i Servlet.

Servlet

“In informatica, nell’ambito della programmazione Web, i servlet sono oggetti scritti in linguaggio Java che operano all’interno di un server web (es. Tomcat, Jetty) oppure un server per applicazioni (es. WildFly, GlassFish) permettendo la creazione di applicazioni web (elaborazione lato server).
Il nome deriva in contrapposizione alle Java applet, piccoli programmi scritti in linguaggio Java che si eseguono all’interno del browser dell’utente client (elaborazione lato client).

L’uso più frequente delle servlet è la generazione di pagine web dinamiche a seconda dei parametri di richiesta inviati dal client browser dell’utente al server. Negli ultimi anni non viene eseguita la programmazione diretta delle servlet, ma si preferisce usare dei framework web che implementano la specifica servlet, oppure delle JavaServer Pages (JSP) he vengono poi tradotte (compilate) in servlet a runtime.”

Fonte wikipedia

In breve sono programmi Java già pronti caricati nella ram, non devono essere lanciati nel sistema operativo (come si faceva in quel periodo) e di conseguenza sono molto più leggeri. Ovviamente necessitano di un software per coordinare tutto: l’arrivo delle richieste web, bisogna eseguire questo codice Java, può esserci bisogno di parlare con un database… per fare questo anziché i tradizionali web server, sono stati creati gli application server.

Application Server

Un application server è un software, che è in grado di eseguire applicazioni web java, per intenderci quelle applicazioni con estensione war.

Con tale software, generalmente eseguito su un pc di tecnologia server, è possibile effettuare l’upload di più applicazioni war e gestirne le proprietà di ognuna attraverso il suo pannello di controllo gestibile da remoto via web.

Un application server dispone di componenti che consentono ad un’applicazione di lavorare facilmente con lo standard HTTP.

JAVA STANDARD

JRE_JDK

JAKARTA EE (JAVA ENTERPRISE EDITION)

Una serie di tecnologie che permettono di gestire lo sviluppo di applicazioni web. Che rispettano certi standard e protocolli e sono stati creati anche software che fanno questo.

Su cosa girano le applicazioni JAVA EE? Ovviamente su dei application server Java  (GlassFish, WildFly).

JAVAEE

 

In generale il Web Server di base ascolta le richieste sulla porta http, vede che il client vuole chiamare una pagina, controlla se esiste e la restituisce.

Application Server ti permette anche di gestire le Servlet, le connessioni con il DB, gestisce le JSP (Java Server Pages permettono di scrivere in Java delle pagine html).

Web Services: una macchina che fornisce dati ad un altra macchina. Dato che in questo caso sono due servizi che parlano tra di loro ma non c’è nessun client tra loro, è inutile avere la formattazione. Dunque anziché fornire pagine html formattate, restituisce solo dati tramite JSON, XML che poi possono essere utilizzate all’interno dell’applicazione web.

 

 

Un pensiero su “Web Server vs Application Server

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *