Architettura applicazione Web-based

Architettura applicazione Web-based

Le applicazioni web, ormai parte integrante della nostra vita quotidiana, si basano su un’architettura ben definita composta da diversi livelli che lavorano in sinergia per offrire un’esperienza utente fluida e funzionale.

Analogie e differenze con le applicazioni client/server tradizionali:

Come le loro controparti client/server tradizionali, le applicazioni web sfruttano il modello “richiesta-risposta” per la comunicazione tra client e server. Tuttavia, a differenza delle applicazioni client/server in cui il client è installato direttamente sul dispositivo dell’utente, le applicazioni web vengono eseguite all’interno di un browser web, eliminando la necessità di installazioni e semplificando la distribuzione.

I tre livelli fondamentali di un’applicazione web:

  1. Livello di presentazione: Il primo livello che entra in contatto con l’utente, si occupa di gestire l’interfaccia utente (UI) e di tradurre le interazioni dell’utente in richieste comprensibili dal server. Questo livello è tipicamente implementato utilizzando linguaggi di markup come HTML e CSS, e linguaggi di scripting lato client come JavaScript.

  2. Livello intermedio (o di business logic): Il “motore” dell’applicazione, il livello intermedio si occupa delle elaborazioni logiche, implementando la cosiddetta “business logic”. Questo livello riceve le richieste dal livello di presentazione, le elabora utilizzando linguaggi di programmazione lato server come Java, Python o PHP, e genera i risultati da inviare al livello di presentazione.

  3. Livello dati: Il “magazzino” dell’applicazione, il livello dati si occupa di gestire l’accesso e la manipolazione dei dati persistenti. Questo livello interagisce con i sistemi di archiviazione dei dati, come database relazionali o non relazionali, per recuperare, memorizzare e aggiornare le informazioni richieste dall’applicazione.

Nella seguente figura viene mostrata l’architettura tipica di un’applicazione Web.

Architettura applicazione Web-based
Architettura applicazione Web-based

Bisogna dire inoltre che non sempre i livelli logici di un’applicazione Web corrispondono a locazioni fisiche sulla rete (livelli fisici). 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 di una tipica applicazione Web e le varie modalità di progettazione.

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).
  • Active Server Pages (ASP): 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 (come ad esempio ODBC, OLEDB).

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

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