Cosa sono le Applicazioni WEB, caratteristiche e funzionamento

applicazioni web

Quando si parla di Applicazione Web si intende un’applicazione o un programma che risiede in un Server Web, e alla quale si accede tramite un browser Internet o un altro programma con funzioni di navigazione operante secondo gli standard del World Wide Web.

L’applicazione Web, per funzionare correttamente, ha quindi bisogno di un Server Web, di un Personal Computer con browser Internet e della rete Internet.

Il Web

La rete Internet può essere definita come una federazione di reti che comunicano attraverso lo stesso insieme di protocolli. Ciascun nodo (PC o più in generale calcolatore) della rete Internet è identificato da un indirizzo numerico (denominato indirizzo IP); a ciascun nodo è associato anche un nome simbolico utilizzato nelle applicazioni per
far riferimento al nodo stesso (dominio). Attraverso questa struttura ad indirizzi, l’utente può far riferimento a
qualunque nodo di cui conosca l’indirizzo.
Una caratteristica fondamentale di tutte le applicazioni che operano sulla rete Internet è l’utilizzo del paradigma client/server: i client (dove risiede il browser) gestiscono l’interazione con l’utente e i server (dove risiede il Server Web) eseguono le operazioni richieste, fornendo ai client le risposte appropriate.
Il servizio Web è basato su particolari nodi presenti nella rete che rendono disponibili le informazioni in essi contenute sotto forma di pagine ipertestuali, contenenti documenti. Essendo le informazioni contenute in pagine ipertestuali, e generalizzando il concetto di ipertesto, la stessa tecnica vista per un solo documento può essere utilizzata per correlare documenti diversi, predisposti da persone diverse in momenti diversi.

World Wide Web

Considerando la struttura della rete Internet, l’insieme dei documenti che costituiscono l’ipermedia può essere distribuito su nodi diversi. Possiamo quindi considerare il World Wide Web come un ipertesto multimediale distribuito, con componenti autonomi.

Oltre alle caratteristiche statiche che permettono di accedere a documenti multimediali memorizzati in opportuni file, il Web offre la possibilità di generare dinamicamente nuove pagine sulla base dei parametri ricevuti e delle elaborazioni effettuate dall’utente.
Il Web è nato come interfaccia per l’accesso ad informazioni distribuite organizzate in ipertesti, ma è ben presto diventato una piattaforma generale per applicazioni e sistemi informativi di ogni genere, aventi in comune il solo fatto di essere accessibili, direttamente o indirettamente, attraverso un browser.
L’uso di applicativi in Internet è un uso interattivo e richiede da parte dell’utente l’utilizzo di un browser grazie al quale egli è in grado di interagire con la rete stessa.

Protocolli

Le applicazioni distribuite richiedono l’interazione tra due o più processi, e se i processi risiedono su macchine host diverse occorrono dei protocolli di comunicazione tra di loro.
In Internet viene usata la suite di protocolli TCP/IP e dai protocolli di livello applicativo. Quando due processi entrano in comunicazione grazie ai protocolli, si dice che tra i due processi esiste un’associazione.
In una associazione, una estremità è definita dalla terna di parametri rappresentati da indirizzo IP, tipo
di trasporto e numero di porta. L’associazione tra due processi è definita dalle sue due estremità.
Gli applicativi operano di solito secondo il modello Client/Server: per Client si intende il processo
che effettua una richiesta al Server, mentre il Server è il processo che soddisfa la richiesta.
Soddisfare la richiesta di un client è un’operazione che può avvenire con i seguenti step:

  • il Client invia un messaggio che contiene una richiesta completamente formulata;
  • il Server la elabora e risponde con un messaggio contenente una risposta completa;
  • la transazione è conclusa;

in questo modello, il protocollo applicativo utilizzato è definito di tipo Richiesta/Risposta.
Questo schema elaborativo si adatta bene ad una comunicazione di tipo connectionless, cioè priva di una connessione stabilita e con un flusso continuo di informazioni tra due computer. Spesso però l’interazione tra Client e Server è più complessa ed implica un dialogo costituito da messaggi che si
alternano nei due versi fino alla conclusione della transazione. In tal caso si parla di connection oriented, nel quale il chiamante è sempre il Client e il chiamato è sempre il Server.

Hyper Text Transfer Protocol

I browser e i Server Web comunicano attraverso il protocollo HTTP (HyperText Transfer Protocol), che realizza lo scambio di informazioni in quattro fasi:

  • Richiesta di connessione: il browser contatta il server HTTP, con l’indirizzo e il protocollo indicati
    nella URL (Uniform Resource Identifier), al fine di verificarne la correttezza e la disponibilità.
  • Accettazione della connessione: il server, se disponibile, risponde e viene instaurata la connessione
    TCP con il client.
  • Richiesta: il client invia al server HTTP un messaggio con la richiesta di un servizio, i dettagli della
    risorsa ed eventuali parametri.
  • Risposta: il server comunica il client l’esito della richiesta e i risultati, preceduti da informazioni sul
    tipo degli stessi; il server chiude la connessione, senza tenere memoria delle operazioni svolte.
