Non sempre i livelli logici di un'applicazione Web corrispondono a locazioni fisiche sulla rete. Si va dal caso in cui tutti e tre i livelli risiedono sulla stessa macchina a varie altre distribuzioni fino alla corrispondenza di ciascun livello con una macchina fisica.
Di seguito verranno analizzati i livelli architetturali.
Livello di 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 della piattaforma client è uno dei problemi principali nella realizzazione di questo livello.
Le soluzioni vanno dalla scelta di sfruttare al massimo le capacità elaborative del client, alla realizzazione di un livello di presentazione universale.
In genere l'identificazione del contesto di esecuzione dell'applicazione contribuisce in larga parte a delineare le soluzioni da adottare nella realizzazione del livello di presentazione.
Un altro elemento da prendere in considerazione è il livello di complessità dell'interfaccia utente dell'applicazione. Il linguaggio HTML, nato per la distribuzione di documenti in ambienti distribuiti, non consente di progettare interfacce utenti molto avanzate (drag-and-drop, tree-view control, tabbed control, ecc.). Una soluzione è quella di prevedere un insieme di pagine HTML standard, arricchite da applet Java.
Livello intermedio
Il livello intermedio di un'applicazione Web contiene la 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 spesso dalle caratteristiche e dalle tecnologie supportate dal server Web e/o da componenti installati sul server applicativo. In ogni caso la funzionalità fondamentale del server Web su cui si basa l'intera applicazione è il supporto di elaborazioni.
In base alla tipologia di applicazione da sviluppare è opportuno prevedere funzionalità particolari, come ad esempio:
- gestione delle transazioni: gestione affidabile del flusso dati;
- gestione della sicurezza e della riservatezza: gestione della sicurezza nell'accesso all'applicazione e la riservatezza nella trasmissione di informazioni; la gestione della sicurezza è spesso realizzata tramite l'autenticazione della password d'utente, mentre la riservatezza si basa su protocolli ad hoc, come SSL (Secure Socket Layer) o PCT (Private Communications Technology).
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 (GCI): consente l'attivazione di un programma o di uno script su richiesta del client (portabile su qualsiasi piattaforma).
- Internet Server Application Programming Interface (ISAPI): consente l'esecuzione di una libreria dinamica (DLL) all'interno dello spazio di memoria del server Web (funziona solo su piattaforma Windows).
- Java Server Pages (JSP): consente l'interpretazione di script nell'ambiente del server Web e la creazione in modo dinamico di documenti Web (funziona solo su piattaforma e server Web Windows).
- 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 e spesso costituiscono le applicazioni preesistenti in un'azienda.
Tipici esempi di applicazioni presenti a questo livello sono:
- server dati (DBMS)
- server di mail
- 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).