Introduzione
2
Lo stage presso la ditta Rossi Srl
Nell’ambito del periodo di stage svolto presso la ditta Rossi Srl con sede in
Bodio Lomnago (VA), ho avuto modo di studiare e di valutare quanto possa
essere utile, in termini di vantaggio economico e di tempo risparmiato,
l’utilizzo di Internet anche nelle piccole e medie imprese. Lo studio effettuato
ha portato alla conclusione che è fortemente consigliata per l’azienda in
questione la realizzazione di un sito Web per il commercio elettronico,
integrato con un sito Intranet aziendale capace di fornire in tempo reale dati
sulla situazione di magazzino, sui listini prezzi, sullo status degli ordini, delle
consegne e sulla ricezione e conferma di ordini. Entrambe queste applicazioni
potrebbero essere sviluppate con lo strumento AutoWeb, debitamente
modificato e personalizzato come spiegato nei successivi capitoli.
La tesi
Questa Tesi, sviluppata grazie alla gentile collaborazione del Politecnico di
Mialno (Facoltà di Ingegneria di Como), descrive i passi svolti per lo sviluppo
di un sito Web indirizzato agli Studenti universitari del Politecnico ed alle
Aziende che vogliono offrire opportunità di stage e di lavoro. Il progetto è
stato svolto mediante l’utilizzo del suddetto strumento AutoWeb,
personalizzato con la gestione di profili utenti (già caso di studio della tesi di
laurea di Andrea Maurino [6]) ed arricchito con regole attive che
automatizzano lo scambio di informazioni fra le Aziende e gli Studenti
regolarmente registrati.
Le Applicazioni Web
3
Capitolo 1: Le Applicazioni Web
Il World Wide Web
Come tutti ormai ben sanno, l’uso principale del World Wide Web (WWW), che
per molti è considerato oggi un sinonimo di Internet, riguarda la consultazione
di documenti ipertestuali (documenti che al loro interno contengono dei link –
o collegamenti – ad altre pagine che ne approfondiscono un particolare
aspetto), descritti attraverso un linguaggio di riferimento standard chiamato
HTML (Hyper Text Markup Language).
Un file HTML è sostanzialmente un file di testo (ASCII) costituito da coppie di
tags, le istruzioni cioè, racchiuse dai caratteri < e >.
Vi sono in commercio molti programmi per la stesura del codice HTML, e
ultimamente anche word processors, come Microsoft Word, integrano al loro
interno un convertitore per la loro generazione.
Tuttavia, nel caso si debbano trattare applicazioni che richiedano la gestione e
la presentazione di una grande quantità di dati, ad esempio cataloghi on-line,
il commercio elettronico ed elenchi di qualsiasi natura (come il caso di studio
presentato in questa tesi), questi programmi sono insufficienti in quanto
obbligano il progettista ad intervenire direttamente sul codice per ogni
inserimento, cancellazione o variazione delle entità presenti, non offrono
alcuna rappresentazione astratta, alcun controllo sui dati e nemmeno una
gestione dinamica del contenuto delle pagine.
Recentemente è nata una seconda generazione di applicativi che consentono
di collegare il linguaggio HTML ai database, tentando di rendere indipendente
la struttura degli oggetti dalla loro presentazione all’utente.
Le Applicazioni Web
4
Classificazione degli applicativi Web
Per poter raggruppare in classi i vari prodotti per la creazione di siti Web
presenti sul mercato, sono stati seguiti i seguenti criteri di valutazione:
• Grado di copertura del ciclo di vita, che considera quale aiuto viene
fornito dallo strumento e qual è il suo grado di automazione nelle varie fasi
del ciclo di vita del sito (analisi, progettazione, implementazione e
mantenimento)
• Grado di astrazione della visione offerta dall’applicazione e separazione
delle diverse prospettive
• Riusabilità dell’applicazione, cioè il grado di facilità di generare siti Web
partendo da dati già esistenti
• Architettura. Il sito potrà essere statico, con le pagine generate una sola
volta a livello di definizione, oppure dinamico, con i contenuti e la loro
presentazione generati nel momento stesso in cui si esegue l’applicativo
(run-time)
• Qualità percepita, che racchiude i criteri, meno rigorosi, di coerenza tra i
contenuti e la navigazione, e la facilità di quest’ultima
Utilizzando questi criteri, si ricavano cinque categorie in cui inquadrare i
prodotti per generare pagine Web presenti oggi sul mercato:
1. Editor HTML visuali e gestori di siti
2. Strumenti per creazioni ipermediali abilitate al Web
3. Integratori HTML-DBPL
4. Web form editors, report writers e database publishing wizards
5. Generatori di applicazioni guidati da un modello
Le Applicazioni Web
5
Editor HTML visuali e gestori di siti
Strumenti che semplificano la scrittura del codice HTML anche attraverso
interfacce grafiche WYSIWYG (What You See Is What You Get), e che
mostrano graficamente la posizione delle pagine ed i link tra di esse.
Prodotti commerciali di questo tipo sono ad esempio Microsoft FrontPage,
Adobe PageMill, NetObject Fusion, Allaire HomeSite e Claris HomePage.
Questa classe di prodotti solitamente è indicata per applicazioni medio-piccole,
nelle quali la pubblicazione del contenuto di un database non è l’elemento
fondamentale. L’architettura è di tipo statico, mentre la dinamicità dei
collegamenti è possibile solo con l’uso di componenti esterni.
Strumenti per creazioni ipermediali abilitate al Web
Questi prodotti sono nati come supporto alla creazione di prodotti ipermediali
non in linea sul Web; recentemente sono state aggiunte funzioni per renderli
compatibili con il mondo di Internet.
Prodotti commerciali di questo tipo sono ad esempio Macromedia Director,
Asymetrix Toolbook, Formula Graphics Multimedia 97, ecc.
L’astrazione è limitata all’applicazione di stili di pagina e collegamenti, e gli
unici componenti riutilizzabili sono i componenti multimediali della
presentazione e le librerie. L’architettura è statica, basata su files di
interfacciamento con la base di dati. La qualità è molto elevata con un
minimo sforzo progettuale.
Le Applicazioni Web
6
Integratori HTML-DBPL
In questa categoria rientrano i prodotti rivolti all’integrazione tra applicazioni
Web e database, che utilizzano un linguaggio intermedio tra l’HTML e il DBPL
(DataBase Programming Language). Le possibili implementazioni sono due:
• Estensioni all’HTML, con cui si aggiungono nuovi tag interpretati run-time
dal server, che consentono di gestire i database.
Prodotti di questo tipo sono ad esempio Microsoft Active Server Pages
(ASP) e Allaire Cold Fusion
• Estensioni al DBPL, che aggiungono ad un linguaggio per database
alcune funzioni in grado di generare l’output in codice HTML. Esempi di
questa classe di prodotti sono l’interfaccia Web di Borland Delphi Client
Server Suite e Oracle PL/SQL Web Toolkit
E’ richiesta la scrittura diretta del codice per le interrogazioni ai database. La
riusabilità è in genere limitata ai moduli del linguaggio utilizzato.
L’architettura è di tipo dinamico, centrata sulle query ai database. La qualità
dell’output dipende dalla capacità del progettista.
In conclusione, questi prodotti si possono considerare interfacce ad alto
livello di linguaggi per database, considerando anche che manca una
divisione fra la presentazione e i contenuti.
Le Applicazioni Web
7
Web form editors, report writers, database publishing wizards
Questa tipologia di prodotti è abbastanza articolata:
• Web form editors, che aiuta a costruire applicazioni interattive basate
sull’uso di form di inserimento, di accesso e di modifica dei dati. Prodotti
commerciali di questo tipo sono ad esempio Microsoft Access 97 e Borland
IntraBuilder
• Report writers. L’utente definisce dei report personalizzati che vengono
poi pubblicati sul Web. Un esempio è Oracle Report for the Web
• Database publishing wizards. L’unico supporto al progettista consiste
nella pubblicazione automatica di tabelle e viste sul Web, in modo statico o
dinamico, come ad esempio fa Microsoft Access 97
In generale ci si concentra sulla fase di implementazione. L’astrazione è
limitata all’interfaccia. Le pagine HTML vengono generate dinamicamente a
partire dai database. La qualità percepita non è molto elevata.
Questi strumenti offrono una soluzione abbastanza buona solo per applicazioni
business in cui non ha molta rilevanza la gradevolezza della presentazione
all’utente. Anche in questo tipo di prodotti la separazione tra dati e
presentazione è limitata all’uso di fogli di stile predefiniti.
Le Applicazioni Web
8
Generatori di applicazioni guidati da un modello
Questa classe di applicativi implementa in modo completo la separazione tra i
dati e la presentazione all’utente ed utilizza strumenti di tipo CASE per le
singole fasi della produzione del sito. Partendo da un modello, l’utente decide
la struttura dei dati, i rapporti tra i dati stessi e la visibilità di ogni oggetto e
relazione. La generazione del codice è indipendente e realizzata in modo
automatico; la presentazione all’utente può essere personalizzata ricorrendo a
fogli di stile modificabili a piacere.
Un prodotto completo di questa classe in commercio è Oracle Web
Development Suite, ma sono allo studio un gran numero di prototipi, come i
progetti, sviluppati dal Politecnico di Milano, AutoWeb e il più recente w3i3.
Si tratta di una classe di strumenti particolarmente adatta alle applicazioni qui
prefissate di gestione di enormi quantità di informazioni, quali il database degli
Studenti del Politecnico e delle Aziende convenzionate.
Le Applicazioni Web
9
Conclusioni
Emerge da questa analisi che la maggior parte dei prodotti è dichiaratamente
rivolta all’implementazione, e trascura ogni altro elemento; i pochi che
coprono una parte più significativa del ciclo di vita dell’applicazione lo fanno
solitamente usando modelli ed astrazioni tipiche del mondo dei database.
Per applicazioni limitate, la soluzione ottimale è costituita dagli editor visuali o,
in alternativa, anche da prodotti nati per lo sviluppo multimediale, che
permettono un grande impatto visivo e libertà di espressione del progettista, a
fronte di un impegno certamente maggiore. Entrambe, comunque, non offrono
mezzi adeguati di integrazione con database.
Per applicazioni intra-business, sono molto indicati sistemi basati su form che,
a fronte di una generale povertà di presentazione, offrono la possibilità di far
migrare applicazioni già esistenti.
L’area più interessante è comunque costituita da applicazioni che si
appoggiano su grandi basi di dati e rivolte ad un pubblico vasto e quindi, in
futuro, assumeranno sempre più importanza strumenti guidati da un modello
concettuale come AutoWeb.
In particolare, restano aperte svariate opportunità di ricerca e sviluppo:
• Un modello concettuale che separi la struttura, la navigazione e la
presentazione all’utente
• Supporto CASE (Computer Aided Software Engineering) che traduca
modelli concettuali, consenta il reverse-engineering delle applicazioni
database, e generi applicazioni indipendenti dal linguaggio e dalla
piattaforma utilizzata
• Meccanismi di ristrutturazione per adattare le attuali applicazioni Web
Il Sistema AutoWeb
10
Capitolo 2: Il Sistema AutoWeb
Introduzione
L’approccio alla progettazione seguito da AutoWeb è quello dell’HDM-lite,
derivato direttamente dal modello HDM (Hypermedia Design Model, utilizzato
per applicazioni ipermediali “tradizionali”, quali CD-ROM o presentazioni) e
creato espressamente per le applicazioni Web ed il nuovo genere di
problematiche introdotte da queste tecnologie.
AutoWeb divide in modo chiaro e preciso la modellizzazione e la struttura dei
dati rispetto alla navigazione del sito e alla presentazione dell’applicazione
all’utente.
Questi tre schemi nel modello AutoWeb sono rispettivamente:
• Lo schema dei dati (Structure), che mette a disposizione una serie di
oggetti e costrutti per modellizzare i dati trattati e schematizzarne i
collegamenti
• Lo schema di navigazione (Navigation), che specifica i differenti
metodi e percorsi di accesso ai dati
• Lo schema di presentazione (Presentation), che determina l’aspetto e
le caratteristiche delle pagine Web presentate all’utente
Il Sistema AutoWeb
11
Lo schema dei dati
AutoWeb mette a disposizione del progettista una serie di costrutti, spesso
simili a quelli del modello Entità/Relazioni usato per modellizzare i database,
per caratterizzare la descrizione dei dati.
Entità
L’entità è il più piccolo blocco di informazione autonomo che descrive un
‘oggetto’ (reale o concettuale) logicamente appartenente all’applicazione; nel
caso trattato di seguito un esempio è l’oggetto ‘DatiPersonali’.
Al loro interno, le entità hanno dei componenti, uno dei quali, denominato
‘root component’ (componente radice), ne determina il carattere principale, ed
è quindi indicato in rosso (fig.1).
Componenti
I componenti sono blocchi di informazione non autonomi, dal momento che
una loro istanza ha senso solo se legata ad un’entità (così, come nel caso
trattato, i componenti ‘PersonalData’ e ‘stage’ si riferiscono all’entità
‘DatiPersonali’ – Fig. 1).
Slots
I componenti sono a loro volta costituiti da slots, attributi che li
caratterizzano. Gli slots (fig. 1), nel modello HDM-lite utilizzato da AutoWeb,
possono essere di tipo testo, numerico, booleano, immagine, HTML, URL o
video, e possono avere gli attributi external (denota le istanze negli indici
dell’applicazione), hidden label (non visualizza l’etichetta), hidden value (non
visualizza il valore dello slot) e list (accetta una lista di parametri).
Il Sistema AutoWeb
12
PartOf
I PartOf rappresentano i collegamenti interni tra i diversi componenti di una
stessa entità, ad esempio tra ‘PersonalData’ e ‘curriculum’, entrambi
appartenenti a ‘DatiPersonali’ (v. fig. 1).
Fig. 1 – Esempio di entità con componenti, slots e PartOf
Link
I link sono invece collegamenti esterni tra componenti di diverse entità, e
rappresentano relazioni che legano i differenti oggetti anche in fase di
navigazione (v. fig. 2).
Fig. 2 – Esempio di link tra diverse entità
Il Sistema AutoWeb
13
Lo schema di navigazione
AutoWeb consente anche di specificare il tipo di navigazione scelto per
l’accesso all’informazione contenuta nei componenti. A partire da un punto di
accesso al sito (Home Page), è possibile scegliere i percorsi di navigazione
interni all’applicazione.
E’ assai facile modificare anche radicalmente la navigazione di un sito senza
alterare nessuna delle sue entità, e questo è uno dei maggiori punti di forza di
strumenti CASE quali AutoWeb.
Traversal
Rappresentano i percorsi di navigazione tra diversi componenti definiti nello
schema dei dati. Per ogni relazione tra componenti (PartOf e Link) viene creato
un collegamento biunivoco tra i due componenti stessi (v. Fig. 3). E’ poi
possibile modificare la cardinalità di ogni singola relazione.
Nel caso invece si vogliano impedire alcune scelte di navigazione, è sempre
possibile rendere un traversal non navigabile.
Fig. 3 – Esempio di traversal tra due componenti
Il Sistema AutoWeb
14
Collezioni
Le collezioni sono elenchi, omogenei o meno, di istanze. E’ possibile definire
la visibilità della collezione (v. Fig. 4): ‘globale’ (sempre visibile in ogni punto
del sito), ‘visibile rispetto a un’entità’ (visibile nelle istanze della specifica
entità), ‘visibile rispetto ad un componente’ (visibile solo nelle istanze del
componente), ‘visibile rispetto a singole istanze’, oppure ‘nascosta’ (non
visibile).
AutoWeb distingue graficamente i vari tipi di collezioni assegnando loro colori
diversi. E’ anche possibile definire una collezione di collezioni, che
raggruppa cioè non istanze di entità, ma intere collezioni (home page).
Fig. 4 – Esempi di collezioni