http web client web server

Il protocollo HTTP non ha memoria, e quindi nel caso di operazioni multiple il server non è in grado di
mantenere informazioni, sulle operazioni già effettuate e sul loro esito. Questo rende più semplice il
protocollo, ma rappresenta una limitazione in quanto rende difficile realizzare procedure con interazioni molteplici in ambiente concorrente.
Possiamo però superare questa limitazione scambiando ripetutamente informazioni fra browser e server, con l’obiettivo di mantenere la sessione di lavoro. In alternativa è possibile utilizzare i cookies.
Nelle applicazioni Web, l’HTML viene utilizzato comunemente per rappresentare gli elementi dell’interfaccia. Il supporto dei linguaggi di script lato client (Javascript/JScript, VBScript), e il supporto di componenti COM, consente di combinare testo statico ed elementi dinamici per fornire all’utente un’esperienza più interattiva e per realizzare applicazioni più performanti e complesse.

I Vantaggi delle applicazioni Web

Un’applicazione Web si basa su elementi software standard, indipendenti dalle caratteristiche della particolare applicazione e dalla piattaforma software e hardware su cui viene eseguita.
Nella maggior parte dei casi, un’applicazione Web si sviluppa su tre livelli (applicazione three tier): livello di presentazione, intermedio e dati; in alcuni casi si possono avere applicazioni multilivello (o multi tier).
Non sempre i livelli logici di un’applicazione Web corrispondono a locazioni fisiche sulla rete; infatti si possono avere casi in cui tutti e tre i livelli risiedono sulla stessa macchina fino ad arrivare alla corrispondenza di ciascun livello con una macchina fisica.

Livello Presentazione

Il livello di presentazione costituisce l’interfaccia utente dell’applicazione Web e corrisponde a quello che, nelle applicazioni client/server standard, è il client. Esso è costituito da vari componenti combinati tra loro: browser, documenti HTML, applet Java, controlli ActiveX. La capacità di utilizzo di questi elementi da parte del client è uno dei problemi principali nella realizzazione di questo livello.

Livello Intermedio

Il livello intermedio di un’applicazione Web corrisponde alla logica elaborativa dell’applicazione: esso è in grado di soddisfare le richieste di dati e di elaborazione del client. Le modalità di realizzazione del livello intermedio dipendono dalle caratteristiche e dalle tecnologie supportate dal server Web e/o dai componenti installati sul server applicativo. In funzione della tipologia di applicazione da sviluppare, è possibile dover prevedere funzionalità particolari, quali la gestione delle transazioni per il flusso affidabile dei dati o la gestione della sicurezza nell’accesso all’applicazione e della riservatezza nella trasmissione delle informazioni. Il livello intermedio di un’applicazione Web può essere costituito da un insieme di script, componenti e programmi interagenti tra di loro e con il server Web tramite le seguenti tecnologie:

  • Common Gateway Interface (CGI): consente l’attivazione di un programma su richiesta del client (portabile su qualsiasi applicazione).
  • Internet Server Application Interface (ISAPI): consente l’esecuzione di una libreria dinamica (DLL) all’interno dello spazio di memoria del server Web (funziona solo su piattaforma Windows).
  • Active Server Pages (ASP) : consente l’interpretazione di script nell’ambiente del server Web e la creazione in modo dinamico di documenti Web (sviluppato soprattutto per piattaforma e server Web Windows).
  • PHP: consente l’interpretazione di script nell’ambiente del server Web e la creazione in modo dinamico di documenti Web (sviluppato soprattutto per piattaforma Unix/Linux e server Web Apache).
  • Java Servlet: consente di eseguire classi Java su richiesta del client (portabile su qualsiasi piattaforma).

Livello dati

Il livello dati fornisce servizi non direttamente disponibili tramite il Server Web; questi servizi sono generalmente forniti da applicazioni indipendenti dall’ambiente Web. Tipici esempi di applicazioni presenti a questo livello sono:

  • Server dati (DBMS).
  • Server di mail (POP, SMTP).
  • Server di documentazione elettronica.

In genere è opportuno prevedere dei componenti dell’architettura dell’applicazione che fungono da connettori tra il livello intermedio e il livello dati; infatti, utilizzando dei connettori per l’interazione con applicazioni esterne non standard, si facilita la manutenibilità nel caso in cui queste vengano modificate o sostituite (es. ODBC, OLEDB, JDBC).

In un sistema basato sul Web, le applicazioni vengono eseguite all’interno di un browser che inoltra le richieste ai server Web utilizzando un protocollo detto HTTP (HyperText Trasfer Protocol). Il livello di presentazione di un’applicazione basata sul Web viene creato per mezzo di HTML (HyperText Markup Language).

Ercole Palmeri: Innovation addicted

Autore