Prometheo - Home Page Articolo - Architettura Applicazioni Web-based
Questo articolo intende fornire un'analisi dell'architettura di un'applicazione basata sul Web. Verranno analizzate i componenti software e le modalità di progettazione di questo tipo di applicazioni, che sfruttano le tecnologie Web per offrire elaborazioni su richiesta.
 
Home Page | Chi Siamo | Le Sedi | Come Contattarci | Franchising | Patente Europea


Precedente
Su
Successiva
Corsi: Informatica; Nuove Professioni; Professionali; Crescita; Calendario | Sommario

Articolo

Architettura Applicazioni Web-based
di Salvatore Giordano

Applicazioni Web-based

Vantaggi
Le applicazioni Web si pongono come valida alternativa alle tradizionali applicazioni Client/Server per vari motivi:

Contesto di esecuzione
Un elemento molto importante nella progettazione di applicazione Web è il contesto in cui verrà eseguita l'applicazione: Internet, Intranet o Extranet.
Se il contesto di applicazione è Internet, occorrerà prendere in considerazione la compatibilità con diversi tipi e versione di browser, sarà necessario tenere conto delle velocità di accesso alle risorse e di conseguenza alla riduzione delle dimensioni del materiale da scaricare e all'ottimizzazione dei tempi di risposta da parte del server. Nel caso di trasferimento di documenti e informazioni riservate sarà opportuno prevedere l'uso di protocolli sicuri.
Nel caso di Intranet vengono meno le considerazioni relative alla compatibilità con i browser e alla velocità di accesso alle risorse, per cui si ha una maggiore libertà nello sviluppo dell'applicazione.
Se il contesto di esecuzione è Extranet, cioè una Intranet accessibile totalmente o in parte anche dall'esterno, è necessario riconsiderare la parte accessibile dall'esterno in base a considerazioni fatte sul contesto Internet. In ogni caso una particolare cura dovrà essere posta nel controllo delle autorizzazioni di accesso all'applicazione da parte degli utenti esterni.

Architettura

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):

Nella seguente figura è mostrata l'architettura tipica di un'applicazione Web.

Schema Architettura tipica di un'applicazione Web

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 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:

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:

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:

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).

Problematiche

La realizzazione di applicazioni Web presenta alcune problematiche sconosciute alle applicazioni tradizionali. Queste problematiche derivano dalla natura stessa del Web, pensato originariamente non per la realizzazione di applicazioni ma per la distribuzione di documenti. Un classico problema è quello del cosiddetto mantenimento dello stato dell'applicazione. Il modello di interazione di base del Web è privo del concetto di connessione, per cui l'esecuzione di un'applicazione Web consiste in una serie di interazioni disconnesse.
Lo sviluppatore deve utilizzare informazioni codificate nella richiesta HTTP e nelle risorse condivise durante la sequenza di interazioni per stabilire la continuità dell'applicazione.
La progettazione di un'applicazione Web deve tenere conto anche dell'ampiezza di banda di trasmissione disponibile e del carico di lavoro stimato per il server.
Dalle considerazioni sull'ampiezza di banda derivano le scelte relative alla quantità di dati da inviare ad un client in risposta ad una richiesta.
Ciò può coinvolgere anche l'interfaccia utente dell'applicazione stessa, portando in certi casi a rinunciare ad una veste grafica accattivante pur di fornire tempi di risposta accettabili.
Tuttavia, all'ottimizzazione dell'uso dei mezzi trasmissivi può contribuire, e in certi casi essere determinante, un'attenta ripartizione del carico di elaborazione tra client e server. Infatti, consentire al client di effettuare alcune elaborazioni senza coinvolgere il server, come ad esempio la convalida dei dati inseriti in una form, permette di ridurre il traffico sulla rete sia di snellire il carico di lavoro del server.
Inoltre, la presenza di applicazioni esterne particolarmente complesse sulla stessa macchina del server Web può rendere meno efficiente l'applicazione Web sottraendole risorse preziose. In questi casi è opportuno distribuire il carico di lavoro su macchine diverse prevedendo, ad esempio, una macchina diversa per un DBMS o per un'applicazione particolarmente esosa di risorse.

Conclusione

Non sempre i criteri tipici della progettazione di applicazioni client/server possono essere applicati alla progettazione di applicazioni Web. Infatti, nella maggior parte dei casi la natura stessa del Web e delle problematiche che esso presenta porta a basare le proprie scelte progettuali sulla propria esperienza o sulla esperienza acquisita da altri, in mancanza di modelli di riferimento consolidati.

© Salvatore Giordano - Prometheo Staff
giordano@isn.inet.it
Articolo#06: [pubblicato il 17/07/99]

Vuoi ricevere gratuitamente utili informazioni e curiosità direttamente via email?

Prometheo Srl - Gli articoli sono Copyright © 1999 - 2020 dei rispettivi Autori, pubblicati sul sito web Prometheo per gentile concessione degli Autori

Copyright © 1999 - 2020 Prometheo Srl - Per informazioni: info@prometheo.it (Informativa Privacy) - Telefono: 081.562.72.21

I prodotti citati sono marchi e marchi registrati dei relativi produttori. Ultimo Aggiornamento: 23/06/14.

Precedente ] Home ] Su ] Successiva ]