Architettura applicazione Web-based

Architettura applicazione Web-based

I componenti fondamentali di un’applicazione Web sono analoghi per certi versi a quelli di una tradizionale applicazione client/server. Una tipica applicazione client/server è costituita da un client che implementa l’interfaccia utente con alcune funzionalità di elaborazione e di comunicazione e da un server che fornisce una serie di servizi come la gestione e l’accesso ai dati di un database.

Nell’ambito Web l’interazione tra client e server è un po’ più articolata per consentire l’integrazione di componenti di varia natura. 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.
Un’applicazione Web, nella maggior parte dei casi, si sviluppa su tre livelli logico-funzionali (applicazioni Three-Tier) ma che possono essere distribuiti anche su più livelli (applicazioni Multi-Tier):

  • livello di presentazione – rappresenta l’interfaccia utente dell’applicazione e si occupa di acquisire dati e visualizzare risultati;
  • livello intermedio – si occupa delle elaborazioni dei dati in base alla cosiddetta busines logic, cioè all’insieme delle regole per cui i dati sono considerati significativi e le loro relazioni consistenti; le elaborazioni del livello intermedio generano i risultati richiesti dall’utente;
  • livello dati – rappresenta l’insieme dei servizi offerti da applicazioni indipendenti dal Web, come ad esempio un gestore di database, un sistema di gestione di posta elettronica, ecc.

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 *