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