L’applicazione Web, per funzionare correttamente, ha quindi bisogno di un Server Web, di un Personal Computer con browser Internet e della rete Internet.
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.
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.
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:
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.
I browser e i Server Web comunicano attraverso il protocollo HTTP (HyperText Transfer Protocol), che realizza lo scambio di informazioni in quattro fasi:
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.
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.
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.
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:
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:
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
Nasce l’Osservatorio del Nordest sull’economia dell’Innovazione Nim, (Numbers Innovation Motion) è un progetto di Galileo Visionary District realizzato in collaborazione…
ASKtoAI lancia le innovative funzionalità Memory e Personality, strumenti d'avanguardia per la creazione di contenuti digitali che promettono di migliorare…
Discuss , la piattaforma leader appositamente creata per trasformare le esperienze in insight, ha potenziato le sue capacità di scalare la…
Con le festività che si avvicinano rapidamente, Blue Lake Packaging è entusiasta di offrire un'alternativa ecologica al nastro da imballaggio…
Netlogistik , leader in potenti servizi che guidano le aziende verso la trasformazione digitale della catena di fornitura, ha recentemente tenuto…
Annuncia una soluzione integrata che combina FPGA di Lattice a bassa potenza e bassa latenza con la piattaforma NVIDIA Orin…
Con un successo clamoroso, il Textile Export Promotion Project (TEPP), guidato dalla Taiwan Textile Federation nel 2023, ha messo in…
Lattice presenta i nuovi FPGA mid-range Lattice Avant-G e Lattice Avant-X, stack di soluzioni specifiche per le applicazioni ampliate e…
Innovazione per i professionisti della gestione della conoscenza e dell'innovazione (KM&I). Nel settore legale è ora disponibile un riferimento completo…
La Eclipse Foundation , una delle più grandi fondazioni di software open source al mondo, ha annunciato oggi la formazione dell'Eclipse…