AWM: Active Web Matrix EDIZIONE Giugno 2004 EDIZIONE Gennaio 2005 I Rapporti Tecnici dello Usability LAB ENEA ACTIVE WEB MATRIX EDIZIONE Giugno 2004 La realizzazione di questo rapporto tecnico è stata curata da: Umberto Annunziata, Flavio Fontana, lo staff dello Usability Lab INDICE Introduzione …………………………………………………………………… 1. ANALISI DEI REQUISITI DELL’UTENZA …………………………… 1.1. Il modello della Cyber Enterprise …………………………………… 1.2. Classificazione dell’utenza …………………………………………… 1.3. Requisiti utente …………………………………………………….…. 1.3.1.Requisiti generali ……………………………………………… 1.3.2.Requisiti funzionali ……………………………………………. 1.3.3.Requisiti tecnici ……………………………………………….. 2. PROGETTAZIONE DEL SISTEMA ……………………………….…… 2.1. Analisi e definizione dei meta dati …………………………………... 2.1.1.Definizione delle meta informazioni e struttura del sito web . 2.1.2.Progettazione concettuale ………………………………….…. 2.1.3.Progettazione logica …………………………………………… 2.1.4.Progettazione fisica ……………………………………………. 2.2. Progettazione dei moduli applicativi ………………………………... 2.2.1.Funzioni di gestione e relative procedure ……………………. 2.2.2.Funzioni di interrogazione ……………………………………. 3. AMBIENTE DI SVILUPPO ……………………………………………… 3.1. Linguaggi utilizzati per applicazioni web ………………………… … 3.1.1.HTML ……………………………………………………….…. 3.1.2.I limiti di HTML, possibili soluzioni …………………………. 3.1.3.Le Active Server Pages ……………………………………….. 3.1.4.Java: Applet e JSP ………………………………………….…. 3.1.5.Approcci misti …………………………………………………. 3.1.6.Connessioni ai Database Access e Oracle con lo standard ODBC ………………………………………………………….…. 3.1.7.XML ……………………………………………………………. 3.2. L’ambiente di sviluppo del primo prototipo ……………………….. 4. Il prototipo del sistema ……………………………………………. 4.1. Active Web Matrix …………………………………………………… 4.1.1.Modulo News ………………………………………………….. 4.1.2.Modulo Multimedia …………………………………………… 4.1.3.Modulo Web Seminar …………………………………………. 4.1.4.Modulo Home Page ……………………………………………. 4.1.5.Il Web Based Document Management System ……………… 4.1.6.Gli altri moduli ………………………………………………… 5. Conclusioni e futuri sviluppi ……………………………………………… 5.1. Test di validazione ……………………………………………………. 5.2. Considerazioni finali …………………………………………………. 5.3. Futuri sviluppi ……………………………………………………….. Bibliografia ………………………………………………………………….…. Active Web Matrix ________________________________________________________________________________ INTRODUZIONE Lo sviluppo della rete Internet, a partire dal 1991, in termini di classi di utenza e tipologie di siti web, è giunto alla terza generazione e si sta avviando verso la quarta dove il sito web resta ancora centrale. In questo contesto, il web viene integrato sempre di più con piattaforme innovative applicate a domini di informazioni e conoscenze dedicate a fornire: servizi avanzati di comunicazione, disseminazione delle informazioni, uso delle conoscenze e creazione di ambienti virtuali di lavoro cooperativi interfacciati in termini visivi e multimediali. Come conseguenza, nasce, quindi, l’esigenza di realizzare siti multifunzionali e flessibili. L’oggetto di questo lavoro, svolto presso lo Usability Lab ENEA (Centro Ricerche Casaccia) è uno studio e la, conseguente, realizzazione di un sito web per un modello di Virtual (o Cyber) Enterprise, svolto nell’ambito del progetto di ricerca SOPHOCLES.1 Tale studio, ha portato alla progettazione ed implementazione di un prototipo di un sito web dinamico chiamato “Active Web Matrix”. Active Web Matrix, finalizzato agli aspetti funzionali di una Cyber Enterprise, gestisce e recupera le informazioni e i dati multimediali per mezzo di una serie di moduli funzionali da un insieme di DBMS di supporto. Mediante l’integrazione tra il Web ed i DBMS (integrazione Web-DB) il sito può essere gestito e configurato attraverso il web stesso. Il sistema fornisce anche adeguati strumenti per la comunicazione e lo scambio di informazioni e conoscenza. L’implementazione di tale prototipo ha permesso di valutare le scelte di progetto mediante test di usabilità. La sperimentazione inoltre, ha messo in evidenza i limiti delle scelte effettuate e delle tecnologie utilizzate fornendo, allo stesso tempo, un insieme di soluzioni alternative. Il primo capitolo definisce e analizza il modello della Cyber Enterprise dal punto di vista funzionale; definisce, quindi, la classificazione dell’utenza ed i requisiti utente in termini generali, funzionali e tecnici. Nel secondo capitolo è descritta la progettazione del sistema in termini di: set di dati, funzioni standard di gestione ed interrogazione, funzioni avanzate. Il terzo capitolo descrive brevemente alcune tecnologie per applicazioni web, e descrive l’ambiente di sviluppo del primo 1 SOPHOCLES: System level develOpment Platform based on HeterOgeneous models and Concurrent LanguagEs for System applicantions implementation 6 Active Web Matrix ________________________________________________________________________________ prototipo. Il quarto capitolo presenta il prototipo implementato e descrive i moduli del sistema in termini funzionali. Nel quinto capitolo vengono riportate le considerazioni finali relative al prototipo ed un accenno ai futuri sviluppi del sistema. Active Web Matrix è stato utilizzato in modo sperimentale come previsto dallo stesso scopo del progetto SOPHOCLES per validare, dal punto di vista concettuale, metodologie, piattaforme e tecnologie per supportare l’integrazione di ambienti e applicazioni distribuite di sistemi complessi ed eterogenei definiti “Componenti Virtuali” di simulazione. 7 Active Web Matrix ________________________________________________________________________________ Capitolo 1 ANALISI DEI REQUISITI DELL’UTENZA In questo capitolo si descrive l’analisi dei requisiti dell’utenza in relazione al modello generale della Cyber Enterprise e delle classi di utenza identificate nel corso dello studio sperimentale. 1.1. Il modello della Cyber Enterprise Il problema della competitività aziendale rende essenziale, per ogni azienda, la capacità di rispondere puntualmente alle richieste ed all’andamento del mercato con flessibilità e velocità. Le imprese stanno abbandonando la struttura rigida, verticale e burocratica che le ha caratterizzate per anni, e si stanno orientando verso organizzazioni distribuite e più flessibili.2 La crescente decentralizzazione ha accresciuto le responsabilità di ogni singolo attore del processo produttivo e decisionale, generando, come effetto collaterale, l’incremento del numero di persone coinvolte in tali processi. Come conseguenza le aziende hanno sentito la necessità di avere a disposizione nuovi sevizi che potessero consentire la comunicazione, la gestione e lo scambio di informazioni, servizi di supporto alla frammentazione geografica. Allo stesso tempo, lo sviluppo di nuove tecnologie dell’informazione (ICT) e la crescente diffusione di Internet, hanno accresciuto e supportato tale processo di decentramento delle strutture, mettendo in evidenza nuove esigenze degli utenti, più complesse da soddisfare. La conseguenza di questa co-evoluzione ha delineato un modello relazionale di “virtual enterprise”, centrato sull’evoluzione dei processi di comunicazione delle imprese (figura 1.1). 2 Commercio Elettronico e XML Scenari, tecnologie, applicazioni, vedi Bibliografia. 8 Active Web Matrix ________________________________________________________________________________ DIFF Virtual Enterprise model Employm Customers Employm Customers Information Partners Suppliers Partners Traditional model Suppliers Relational model Figura 1.1 – Modello tradizionale e relazionale di Virtual Enterprise Il modello di Cyber Enterprise (CE) di SOPHOCLES si basa sul concetto relazionale di Virtual Enterprise. L’obiettivo del progetto è la realizzazione di un modello di CE che faciliti sia l’accesso ed il reperimento delle informazioni, che l’utilizzo di network services, a tutti gli utenti, senza che quest’ultimi abbiano la necessità di conoscere direttamente l’organizzazione e gli aspetti tecnici della CE. Il termine “virtuale” usualmente è usato per introdurre ambienti e/o sistemi che non hanno strutture fisiche, ma che sono residenti su un computer. Nel nostro contesto applicativo ciò vale per la “realtà virtuale” e i “componenti virtuali” o “prodotti virtuali”. In altre parole, per un osservatore la realtà o il prodotto “esistono nella mente, come prodotti d’immaginazione” (American Heritage Dictionary). Il termine “impresa” generalmente è associato ad oggetti durevoli, costituiti da edifici dove operano persone, secondo procedure definite nel rispetto di leggi e normative. La “impresa virtuale” può essere definita, quindi come un’impresa che ha strutture e attributi caratteristici di una reale impresa, ma che esiste solo nell’immaginazione dell’osservatore. 9 Active Web Matrix ________________________________________________________________________________ Figura 1.2 – Schema concettuale delle interazioni all’interno della CE Mediante l’utilizzo di un’interfaccia visuale user-friendly integrata con il web, l’utente può identificare, selezionare e reperire le informazioni cui è interessato. La CE ha quindi il compito di rendere l’accesso alle informazioni omogeneo e standardizzato, indipendente dagli strumenti e dalle tecnologie utilizzate (database, linguaggi e ambienti). Extranet Extranet • •communication communicationand andservices services Internet Internet • •institutional institutionaland andproduct product communication communication ••public publicrelations relations ••e-commerce e-commerce ••knowledge knowledgeintegration integration (partners, (partners,customer,etc.) customer,etc.) ••assistance assistance Cyber Cyber Enterprise Enterprise Intranet Intranet • •internal internalcommunication communication ••collaboration collaborationwork work Figura 1.3 – Il modello della CE e le sue funzionalità in relazione alle differenti “reti” 10 Active Web Matrix ________________________________________________________________________________ Per soddisfare le esigenze del mercato globale e le attese dei possibili clienti, la CE è stata progettata con un’architettura distribuita, questo ha permesso di: rendere irrilevante la localizzazione geografica dei partner “reali” della CE; creare nuovi mercati; offrire nuovi prodotti e processi produttivi; assicurare quella flessibilità, come detto in precedenza, tanto importante per rispondere in modo adeguato e puntuale alle richieste del mercato. Il concetto generale di virtual enterprise può essere analizzato da due differenti punti di vista: uno funzionale ed uno istituzionale. Il punto di vista istituzionale considera la virtual enterprise come un insieme di imprese legalmente indipendenti che co-operano temporaneamente tra loro al fine di raggiungere obiettivi economici comuni; condividono risorse e conoscenza mediante l’uso dell’ICT. Gli aspetti presi in considerazione nel punto di vista funzionale riguardano invece le caratteristiche di ogni azienda, le componenti interne ed esterne alla virtual enterprise e le loro interazioni, l’uso dell’ICT rivolto alla definizione di strumenti per la gestione dell’informazione che siano utilizzabili per generare un “valore aggiunto” per l’impresa virtuale. Nel progetto SOPHOCLES si analizza il concetto generale di virtual enterprise dal punto di vista funzionale, definendone i moduli principali, le funzioni e l’interfaccia. Questi aspetti possono essere identificati attraverso la definizione di un modello user-oriented. Tale approccio è stato seguito per definire le specifiche del sito web, in particolare per la definizione di funzioni Internet-based atte a consentire: 1. la collaborazione tra diverse applicazioni e le informazioni che esse manipolano; 2. il lavoro cooperativo tra individui o gruppi di lavoro; 3. la definizione di un ambiente specifico dove il rilascio e l’accesso di ogni informazione condivisa (inclusi i documenti), prodotta dagli attori che partecipano al progetto, sia sicuro, monitorato e gestito in modo autonomo quasi trasparente, ed in tempi brevi; 4. l’implementazione di un insieme di tool user-friendly per la gestione della CE; 5. l’uso delle applicazioni che implementano i “servizi virtuali” per end-user. In accordo con i punti precedenti, sono state definite le funzionalità di un insieme di tool per “gestire il sito web attraverso il web”. Quest’obiettivo ha portato alla realizzazione di Active Web Matrix, una piattaforma di prima generazione per la configurazione e la gestione dinamica di un sito 11 Active Web Matrix ________________________________________________________________________________ web integrato a basi dati distribuite e multimediali che offre servizi di impresa virtuale con una serie di moduli funzionali indipendenti e complementari tra loro. Il punto 3 ha portato alla realizzazione di un modulo per la gestione della documentazione: il WebBased Document Management System (WBDMS). Il modulo Web-Seminar rientra nella categoria di servizi al punto 2. 1.2. Classificazione dell’utenza La classificazione dell’utenza è presa in considerazione in questa fase di analisi user-oriented, per identificare gli utenti della CE. Le linee guida della metodologia applicata dall’ENEA in materia di usability3, hanno permesso di identificare le classi di utenti ed i loro requisiti in relazione ad aspetti organizzativi, tecnici e funzionali. In questa fase, sono state analizzate le situazioni critiche in termini di accessibilità alle informazioni ed usabilità dei sistemi deputati alle specifiche funzioni. In particolare, sono state oggetto di ulteriori analisi le modalità del sistema nei momenti di accesso e recupero dell’informazione, dove è complessa la definizione delle query da parte di utenti finali che non conoscono le strutture dei dati. Tale operazione è stata, quindi, affidata al sistema stesso che offre servizi diretti e facili da usare. Gli utenti possono essere classificati in base ai seguenti criteri: Frequenza di accesso ai servizi della CE; Frequenza d’uso dei sistemi/tool della CE; Familiarità nell’utilizzo del computer; Esperti in software; Capacità professionali, profilo, ruolo. In generale possiamo identificare le seguenti classi di utenza: End-users, alla ricerca di soluzioni innovative e competitive per i loro affari; Information brokers; Venture capitalists, alla ricerca di tecnologia innovativa su cui investire; 3 Multimedia Prosoma Link-Up Methodology, Metodologia di Progetto di Siti WEB (ENEA, Università di Roma “La Sapienza”), vedi Bibliografia [12] 12 Active Web Matrix ________________________________________________________________________________ Industriali e imprenditori interessati a nuove soluzioni; Industrie, centri di ricerca e università che collaborano all’implementazione dei “servizi virtuali” messi a disposizione dalla CE; Lo staff di gestione della CE. Partendo da tale classificazione generale, ed analizzando tali classi in funzione dell’accesso, profilo e relazione con l’ambiente della CE, sono state definite tre categorie di utenti: a) Generic user. In questa categoria rientrano gli utenti casuali che accedono alla CE per reperire informazioni sull’organizzazione ed i suoi servizi. Di solito l’informazione non fa parte della loro attività quotidiana ed accedono raramente e casualmente al sistema. Esempi di questa categoria sono il generico navigatore della rete (net surfer) che consulta il sito, il visitor che ricerca informazioni sui servizi offerti dalla CE e scarica delle demo. b) Professional user. A questa categoria appartengono quegli utenti che hanno bisogno delle informazioni fornite dalla CE come supporto alla propria attività professionale (Es. designer). Essi accedono frequentemente ai dati ed ai servizi, di solito con lo stesso tipo di interrogazioni dettate dalle loro necessità (“status” commerciale dei servizi, rapporti tecnici, servizi di rete). c) Experienced user. Gli utenti che appartengono a questa categoria esplorano i contenuti dei database della CE con frequenza ed in dettaglio attraverso l’interfaccia web del sistema, accedono ai servizi. In questa categoria rientra anche lo staff che gestisce la CE ed i suoi sistemi/servizi. Il Cyber Enterprise Manager, il Web CE Manager, il DataBase Administrator ed il Virtual Components Manager appartengono a questa tersa categoria. La tabella 1.1 riassume le caratteristiche della classificazione sopra descritta. Classe di utenza End User Visitor Business User Technical user CE Manager Web CE Manager Data Base Manager/Administrator VCs Manager Tipo External External External External Internal Internal Internal External/Internal Descrizione Generic Generic Professional Experienced Experienced Experienced Experienced Experienced Tabella 1.1 – Classificazione degli utenti La figura 1.4 classifica gli utenti in termini di frequenza d’uso del sistema. 13 Network Internet User Internet User Extranet User Extranet User Intranet User Intranet User Intranet User Intranet User Active Web Matrix ________________________________________________________________________________ 1.3. Requisiti utente I requisiti utente sono raggruppati in tre tipologie: requisiti generali, funzionali e tecnici. Alcuni sono relativi all’accesso, browsing e visualizzazione delle informazioni, altri sono relativi alle funzionalità più significative. 1.3.1. Requisiti generali I requisiti generali, intesi come specifiche globali, ovvero, che s’intendono avere un carattere comune a tutte le componenti del sistema, sono mostrati nella tabella 1.2. 14 Active Web Matrix ________________________________________________________________________________ Codice Item Requisito UR/1.1 Accesso al sistema via Web Il sistema deve essere accessibile utilizzando un semplice browser, attraverso il quale l’utente può reperire e gestire le informazioni, usufruire dei servizi, accedere ai database (integrazione Web-DB). UR/1.2 Utilizzo della rete UR/1.3 Facilità d’uso UR/1.4 Robustezza Se possibile l’utente deve avere a disposizione una rete con prestazioni elevate. Il sistema deve fornire un approccio di tipo visuale4. Attraverso una rappresentazione visuale dei processi e dello stato del sistema, l’utente ha la possibilità di utilizzare i servizi messi a disposizione con naturalezza ed intuizione (grado di usabilità). Il sistema deve essere affidabile e robusto, realizzato con software certificato e/o validato; deve essere in grado di fornire assistenza all’utente nel caso di operazioni errate. Accesso riservato al sistema mediante l’utilizzo di login e password; identificazione e profilazione dell’utente, privilegi e permessi. Indipendenza dal sistema operativo e dalla macchina, uso di Java (L’ambiente WIN 2k è obbligatorio fase 1; Unix Solaris 5.7 e Linux - fase 2) Il sistema deve essere composto da un insieme di moduli funzionali tra loro indipendenti e gestibili separatamente, favorendo così l’implementazione di sistemi distribuiti. UR/1.5 Sicurezza UR/1.6 Portabilità UR/1.5 Modularità Tabella 1.2 – Requisisti generali 4 Le interfacce visuali sfruttano l’elevata banda passante del sistema visivo umano che consente sia il riconoscimento che la manipolazione di vaste quantità di informazione pittorica così come l’utilizzo della retroazione visiva per un dialogo efficiente fra uomo e macchina. [7] 15 Active Web Matrix ________________________________________________________________________________ 1.3.2. Requisiti funzionali La tabella 1.3 mostra i requisiti funzionali più significativi. Codice UR/2.1 UR/2.2 UR/2.3 UR/2.3 UR/2.5 UR/2.6 Item Requisito Utilizzo del mouse e tastiera Il sistema, di tipo visuale, deve consentire di eseguire le operazioni mediante l’uso del mouse e quando necessario della tastiera. Funzioni di gestione Il sistema deve fornire la possibilità di essere gestito e configurato attraverso il Web. In particolare l’integrazione WebDB deve fornire la possibilità di effettuare l’update del sistema via rete. Tali operazioni devono essere svolte mediante l’utilizzo di menu di gestione e procedure di manutenzione ed aggiornamento. Funzioni di interrogazione In accordo con UR/1.3 e UR/2.1, il sistema deve fornire una metodologia di approccio basata sull’utilizzo di query predefinite e funzioni di ricerca standard ed avanzate. Funzioni di comunicazione Il sistema deve fornire gli strumenti necessari alla comunicazione verso lo staff, le company e gli utenti. Il risultato delle query deve essere Result Display visualizzato in forma tabellare5. Utilizzo di applicativi appositi (IVQSS Funzioni avanzate e SES).6 Tabella 1.3 – Requisisti funzionali 5 6 Per definizioni ed argomenti relativi alla rappresentazione visuali delle basi di dati si rimanda a [7] Vedi bibiliografia [10] , [11] e [12] 16 Active Web Matrix ________________________________________________________________________________ 1.3.3. Requisiti tecnici Nella tabella 1.4 sono mostrati i principali requisiti tecnici. Codice UR/3.1 Item Requisito Ambiente di sviluppo e rete Sistemi operativi: Windows NT/2000 Server, Unix/Linux DBMS: Access/Oracle Linguaggi di interrogazione: SQL Web Server: IIS 5.0, Apache Protocollo http su rete Tcp/Ip UR/3.2 Linguaggi Linguaggi Object Oriented (Java) Linguaggi di script (JavaScript, VBScript) UR/3.3 UR/3.4 HTML, ASP, JSP Video AVI, Mpeg Multimedia Plug-in Macroomedia Flash, Real Player Database distribuiti, eterogenei, basati su diverse piattaforme (Oracle, Access, altri). Database Tabella 1.4 – Requisisti tecnici Nella fase di sviluppo del progetto SOPHOCLES, i requisiti sono stati testati, validati ed analizzati in base alle necessità ed aspettative di un gruppo di utenti che rappresenteva i differenti profili di una cyber enterprise afferente ad reale scenario applicativo (Progetto Sophocles). 17 Active Web Matrix ________________________________________________________________________________ Capitolo 2 PROGETTAZIONE DEL SISTEMA La progettazione di Active Web Matrix (AWM) necessita di affrontare in modo distinto e integrato sia le funzionalità del sito web che il dominio dei dati della Cyber Enterprise (CE). In questo capitolo sono descritte le fasi di progettazione delle basi di dati e la fase di progettazione dei moduli della CE in termini di procedure e applicazioni. La prima definisce la struttura e l’organizzazione dei dati e delle informazioni; si suddivide in: Progettazione dell’architettura del sito web; Progettazione concettuale (schema E-R); Progettazione logica (traduzione nel modello relazionale degli schemi E-R); Progettazione fisica (Database Access/Oracle, directory e file) La progettazione dei moduli applicativi, partendo dalla definizione delle informazioni e delle entità e relazioni dei dati, fornisce le specifiche caratteristiche e le funzioni dei programmi che operano sulla base di dati e sul sito web. 1.1. Analisi e definizione dei meta dati L’analisi delle informazioni e l’organizzazione dei dati è stata effettuata sulla base di metodologie top-down e bottom-up. I principali elementi della CE sono stati identificati mediante un approccio metodologico di tipo top-down. L’approccio bottom-up ha invece definito la relazione tra gli elementi, le loro caratteristiche ed attributi. La figura 2.1.a fornisce un schema concettuale generale della CE; le principali meta-entità definite sono le seguenti: User; Cyber Enterprise System; Virtual Component; Company. Lo schema rappresenta inoltre le principali relazioni tra le entità. 18 Active Web Matrix ________________________________________________________________________________ COMPANY USER CYBER ENTERPRISE SYSTEM VC Figura 2.1.a – Meta-entità della CE La figura 2.1.b mostra le entità che sono contenute nella meta-entità CYBER ENTERPRISE SYSTEM. CYBER ENTERPRISE SYSTEM MULTIMEDIA WEB SEMINAR CORE NEWS ALTRO WBDMS Figura 2.1.b – Meta-entità CYBER ENTERPRISE SISTEM 19 Active Web Matrix ________________________________________________________________________________ L’analisi dei dati ha identificato, per ogni meta-entità, le entità specifiche, le loro principali relazioni ed i Minimum Data Set (MDS). Questo tipo di analisi ha così permesso di organizzare e gestire tali dati mediante l’utilizzo di database multimediali distribuiti ed eterogenei. L’analisi preliminare dell’architettura generale dei database ha individuato tre tipologie di database: User DBs; CE Central DBs; Company/Partner DBs. Questi database possono essere sia interni che esterni all’ambiente della CE (figura 2.2). Cyber Enterprise CENTRAL DBs User Registration Security CE profile VC technical data Administration Web Site Queries Statistics USER DBs Company/ Partner DBs Figura 2.2 – Database della CE Nelle pagine che seguono è descritta la progettazione dei CE Central DBs. Il compito di questi DB consiste nel mantenimento e nella gestione dei dati relativi alle informazioni ed ai servizi della CE.. Le informazioni mantenute in tali database sono accessibili attraverso il sito web. Le linee guida, descritte in Appendice-3 realtive al documento “CE definition and specification”, hanno determinato le seguenti tipologie di dati: informazioni sul progetto; informazioni generali; informazioni sui partner; sezioni tecniche (Cyber Enterprise, Utilities, Virtual Components); 20 Active Web Matrix ________________________________________________________________________________ news, newsletter, forum; informazioni multimediali; strumenti di amministrazione/servizi e documentazione. Di seguito sono descritte le specifiche dei principali contenuti multimediali ed ipertestuali. News. Hanno come target il generico utente che naviga sul sito. Sono costituite da testo accompagnato da immagini. Riportano informazioni più o meno specifiche su un determinato argomento e sono suddivise per tematica. Le news possono essere visualizzate in home page, in questo caso sono costituite da una piccola immagine accompagnata da un breve testo (abstract). Trailer, video, interviste. Le strutture informative di tipo multimediale7 sono associate alle informazioni testuali per garantire un elevato grado di usabilità da parte dell’utente. Le interviste trattano argomenti sia di tipo commerciale che tecnico ed in generale sono utilizzate per introdurre la problematica di fondo ed il risultato che si viole (o si è voluto) raggiungere (è riportato anche il testo dell’intervista). Hanno una durata di circa 30-60 sec. I video ed i trailer costituiscono di solito dei flash sul progetto ed eventualmente sui partner che vi partecipano (sono accompagnati da una breve descrizione inerente l’argomento). Il trailer standard dura circa 60-70 sec. Seminari. Hanno come target sia l’utente finale, sia gli utenti che lavorano nella CE. Svolgono una funzione divulgativa e di comunicazione. Sono costituiti da sue sezioni: la prima visualizza il video, la seconda mostra le slide della persona che sta parlando. Pubblicazioni. È l’elenco delle pubblicazioni che trattano argomenti inerenti la CE. Documentazione di progetto. È l’insieme dei documenti relativi al progetto. Devono essere catalogati e messi a disposizione dello staff. Seguono un determinato standard definito in [14] Informazioni sui servizi virtuali (VC) offerti dalla Cyber Enterprise. Hanno come target il visitor ed il customer. Descrivono le caratteristiche dei VC che la CE mette loro a disposizione. 1.1.1. Definizione delle meta informazioni e struttura del sito web 7 Vedi Bibliografia [8], [14] 21 Active Web Matrix ________________________________________________________________________________ Le linee guida definite dall’ENEA8 per il design del sito web, sono state utilizzate per progettare l’architettura del web per la CE del progetto SOPHOCLES. Risoluzione del monitor. Questo aspetto vincola fortemente l’architettura del sito. Al crescere della risoluzione video aumenta la quantità di informazione visiva che può essere inserita nella pagina web. Una delle risoluzioni standard adottate da applicazioni web e non, è di 800x600 pixel, tipica dei monitor 15 pollici. Tuttavia la crescente diffusione del computer come strumento “domestico” ed il conseguente abbattimento dei costi di produzione per l’hardware, permettono l’acquisto di monitor con risoluzioni superiori anche per l’utenza comune, non professionale. Un monitor 17 pollici permette di utilizzare una risoluzione di 1024x768 pixel, con un conseguente aumento dello spazio disponibile per la visualizzazione delle informazioni. L’architettura del sito è stata disegnata in base alla risoluzione 1024x768, cercando comunque di garantire una certa compatibilità con quella di 800x600. Struttura del sito. La figura 2.3.a mostra la struttura principale della home page del sito. 2 3 1 Figura 2.3.a – Struttura principale della home page del sito 8 Vedi Bibliografia [13] 22 Active Web Matrix ________________________________________________________________________________ La struttura visiva dell’interfaccia web è composta da: console di navigazione (1); intestazione (2); home page, pagina web del sito (3). L’area (1) è lo strumento attraverso il quale l’utente può navigare all’interno del sito. Durante la navigazione la console, che è comunque dinamica, consente all’utente di avere sempre a disposizione uno “strumento” che gli fornisce la funzionalità necessaria per avere una completa e diretta navigabilità su tutto il sito. Anche l’area (2) è dinamica, in termini di banner che può visivamente mostrare all’utente lo specifico ambiente in cui sta operando (front-end, back-end). Quando l’utente accede al sistema (login), nella parte inferiore dell’intestazione viene visualizzato il suo nome. Tutte le pagine del sito vengono caricate nell’area (3). Le sezioni sono suddivise in due sottoaree: a destra è visualizzata una consolle che contiene un insieme di link relativi alla sezione, a sinistra è visualizzata la pagina di dettaglio delle informazioni selezionate (figura 2.3.b). Area occupata dalla sezione Figura 2.3.b – Struttura del sito, sottomenu di destra e pagina di dettaglio In figura 2.3.c è mostrato il mapping del sito relativo alla fase di progettazione. 23 Active Web Matrix ________________________________________________________________________________ Home HomePage Page Welcome Welcome 0 E-mail E-mailaa Links Links E-mail a E-mail a 1 Project Project Profile Profile Congress & Congress & Workshop Workshop 2 General General Information Information Partners 3 3 Partners Technical Technical Info Info VC VCCatalog Catalog 4 Cyber Cyber Enterprise Enterprise Target Target Groups Groups 4.1 Utilities Utilities 4.2 Cyber Cyber Enterprise Enterprise User User Regisration Regisration Access Access Public Public Doc Doc Technical Sections 5 Users Users Forum Forum FAQs FAQs News News 6 5.1 9 7 Show ShowRoom Room (Multimedia) (Multimedia) 8 Network Network Services Services Trailer 7.1 Trailer 5.2 Video Video 5.3 Flash Flash 7.2 7.3 Customer Sections Figura 2.3.c – Mapping del sito Mediante un utilizzo appropriato della grafica (spazialità del testo, contrasto di colori) ed un raggruppamento delle informazioni per tipologia e tematica la home page è suddivisa in quattro aree verticali; partendo da sinistra si ha: una sezione dedicata alle news; una sezione dedicata alla presentazione di eventi quali interviste, seminari, congressi e workshop; una sezione dedicata alla Cyber Enterprise, con relativa funzione di registrazione o accesso; una sezione dedicata alla pubblicità (SPOT). Nel caso in cui l’utente abbia una risoluzione di 800x600 pixel, la sezione pubblicitaria non verrà mostrata, rimanendo al di fuori dell’area di visualizzazione dello schermo. Ogni area è a sua volta suddivisa in tre sezioni orizzontali. Viene così a determinarsi una sottostruttura a griglia, una Web Matrix, che racchiude tutto il sito web, come mostrato in figura 2.3.d. 24 Active Web Matrix ________________________________________________________________________________ 1 4 7 10 13 2 5 8 11 14 3 6 9 12 15 W eb N avigation N ew s M u ltim ed ia C yb er E nte rp rise S p ot Figura 2.3.d – Web Matrix L’obiettivo di realizzare un sito dinamico e modulare (da qui il termine Active), unito a tale studio grafico ha portato alla definizione di una struttura a matrice in cui ogni cella è indipendente dalle altre e costituisce un singolo modulo funzioanle, gestibile in modo autonomo. La figura 2.3.e descrive i moduli che compongono Active Web Matrix e le loro interazioni. News Manager DB news Publications Manager Multimedia Manager DB publications DB multimedia Console Manager DB console Seminar Manager DB seminar Figura 2.3.e – Active Web Matrix 25 Active Web Matrix ________________________________________________________________________________ Ogni modulo incluso nel sito adotta lo stesso standard grafico (banner, icone, titolozioni, font, colori, backgound, ecc.) ed ha modulo manager per la sua gestione, un database di supporto e un’apposita sezione del sito a cui si può accedere mediante i link del menu principale. Le sezioni sono caricate nell’area (3) di figura 2.3.a secondo la struttura mostrata in figura 2.3.b. Le informazioni di questa area sono quelle del menu di destra e della pagina di dettaglio. Tali informazioni sono recuperate dal relativo database di riferimento. AWM prevede una home page che può essere configurata in modo tale da ospitare in ogni cella un set ridotto di informazioni per ogni singolo modulo: la struttura della pagina (grafica, spazi e font) rimane la stessa, ma le informazioni al suo interno cambiano in base alla configurazione stabilita dall’utente, operazione svolta attraverso un modulo manager dedicato. In figura 2.4 viene mostrato lo studio del layout del sito web in ambiente customer e staff. Il capitolo 4 descrive nel dettaglio sia il layout del sito per il prototipo realizzato che modulo “Manager” di AWM. Staff DBA DBA Figura 2.4 – Layout Staff-View/DBA 1.1.2. Progettazione concettuale Il modello concettuale della base di dati di supporto al sistema è descritto mediante lo schema Entità-Relazione (schema E-R) di figura 2.5. 26 Active Web Matrix ________________________________________________________________________________ (1,n) SEZIONE (1,1) DI LINK (1,1) DI UTENTE (1,n) NEWSL ETTER INCLUS IONE (1,1) (1,n) ACQUI STO (1,n) (1,1) (1,1) MULTIMEDIA (1,1) (1,1) ENTE DI (1,n) (1,n) (1,n) (1,n) DI DI (1,n) COMPANY (1,n) (1,n) (1,n) (1,n) (1,n) DI DI UTENTE (STAFF) DI (1,n) (1,1) DI COMPI LER (1,n) VC (1,n) VALID ATOR DI (1,n) (1,n) APPRO VER SEMINARIO SEZ. PERS. (1,n) DOCUMENTO SEZIONE (1,1) (1,n) (1,n) (1,n) DI DI MESSAGGIO TASK (1,1) INTERVENTO (1,1) (1,n) NEWS (1,1) PUBBLICAZIONE Figura 2.5 – Schema E-R Le pagine che seguono descrivono nel dettaglio le entità dello schema E-R di figura 2.5 implementate nel primo prototipo. Entità NEWS. Rappresenta le news presenti sul sito. Sono individuate univocamente da un identificatore (chiave, id_news). Gli altri attributi sono: titolo: immagine_piccola rappresenta il titolo della news; e immagine_grande: sono le immagini che vengono inserite rispettivamente nella home page (quando richiesto), e nella sezione dedicata; abstract: testo: rappresenta il testo completo della notizia; fonte: rappresenta la fonte di provenienza della notizia; home page descrive in poche righe la notizia (usato nella home page); e area: questi attributi indicano se la news viene visualizzata anche in home page, e l’area in cui deve essere visualizzata. Entità MULTIMEDIA. Rappresenta i multimedia, intesi come video, trailer, interviste. Sono individuati univocamente dall’identificatore id_mm. Gli altri attributi sono: 27 Active Web Matrix ________________________________________________________________________________ titolo: tema: abstract: testo: data: autore: filmato, estensione, tipo_filmato: rappresenta il titolo del multimedia; indica il contesto di riferimento, utile per creare una sottoclassificazione; breve descrizione del multimedia (usato in home page); ripropone il testo dell’intervista o semplicemente una descrizione del filmato; rappresenta la data in cui il filmato è stato girato; nome dell’autore del filmato; questi attributi individuano il video associato e determinano il tipo di formato ed estensione. Sono dati tecnici utilizzati per l’inserimento del video nella pagina HTML; e area: questi attributi indicano se il multimedia è visualizzato in home page, e home_page l’area in cui deve essere inserito. Entità SEMINARIO, SEZIONE, INTERVENTO, le relazioni che le legano. titolo id_sezione abstract soggetto organizzazione real_time ora_inizio ora_fine IP_address filmato estensione (1,1) SEZIONE SEMINARIO abstract data real_time id_intervento DI home_page area argomento mime_type num_slide (1,n) (1,n) tipo_filmato nome_slide DI id_seminario titolo soggetto (1,1) organizzazione real_time IP_address INTERVENTO filmato estensione nome_slide mime_type num_slide tipo_filmato Figura 2.5.a – Entità SEMINARIO, SEZIONE, INTERVENTO, relazioni L’entità SEMINARIO rappresenta l’“evento seminario”. È individuato univocamente da un identificatore (chiave, id_seminario). Gli altri attributi sono: titolo: abstract: data: real_time: rappresenta il titolo, l’argomento del seminario; una breve descrizione degli argomenti trattati; la data in cui si tiene il seminario; indica se il seminario è in diretta, in caso contrario è una replica; 28 Active Web Matrix ________________________________________________________________________________ e area: questi attributi indicano se le informazioni generali sul il seminario home_page devono essere inserite in home page, e l’area in cui devono essere inserite. Per l’entità SEZIONE individuiamo i seguenti attributi: id_sezione: titolo: abstract: una descrizione degli argomenti affrontati nella sezione; soggetto: è il nome della persona che presiede alla sezione e che introduce gli interventi; organizzazione: real_time: ora_inizio identifica univocamente la sezione (chiave); il titolo, l’argomento della sezione; rappresenta l’organizzazione a cui appartiene la persona di cui sopra; indica se la sezione è in real-time oppure è una replica on-line; e ora_fine: rappresentano l’orario di inizio della sezione ed il rispettivo orario di fine; IP_address: filmato, estensione, tipo_filmato: indica l’indirizzo IP del server per la trasmissione in real-time; questi attributi individuano il video associato e determinano il tipo di formato ed estensione. Sono dati tecnici utilizzati per l’inserimento del video nella pagina HTML. Sono utilizzati per i seminari on-line; e mime_type: questi attributi individuano le immagini che rappresentano le nome_slide slide. num_slide: numero delle slide. Per l’entità INTERVENTO individuiamo i seguenti attributi: id_intervento: argomento: soggetto: organizzazione: real_time: IP_address: filmato, estensione, tipo_filmato: identifica univocamente la sezione (chiave); rappresenta l’argomento dell’intervento; è il nome della persona che tiene l’intervento; rappresenta l’organizzazione a cui appartiene la persona di cui sopra; indica se l’intervento è in real-time oppure è una replica on-line; indica l’indirizzo IP del server per la trasmissione in real-time; questi attributi individuano il video associato e determinano il tipo di formato ed estensione. Sono dati tecnici utilizzati per l’inserimento del video nella pagina HTML. Sono utilizzati per i seminari on-line; nome_slide e mime_type: questi attributi individuano le immagini che rappresentano le slide. num_slide: numero delle slide. 29 Active Web Matrix ________________________________________________________________________________ Le relazioni tra queste tre entità, e le rispettive cardinalità, indicano che: un seminario è composto di una o più sezioni, una sezione appartiene ad un solo seminario; una sezione è suddivisa in uno o più interventi, un intervento appartiene ad una sola sezione. Entità PUBBLICAZIONI. L’entità PUBBLICAZIONE rappresenta le pubblicazioni, presentate in determinati eventi. Una pubblicazione è individuata da id_pub (chiave). Gli altri attributi sono: autori: rappresenta la lista degli autori della pubblicazione, i nomi sono separati da una virgola; titolo: note: evento: data: città: indica la città dell’evento o la città in cui esce la pubblicazione; stato: stato in cui si tiene l’evento o in cui esce la pubblicazione; home_page rappresenta il titolo della pubblicazione; eventuali note; evento, manifestazione in cui viene presentata la pubblicazione; la data in cui è presentata, pubblicata; e area: questi attributi indicano se le informazioni relative alla pubblicazione devono essere inserite in home page, e l’area in cui devono essere inserite. Entità SEZIONI del Menu, LINK, le relazioni che le legano. DI (1,n) id_sezione SEZIONE titolo descrizione home_page area (1,1) id_link nome URL LINK num_ordine Figura 2.5.b – Entità SEZIONI del Menu, LINK, relazioni 30 Active Web Matrix ________________________________________________________________________________ L’entità SEZIONE (del Menu) rappresenta una sezione della consolle di navigazione del sito. Ogni console è individuata univocamente da un identificatore (chiave, id_sezione). Gli altri attributi sono: titolo: descrizione: home_page identifica nominalmente la sezione; breve descrizione della funzione che la sezione svolge; e area: questi attributi indicano se la sezione fa parte della consolle di navigazione del sito e la posizioni in cui deve essere inserita. L’entità LINK rappresenta un collegamento ipertestuale della sezione del menu. È individuato univocamente da id_link (chiave). Gli altri attributi sono: nome: URL: num_ordine: è il nome visualizzato sulla consolle di navigazione; è l’URL a cui punta il link; è il numero d’ordine progressivo del link all’interno della sezione. Le relazioni tra queste tre entità, e le rispettive cardinalità, indicano che: una sezione del menu è composta da uno o più link, un link appartiene ad una sola sezione. Entità UTENTE, VC, COMPANY, le relazioni che le legano. UTENTE (1,n) address company_name ACQUI STO id_VC VC_name city id_company zip_code (1,n) VC description phone (1,1) DI (1,n) COMPANY contact_A contact_B VC_version year tel_A gate_IN fax_A gate_OUT VC_IP tel_B web_pages fax_B status email_A note email_B Figura 2.5.c – Entità UTENTE, VC,COMPANY, relazioni 31 Active Web Matrix ________________________________________________________________________________ L’entità VC rappresenta un Virtual Component, in generale un processo in esecuzione su una macchina. È individuato univocamente da id_VC (chiave). Gli altri attributi sono: VC_name: description, note: Vc_version, year: gate_IN, gate_OUT, VC_IP: è il nome del VC; breve descrizione del VC ed eventuali note; identificano la versione del VC; indicano l’indirizzo IP della macchina su cui è in esecuzione il processo ed i port number per la comunicazione con il VC; L’entità COMPANY rappresenta l’azienda che ha prodotto/fornito un VC. È individuata univocamente da id_company (chiave). Gli altri attributi sono: company_name: address, city, zip_code, phone: contact_A, contact_B: tel_A, tel_B, email_A, email_B, fax_A, fax_B: è il nome della company; individuano l’azienda; identificano le persone addette ai contatti con l’utenza. indicano telefono, fax ed e-mail dei due contatti; web_pages: è il link al sito della company. L’entità UTENTE rappresenta il customer che acquista il servizio e può quindi usufruire dei VC. L’entità utente non è descritta, in quanto è uno studio complementare oggetto di un lavoro di tesi. Il lavoro, complesso e articolato, è comunque stato integrato e utilizzato, a livello funzionale, nella realizzazione del sito web stesso. Le relazioni tra queste tre entità, e le rispettive cardinalità, indicano che: un VC è prodotto da una sola azienda, una azienda può fornire uno o più VC; un utente può acquistare uno o più VC, un VC può essere acquistato da più utenti. 32 Active Web Matrix ________________________________________________________________________________ Entità DOCUMENTO, ENTE, TASK, STAFF e le relazioni che le legano. MESSAGGIO TASK (1,n) (1,1) DI INCLUS IONE (1,1) (1,n) (1,1) DOCUMENTO (1,1) (1,1) APPRO VER (1,1) VALID ATOR DI COMPI LER (1,n) ENTE (1,n) (1,n) (1,n) (1,n) UTENTE (STAFF) DI (1,1) Figura 2.5.d – Entità DOCUMENTO, ENTE, STAFF, TASK, MESSAGGIO, relazioni L’entità DOCUMENTO rappresenta un documento di progetto. La definizione di uno standard9 per tale tipologia di documentazione, unito ad una classificazione dello staff, ha consentito la strutturazione del documento ed il conseguente utilizzo di un database per realizzare un repository. Il campo id è il campo chiave. Gli altri attributi sono: codice_doc: strutturato è un codice alfanumerico che identifica univocamente il documento; è nel seguente modo: OR-SS-TS-NNN-VV, dove OR è il codice dell’organizzazione a cui appartiene il documento, SS identifica l’argomento a cui si riferisce il documento, TS il task di progetto, NNN è il numero progressivo del documento a parità degli altri codici, VV è la versione del documento, questo campo è usato nella fase di revisione; classificazione: questo campo identifica il livello di privacy del documento; può assumere i valori P(ublic), R(estricted), C(onfidential). P indica che il documento è pubblico e può essere visto dallo staff e dagli utenti del sito, R indica che il documento è ristretto allo staff, C indica che il documento può essere visto solo dagli utenti che sono inclusi nella lista di distribuzione associata al documento; 9 Standard per la documentazione. Vedi Bibliografia [15] 33 Active Web Matrix ________________________________________________________________________________ contratto: titolo: abstract: annotazioni: numero del contratto relativo al progetto a cui si riferisce il documento; titolo del documento; è una breve descrizione del contenuto del documento; questo campo contiene brevi note sul documento, sono utili in fase di revisione; autori: è la lista degli autori del documento (nome e cognome), ogni nome di autore è separato da un “; ” come definito da standard; nella lista degli autori è inserito anche il nome del compiler del documento. status: num_pagine: nome_file, dimensione, ftp_server_http: indica lo status del documento, può assumere i valori working, draft, final; indica il numero di pagine del documento; questi campi rappresentano le informazioni del file (formato elettronico del documento) es. documento Ms Word, Excel, pdf, html, txt; il primo individua il nome del file, il secondo la dimensione in Kbyte, il terzo campo indica l’indirizzo IP della macchina da cui proviene il file; revisione: data: allegato: dist_list: indica il numero progressivo di revisione del documento (0, 1, 2, …); indica la data di inserimento o di approvazione del documento; rappresenta il nome di un eventuale file allegato, oltre al documento; è la lista di distribuzione del documento, è utilizzata per i documenti classificati C. L’entità ENTE rappresenta l’organizzazione che ha prodotto il documento. È individuata univocamente dal campo code (chiave) costituito da una coppia di lettere, (il campo OR nel codice del documento). Gli altri attributi sono: name: nationality, city, address, cap: è il nome dell’organizzazione; individuano l’azienda. L’entità TASK rappresenta l’insieme dei task per un progetto. È individuato univocamente da task_num (chiave) costituito da un codice di due cifre (indicato anche nel codice del documento). Gli altri attributi sono: task_name: è il nome del task. L’entità MESSAGGIO rappresenta un messaggio che può essere inviato agli utenti per indicare l’inserimento di un nuovo documento. Il messaggio viene inserito nel database, e quando l’utente 34 Active Web Matrix ________________________________________________________________________________ effettua il login sul sistema il messaggio viene visualizzato. Il messaggio è individuato univocamente da cod_msg (chiave). Gli altri attributi sono: data: ora: destinatari: data in cui è stato inviato il messaggio; ora in cui è stato inviato il messaggio; lista dei destinatari del messaggio, è costituita dai codici utente separati da una virgola. doc_allegato: nome del file allegato al messaggio, è il documento che è stato appena inserito; testo: è il testo del messaggio. L’entità UTENTE (STAFF) rappresenta un elemento dello staff. Un utente è individuato univocamente dal campo user_id (chiave), usata dall’utente per il login insieme alla password. Gli altri attributi sono: password: cognome, nome: indirizzo, telefono: email: è l’e-mail dell’utente; P,R,C: questi campi assumono valori true/false e indicano se l’utente è abilitato o meno è la password dell’utente; rappresentano rispettivamente nome e cognome dell’utente; dati a corredo. alla visualizzazione dei documenti classificati P, R, C. Le relazioni tra queste tre entità, e le rispettive cardinalità, indicano che: un documento appartiene ad un solo ente, un ente può produrre più documenti; un documento è relativo ad un solo task, più documenti hanno lo stesso task; un utente fa parte di una sola organizzazione, ovviamente un’organizzazione ha più persone che possono essere utenti del sistema; un documento può avere più autori, ma ha un solo editor, compiler e approver, un utente può essere sia editor che compiler che approver; un messaggio può includere un solo documento, a priori un documento può essere inserito in più messaggi. 35 Active Web Matrix ________________________________________________________________________________ 1.1.3. Progettazione logica L’analisi dei dati del dominio applicativo e la conseguente schematizzazione concettuale descritta in 2.1.2, hanno permesso di definire nel dettaglio le tabelle delle entità e delle relazioni identificate. Di seguito sono mostrate le tabelle del sistema con i campi, la tipologia del campo e la relativa descrizione. Per ogni tabella sono messi in evidenza i vincoli di integrità referenziale. 36 Active Web Matrix ________________________________________________________________________________ Tabella news Implementa: l’entità NEWS id_news Numero contatore Titolo Immagine_piccola Stringa di caratteri Stringa di caratteri Immagine_grande Stringa di caratteri Abstract Stringa di caratteri Testo Fonte Stringa di caratteri Stringa di caratteri Home_page Stringa di caratteri Area Stringa di caratteri Identifica univocamente la news Titolo della news Nome dell’immagine che viene inserita in home page Nome dell’immagine che viene inserita nella sezione Breve testo, utilizzato per la home page Testo della news Fonte di provenienza della news Assume i valori true/false per indicare se la news va o meno in home page Indica l’area in cui deve essere inserita la news Tabella 2.1.a - News Tabella multimedia Implementa: l’entità MULTIMEDIA id_mm Numero contatore Titolo Tema Stringa di caratteri Stringa di caratteri Abstract Stringa di caratteri Testo Data Stringa di caratteri Data Autore Filmato Stringa di caratteri Stringa di caratteri Estensione Tipo_filmato Stringa di caratteri Stringa di caratteri 10 Identifica univocamente i multimedia Titolo del multimedia Tema, contesto in cui si inserisce il multimedia Breve testo, utilizzato per la home page Testo del multimedia Data di produzione del video Autore del video Nome del file multimediale10 Estensione del file Mime_type del filmato, dipende dall’estensione Lo standard utilizzato per i nomi è il seguente: <nome_file>_small.<estensione> per i video che vengono inseriti in home page; <nome_file>_56k.<estensione> per i video con risoluzione e bit-rate adattati a connessioni mediante linea telefonica; <nome_file>_lan.<estensione> per i video trasmessi su reti ad alta velocità, tipicamente le LAN. 37 Active Web Matrix ________________________________________________________________________________ Home_page Stringa di caratteri Area Stringa di caratteri Assume i valori true/false per indicare se il multimedia va o meno in home page Indica l’area in cui deve essere inserita il multimedia Tabella 2.1.b - Multimedia Tabella seminari Implementa: l’entità SEMINARIO id_seminario Numero contatore Titolo Abstract Stringa di caratteri Stringa di caratteri Data Data Real_time Stringa di caratteri Home_page Stringa di caratteri Area Stringa di caratteri Identifica univocamente il seminario Titolo del seminario Breve descrizione degli argomenti del seminario Data in cui si tiene il seminario Assume il valori true se il seminario è in real-time, false altrimenti Assume i valori true/false per indicare se il multimedia va o meno in home page Indica l’area in cui deve essere inserita il multimedia Tabella 2.1.c – Seminari Tabella sezioni_seminario Implementa: l’entità SEZIONE l’associazione DI tra SEZIONE e SEMINARIO id_sezione Numero contatore id_seminario Intero Titolo Abstract Stringa di caratteri Stringa di caratteri 38 Numero progressivo della sezione, insieme a id_seminario costituisce la chiave primaria della tabella id del seminario a cui appartiene la sezione Titolo della sezione Breve descrizione degli argomenti della sezione Active Web Matrix ________________________________________________________________________________ Soggetto Stringa di caratteri Organizzazione Stringa di caratteri Real_time Stringa di caratteri Ora_inizio Ora Ora_fine Ora IP_address Stringa di caratteri Filmato Stringa di caratteri Estensione Tipo_filmato Stringa di caratteri Stringa di caratteri Nome_slide Stringa di caratteri Mime_type Stringa di caratteri Num_slide Intero Nome della persona che presiede la sezione Organizzazione a cui appartiene il soggetto Assume il valori true se il seminario è in real time, false altrimenti Orario di inizio della sessione Orario in cui finisce la sessione Indirizzo IP del server per le trasmissioni in real-time, nel caso di seminari On-Line il valore di questo campo viene ignorato Nome del video, usato per i seminari On-Line Estensione del file Mime_type del filmato, dipende dall’estensione Nome delle immagini che rappresentano le slides. Le immagini hanno tutte lo stesso nome e sono numerate a partire da 001, 002, … Estensioni delle immagini che compongono le slides Numero delle slides, per scorrimento immag. Tabella 2.1.d – Sezioni_seminario VINCOLI Chiavi esterne: - id_seminario riferimento id_seminario in seminari Tabella interventi_sezione Implementa: l’entità INTERVENTI l’associazione DI tra INTERVENTI e SEZIONI 39 Active Web Matrix ________________________________________________________________________________ id_sezione Numero contatore id_sezione Intero id_seminario Intero Argomento Stringa di caratteri Soggetto Stringa di caratteri Organizzazione Stringa di caratteri Real_time Stringa di caratteri IP_address Stringa di caratteri Filmato Stringa di caratteri Estensione Tipo_filmato Stringa di caratteri Stringa di caratteri Nome_slide Stringa di caratteri Mime_type Stringa di caratteri Num_slide Intero Numero progressivo dell’intervento all’interno della sezione, insieme a id_sezione e id_seminario è chiave primaria Identifica la sezione a cui appartiene l’intervento Id del seminario a cui appartiene la sezione Argomento dell’intervento Nome della persona che tiene l’intervento Organizzazione a cui appartiene il soggetto Assume il valore true se il seminario è in real time, false altrimenti Indirizzo IP del server per le trasmissioni in real time, nel caso di seminari On-Line il valore di questo campo viene ignorato Nome del video, usato per i seminari On-Line Estensione del file Mime_type del filmato, dipende dall’estensione Nome delle immagini che rappresentano le slides. Le immagini hanno tutte lo stesso nome e sono numerate a partire da 001, 002, … Estensioni delle immagini che compongono le slides Numero delle slides, utilizzato per lo scorrimento delle immagini Tabella 2.1.e – Interventi_sezione VINCOLI Chiavi esterne: - id_seminario - id_sezione riferimento id_seminario in seminari riferimento id_sezione in sezioni_seminario 40 Active Web Matrix ________________________________________________________________________________ Tabella pubblicazioni Implementa: l’entità PUBBLICAZIONE id_pub Numero contatore autori Stringa di caratteri titolo Stringa di caratteri note evento Stringa di caratteri Stringa di caratteri data Stringa di caratteri citta Stringa di caratteri stato Home_page Stringa di caratteri Stringa di caratteri Area Stringa di caratteri Numero progressivo, è la chiave primaria Rappresenta la lista degli autori della pubblicazione, i nomi sono separati da una virgola Titolo della pubblicazione Eventuali note Evento, manifestazione in cui viene presentata la pubblicazione Data per esteso della pubblicazione o dell’evento Città in cui viene presentata la pubblicazione altrimenti Stato della città Assume i valori true/false per indicare se la pubblicazione va o meno in home page Indica l’area in cui deve essere inserita la pubblicazione Tabella 2.1.f – Pubblicazioni 41 Active Web Matrix ________________________________________________________________________________ Tabella sezioni_consolle Implementa: l’entità SEZIONE id_sezione Numero contatore Titolo Descrizione Stringa di caratteri Stringa di caratteri Home_page Stringa di caratteri Area Stringa di caratteri Identifica univocamente la sezione Titolo della sezione Breve descrizione della sezione e dei link che contiene Assume i valori true/false per indicare se la sezione fa parte della console principale Indica l’area in cui deve essere inserita la sezione Tabella 2.1.g – Sezioni_console Tabella link_sezione Implementa: l’entità LINK l’associazione DI tra SEZIONE e LINK id_link Numero contatore id_sezione Intero Nome Stringa di caratteri URL Stringa di caratteri Num_ordine Stringa di caratteri Identifica univocamente il link Identificativo della sezione a cui appartiene il link Nome del link che appare nel menu URL a cui punta il link Numero d’ordine progressivo del link all’interno della sezione Tabella 2.1.h – Link_sezione VINCOLI Chiavi esterne: - id_sezione riferimento id_sezione in sezioni_consolle Tabella vc 42 Active Web Matrix ________________________________________________________________________________ Implementa: l’entità VC l’associazione DI tra VC e COMPANY id_VC Numero contatore VC_name description VC_version year Stringa di caratteri Stringa di caratteri Stringa di caratteri data Gate_IN Gate_OUT VC_IP Stringa di caratteri Stringa di caratteri Stringa di caratteri note Stringa di caratteri status Stringa di caratteri Id_company Numero Costituisce la chiave primaria della tabella Nome del VC Descrizione del VC Versione del VC Data di rilascio della versione Porta di ingresso Potta di uscita Indirizzo IP della macchina su cui è in esecuzione il VC Note tecniche relative al VC Status del VC (attivato, disattivato,…) Id della company che ha prodotto il VC Tabella 2.1.m – VC 43 Active Web Matrix ________________________________________________________________________________ VINCOLI Chiavi esterne: - id_company riferimento id_company in company Tabella company Implementa: l’entità COMPANY id_company Numero contatore company_name address Stringa di caratteri Stringa di caratteri city zip_code phone Stringa di caratteri Stringa di caratteri Stringa di caratteri Contact_A_name Stringa di caratteri Contact_B_name Stringa di caratteri Tel_contact_A Stringa di caratteri Tel_contact_B Stringa di caratteri Fax_contact_A Stringa di caratteri Fax_contact_B Stringa di caratteri Email_contact_A Stringa di caratteri Email_contact_B Stringa di caratteri Web_pages Stringa di caratteri Costituisce la chiave primaria della tabella Nome della company Indirizzo della company Città della company CAP Numero di telefono della company Nome della persona addetta ai contatti con gli utenti Nome della persona addetta ai contatti con gli utenti Telefono della persona addetta ai contatti Telefono della persona addetta ai contatti Fax della persona addetta ai contatti Fax della persona addetta ai contatti email della persona addetta ai contatti email della persona addetta ai contatti Link al sito della company Tabella 2.1.m – Company 44 Active Web Matrix ________________________________________________________________________________ Tabella purchasing Implementa: l’associazione ACQUISTO tra VC e UTENTE id_user Numero id_VC Numero Kind Stringa di caratteri Id dell’utente che ha acquistato il VC, insieme a id_VC costituisce chiave primaria Id del VC acquistato dall’utente, insieme a id_user costituisce chiave primaria Individua quale tipologia di utente ha acquistato il VC Tabella 2.1.n – Purchasing VINCOLI Chiavi esterne: - id_user - id_VC riferimento id_user nel DB degli utenti riferimento id_VC in VC La documentazione di progetto. Tabella documenti Implementa: l’entità DOCUMENTO l’associazione COMPILER tra DOCUMENTO e UTENTE l’associazione VALIDATOR tra DOCUMENTO e UTENTE l’associazione APPROVER tra DOCUMENTO e UTENTE l’associazione DI tra DOCUMENTO e ENTE l’associazione DI tra DOCUMENTO e TASK id Numero Contatore codice_doc Stringa di caratteri 45 Id del documento, costituisce la chiave primaria della tabella. Codice alfanumerico univoco del documento, costruito secondo lo standard. Active Web Matrix ________________________________________________________________________________ classificazione Stringa di caratteri ente Stringa di caratteri num_task Numero contratto titolo abstract Stringa di caratteri Stringa di caratteri Stringa di caratteri annotazioni Stringa di caratteri autori Stringa di caratteri status Stringa di caratteri num_pagine Numero nome_file Stringa di caratteri dimensione Numero ftp_server_http Stringa di caratteri revisione Numero data Data compiler Stringa di caratteri validator Stringa di caratteri approver Stringa di caratteri allegato Stringa di caratteri dist_list Stringa di caratteri Classificazione del documento, assume i valori P,R,C. Id dell’ente a cui appartiene il documento. Codice del task a cui appartiene il documento. Numero di contratto. Titolo del documento. Breve descrizione dei contenuti del documento. Note relative al documento. Lista degli autori del documento,gli autori sono separati da un “;” seguito da uno spazio, per ogni autore si indica nome e cognome. Status del documento, assume i valori working, draft e final. Numero di pagine del documento. Nome del file (documento in formato elettronico). Dimensione del file in byte. Indirizzo IP della macchina da cui è stato inserito il documento. Numero progressivo di revisione (0,1,…). Data di inserimento, modifica e approvazione del documento. User id dell’utente che ha compilato il documento. User id dell’utente che ha validato il documento. User id dell’utente che ha validato il documento. Nome di un eventuale file allegato al documento. Lista di distribuzione per i documenti classificati C, gli user id degli utenti sono separati da “;”. Tabella 2.1.p – Documenti 46 Active Web Matrix ________________________________________________________________________________ VINCOLI Chiavi esterne: - ente riferimento code in ente - num_task riferimento task_num in task - compiler riferimento user_id in utente - validator - approver riferimento user_id in utente riferimento user_id in utente Tabella ente Implementa: l’entità ENTE code Stringa di caratteri name Stringa di caratteri nationality Stringa di caratteri address Stringa di caratteri city Stringa di caratteri cap Stringa di caratteri Codice dell’organizzazione, chiave. Nome dell’organizzazione. Stato in cui si trova l’organizzazione. Indirizzo dell’organizzazione. Città dell’organizzazione. CAP. Tabella 2.1.q – Ente Tabella task Implementa: l’entità TASK task_num Numero task_name Stringa di caratteri Codice del task, chiave. Nome del task. Tabella 2.1.r – Task Tabella utenti Implementa: l’entità UTENTI (STAFF) l’associazione DI tra UTENTE e ENTE 47 Active Web Matrix ________________________________________________________________________________ User_id Stringa di caratteri password Ente Stringa di caratteri Stringa di caratteri Cognome Nome Indirizzo Telefono Email Profilo P Stringa Stringa Stringa Stringa Stringa Stringa Stringa R Stringa di caratteri C Stringa di caratteri di di di di di di di caratteri caratteri caratteri caratteri caratteri caratteri caratteri User_id dell’utente, chiave. Password dell’utente. Codice dell’organizzazione a cui appartiene l’utente. Cognome dell’utente. Nome dell’utente. Indirizzo dell’utente. Telefono dell’utente. email dell’utente. Profili dell’utente. Autorizzazione alla visione dei documenti classificati P (true/false). Autorizzazione alla visione dei documenti classificati R (true/false). Autorizzazione alla visione dei documenti classificati C (true/false). Tabella 2.1.s – Utente (staff) Tabella msg_doc Implementa: l’entità MESSAGGIO l’associazione INCLUSIONE tra MESSAGGIO e DOCUMENTO CodMsg Numero Contatore data ora destinatari Stringa di caratteri Stringa di caratteri Stringa di caratteri doc_allegato Stringa di caratteri testo Stringa di caratteri Codice progressivo del messaggio, chiave. Data di invio. Ora di invio. Lista dei destinatari (user id) separati da un “;”. codice del documento a cui si riferisce il messaggio. Testo del messaggio. Tabella 2.1.t – Msg_doc VINCOLI Chiavi esterne: - doc_allegato riferimento codice_doc in documenti 48 Active Web Matrix ________________________________________________________________________________ 1.1.4. Progettazione fisica Lo schema fisico della base di dati è stato implementato secondo le strutture dati previste a livello di progetto in 2.1.3. Di seguito riportiamo le strutture delle directory appositamente create come supporto al database11 nel caso di applicazione centralizzata. http_doc Pagine HTML, ASP, … directory operazioni file Pagine ASP database db1 news MM seminari <seminario1> <sezione1> <intervento1> slides <interventox> <sezionex> doconline Pagine ASP DB_doc documents file attachments file Figura 2.6.a – Struttura delle directory e dei file (caso centralizzato) AWM è stata progettata per poter operare in un ambiente distribuito,la figura 2.6.b mostra un possibile esempio di architettura distribuita per i database, le directory e le applicazioni di supporto. 11 In questa fase della progettazione non viene preso in considerazione nessun sistema operativo, sono descritti solo i dati del generico file system che sono di supporto alla base di dati. 49 Active Web Matrix ________________________________________________________________________________ Web Server 1 Web Server 2 http_doc Database http_doc Pagine HTML,ASP OPERAZIONI Network http_doc NEWS, MM http_doc Web Server 3 Database DOCONLINE Web Server 4 Figura 2.6.b – Struttura delle directory (caso distribuito) 1.2. Progettazione dei moduli applicativi In questo paragrafo sono descritte le procedure di gestione e le funzioni di interrogazione della base di dati. Sono indicate anche le tabelle a cui si riferiscono o sono collegate. Ogni procedura di gestione ha un nome, un identificativo, le funzioni che svolge, le tabelle interessate, la procedura da cui è chiamata e quelle che chiama (livelli gerarchici), la data, l’autore, la revisione. Per le procedure più complesse è previsto anche un flow-chart per esemplificarne il funzionamento. Le procedure sono rappresentate mediante l’uso di schemi che seguono la simbologia riportata di seguito. 50 Active Web Matrix ________________________________________________________________________________ PROCEDURA DI GESTIONE PROCEDURA DI CONSULTAZIONE A B rappresenta la procedura di gestione (inserimento, cancellazione, modifica) rappresenta la procedura di consultazione (usata nella gestione) rappresenta il fatto che A chiama B Figura 2.7 – Simbologia per le procedure Per le funzioni di interrogazione indichiamo il nome, il codice, la descrizione, le tabelle coinvolte, i parametri, i campi di visualizzazione, quelli di join, le condizioni e la stringa SQL. 1.2.1. Funzioni di gestione e relative procedure Le figure che seguono schematizzano le funzioni di gestione di ogni modulo di AWM. Partendo dal menu principale è possibile accedere a tali funzioni. 51 Active Web Matrix ________________________________________________________________________________ MENU GESTIONE INTERROGAZIONE Figura 2.8.a – Menu generale GESTIONE NEWS DOCUMENTAZIONE MULTIMEDIA HOME PAGE MENU SEMINARI PUBBLICAZIONI Figura 2.8.b – Gestione 52 Active Web Matrix ________________________________________________________________________________ NEWS INSERIMENTO MODIFICA CANCELLAZIONE NEWS Figura 2.8.c – Gestione news MULTIMEDIA INSERIMENTO MODIFICA CANCELLAZIONE MULTIMEDIA Figura 2.8.d – Gestione multimedia 53 Active Web Matrix ________________________________________________________________________________ SEMINARI EVENTO INTERVENTO INSERIMENTO CANCELLAZIONE MODIFICA INSERIMENTO MODIFICA CANCELLAZIONE SEMINARIO SEZIONE INSERIMENTO MODIFICA SEZIONE CANCELLAZIONE SEMINARIO Figura 2.8.e – Gestione seminari PUBBLICAZIONI INSERIMENTO MODIFICA CANCELLAZIONE PUBBLICAZIONI Figura 2.8.f – Gestione pubblicazioni 54 Active Web Matrix ________________________________________________________________________________ MENU SEZIONE LINK INSERIMENTO MODIFICA CANCELLAZIONE INSERIMENTO MODIFICA CANCELLAZIONE SEZIONE SEZIONE Figura 2.8.g – Gestione menu HOME PAGE MODIFICA NEWS HOME PAGE SEMINARI MULTIMEDIA PUBBLICAZIONI MENU Figura 2.8.h – Gestione home page 55 Active Web Matrix ________________________________________________________________________________ DOCUMENTAZIONE INSERIMENTO DOCUMENTI CARD DOCUMENTI REVISIONE MODIFICA LISTA DOCUMENTI CANCELLA Figura 2.8.m – Gestione documentazione Le tabelle che seguono riguardano le procedure di gestione della base di dati. nome id funzione tabelle chiamata_da chiama data autore revisione codice livello_gerarchico precedenza controlli flow Gestione_news Gs3_N1 Gestione delle News Gestione Inserimento_news, Modifica_news, Cancella_news 20/11/2002 UA-02 ULAB-02 GM-N-0001.03.02 3 Tabella 2.2.a – Gestione News nome id funzione tabelle chiamata_da Inserimento_news Gs4_N1 Inserimento di una News NEWS Gestione_news 56 Active Web Matrix ________________________________________________________________________________ chiama data autore revisione codice livello_gerarchico precedenza controlli flow 20/11/2002 UA-02 ULAB-02 GI-N-0001.03.02 4 Tabella 2.2.b – Inserimento News nome id funzione tabelle chiamata_da chiama data autore revisione codice livello_gerarchico precedenza controlli flow Modifica_news Gs4_N2 Modifica i dati di una News NEWS Gestione_news Selezione_news 20/11/2002 UA-02 ULAB-02 GV-N-0001.03.02 4 Tabella 2.2.c – Modifica News Nome Id Funzione Tabelle chiamata_da Chiama Data Autore Revisione Codice livello_gerarchico Precedenza Controlli Flow Cancella_news Gs4_N3 Eliminazione di una News dal database NEWS Gestione_news Selezione_news 20/11/2002 UA-02 ULAB-02 GC-N-0003.00.02 4 Tabella 2.2.d – Cancella News Nome Id Selezione_news Gs5_N1 57 Active Web Matrix ________________________________________________________________________________ Restituisce la lista delle News nel database, per consentire la scelta della news da modificare o cancellare NEWS Modifica_news, Cancella_news, Gestione_home_page Funzione tabelle chiamata_da chiama data autore revisione codice livello_gerarchico precedenza controlli flow 20/11/2002 UA-02 ULAB-02 GS-N-0001.03.02 5 Tabella 2.2.e – Selezione News Gestione_multimedia Gs3_M1 Gestione dei Multimedia Nome Id Funzione Tabelle chiamata_da Chiama Data Autore Revisione Codice livello_gerarchico Precedenza Controlli Flow Gestione Inserimento_multimedia, Modifica_multimedia, Cancella_multimedia 20/11/2002 UA-02 ULAB-02 GM-M-0001.01.02 3 Tabella 2.3.a – Gestione Multimedia Nome Id funzione tabelle chiamata_da chiama data autore revisione codice livello_gerarchico Inserimento_multimedia Gs4_M1 Inserimento di un Multimedia MULTIMEDIA Gestione_multimedia 20/11/2002 UA-02 ULAB-02 GI-M-0001.04.02 4 58 Active Web Matrix ________________________________________________________________________________ precedenza controlli Flow Tabella 2.3.b – Inserimento Multimedia Nome Id Funzione Tabelle chiamata_da Chiama Data Autore Revisione Codice Livello_gerarchico Precedenza Controlli Flow Modifica_multimedia Gs4_M2 Modifica di un Multimedia MULTIMEDIA Gestione_multimedia Selezione_news 20/11/2002 UA-02 ULAB-02 GV-M-0001.02.02 4 Tabella 2.3.c – Modifica Multimedia Nome Id Funzione Tabelle chiamata_da Chiama Data Autore Revisione Codice Livello_gerarchico Precedenza Controlli Flow Cancella_multimedia Gs4_M3 Cancella un Multimedia dal database MULTIMEDIA Gestione_multimedia Selezione_news 20/11/2002 UA-02 ULAB-02 GC-M-0001.02.02 4 Tabella 2.3.d – Cancella Multimedia Nome id funzione tabelle Selezione_multimedia Gs5_M1 Restituisce la lista dei Multimedia nel database, per consentire la scelta del multimedia da modificare o cancellare MULTIMEDIA 59 Active Web Matrix ________________________________________________________________________________ Modifica_multimedia, Cancella_multimedia, Gestione_home_page chiamata_da chiama data autore revisione codice livello_gerarchico precedenza controlli flow 20/11/2002 UA-02 ULAB-02 GS-M-0001.02.02 5 Tabella 2.3.e – Selezione Multimedia Gestione_seminario Gs3_S1 Gestione dei Seminari Nome Id Funzione Tabelle chiamata_da Chiama Data Autore Revisione Codice livello_gerarchico Precedenza Controlli Flow Gestione G_Seminario, G_Sezione, G_Intervento 20/11/2002 UA-02 ULAB-02 GT-S-0001.06.02 3 Tabella 2.4.a – Gestione Seminari Nome Id funzione tabelle chiamata_da chiama data autore revisione codice livello_gerarchico precedenza controlli Flow G_Seminario Gs4_S1 Gestione dell’evento seminario SEMINARI Gestione_seminario Inserimento_seminario, Modifica_seminario, Cancella_seminario 20/11/2002 UA-02 ULAB-02 GM-S-0001.06.02 4 Tabella 2.4.b – Gestione dell’ “evento” seminario 60 Active Web Matrix ________________________________________________________________________________ Nome Id Funzione Tabelle chiamata_da Chiama Data Autore Revisione Codice Livello_gerarchico Precedenza Controlli Flow G_Sezione Gs4_S2 Gestione delle sezioni dei seminari SEMINARI, SEZIONI_SEMINARIO Gestione_seminari Inserimento_sezione, Modifica_sezione, Cancella_sezione 20/11/2002 UA-02 ULAB-02 GM-SS-0001.06.02 4 Tabella 2.4.c – Gestione sezioni dei seminari Nome Id Funzione Tabelle chiamata_da chiama data autore revisione codice Livello_gerarchico precedenza controlli Flow G_intervento Gs4_S3 Gestione degli interventi di una sezione di seminario SEMINARI, SEZIONI_SEMINARIO, INTERVENTI_SEZIONE Gestione_seminari Inserimento_intervento, Modifica_intervento, Cancella_intervento 20/11/2002 UA-02 ULAB-02 GM-I-0001.03.02 4 Tabella 2.4.d – Gestione interventi delle sezioni Nome Id Funzione Tabelle chiamata_da Chiama Data Inserimento_seminario Gs5_S1 Inserimento di un Seminario SEMINARI G_seminario 20/11/2002 61 Active Web Matrix ________________________________________________________________________________ Autore Revisione Codice livello_gerarchico Precedenza Controlli Flow UA-02 ULAB-02 GI-S-0001.06.02 5 Tabella 2.4.e – Inserimento Seminario Nome Id Funzione Tabelle chiamata_da Chiama data autore revisione codice Livello_gerarchico precedenza controlli Flow Modifica_seminario Gs5_S2 Modifica di un Seminario SEMINARI G_seminario 20/11/2002 UA-02 ULAB-02 GV-S-0001.03.02 5 Tabella 2.4.f – Modifica Seminario Nome Id funzione Tabelle chiamata_da chiama data autore revisione codice Livello_gerarchico precedenza controlli Flow Cancella_seminario Gs5_S3 Cancellazione di un seminario SEMINARI G_seminario 20/11/2002 UA-02 ULAB-02 GC-S-0001.02.02 5 Tabella 2.4.g – Cancella Seminario Nome Id Inserimento_sezione Gs5_S4 62 Active Web Matrix ________________________________________________________________________________ Funzione Tabelle chiamata_da Chiama Data Autore Revisione Codice livello_gerarchico Precedenza Controlli Flow Inserimento di una sezione di Seminario SEMINARI, SEZIONI_SEMINARIO G_sezione Selezione_seminario 20/11/2002 UA-02 ULAB-02 GI-SS-0001.06.02 5 Tabella 2.4.h – Inserimento Sezione di seminario Nome Id Funzione Tabelle chiamata_da Chiama Data autore revisione codice Livello_gerarchico precedenza controlli Flow Modifica_sezione Gs5_S5 Modifica di una sezione di un Seminario SEMINARI, SEZIONI_SEMINARIO G_sezione Selezione_seminario 20/11/2002 UA-02 ULAB-02 GV-SS-0001.06.02 5 Tabella 2.4.m – Modifica Sezione di seminario Nome Id funzione Tabelle chiamata_da chiama data autore revisione codice Livello_gerarchico precedenza controlli Flow Cancella_sezione Gs5_S6 Cancellazione di una sezione di seminario SEMINARI, SEZIONI_SEMINARIO G_sezione Selezione_seminario 20/11/2002 UA-02 ULAB-02 GC-SS-0001.02.02 5 63 Active Web Matrix ________________________________________________________________________________ Tabella 2.4.n – Cancella Sezione di seminario Nome Id Funzione Tabelle chiamata_da Chiama Data Autore Revisione Codice livello_gerarchico Precedenza Controlli Flow Inserimento_intervento Gs5_S7 Inserimento di un intervento di sezione per un Seminario SEMINARI, SEZIONI_SEMINARIO, INTERVENTI_SEZIONE G_intervento Selezione_seminario 20/11/2002 UA-02 ULAB-02 GI-I-0001.06.02 5 Tabella 2.4.p – Inserimento Intervento di Sezione Nome Id funzione Tabelle chiamata_da chiama data autore revisione codice Livello_gerarchico precedenza controlli Flow Modifica_intervento Gs5_S8 Modifica di intervento di una sezione per un Seminario SEMINARI, SEZIONI_SEMINARIO, INTERVENTI_SEZIONE G_intervento Selezione_seminario 20/11/2002 UA-02 ULAB-02 GV-I-0001.03.02 5 Tabella 2.4.q – Modifica Intervento di Sezione Nome Id Funzione Cancella_Intervento Gs5_S9 Cancellazione di un intervento per una sezione di seminario 64 Active Web Matrix ________________________________________________________________________________ Tabelle chiamata_da Chiama Data Autore Revisione Codice Livello_gerarchico Precedenza Controlli Flow SEMINARI, SEZIONI_SEMINARIO, INTERVENTI_SEZIONE G_sezione Selezione_seminario 20/11/2002 UA-02 ULAB-02 GC-I-0001.03.02 5 Tabella 2.4.r – Cancella Intervento di Sezione Selezione_seminario Gs6_S1 Restituisce la lista dei Seminari nel database, per consentire la scelta del seminario da modificare, cancellare; consente la scelta del seminario per la gestione delle Sezioni e degli Interventi SEMINARI Inserimento_sezione, Modifica_sezione, Cancella_sezione, Inserimento_intervento, Modifica_intervento, Cancella_intervento, Gestione_home_page Selezione_sezioni Nome Id funzione tabelle chiamata_da chiama data autore revisione codice livello_gerarchico precedenza controlli flow NOTA: solo nel caso sia chiamata da Inserimento_intervento, Modifica_intervento, Cancella_intervento 20/11/2002 UA-02 ULAB-02 GS-S-0001.03.02 6 Tabella 2.4.s – Selezione Seminario Nome Id Selezione_sezione Gs7_S1 65 Active Web Matrix ________________________________________________________________________________ Funzione Tabelle chiamata_da Chiama Data Autore Revisione Codice livello_gerarchico Precedenza Controlli Flow Restituisce la lista delle Sezioni nel database per un dato seminario, per consentire la scelta della sezione per le operazioni di gestione degli interventi SEZIONI_SEMINARIO Selezione_Seminari 20/11/2002 UA-02 ULAB-02 GS-SS-0001.03.02 7 Tabella 2.4.t – Selezione Sezione di seminario Gestione_pubblicazioni Gs3_P1 Gestione delle Pubblicazioni Nome Id Funzione Tabelle chiamata_da Chiama Data Autore Revisione Codice livello_gerarchico Precedenza Controlli Flow Gestione Inserimento_pub, Modifica_pub, Cancella_pub 20/11/2002 UA-02 ULAB-02 GM-P-0001.00.02 3 Tabella 2.5.a – Gestione Pubblicazioni Nome Id Funzione Tabelle chiamata_da Chiama Data Autore Revisione Codice livello_gerarchico Inserimento_pub Gs4_P1 Inserimento di una Pubblicazione PUBBLICAZIONI Gestione_pubblicazioni 20/11/2002 UA-02 ULAB-02 GI-P-00001.00.02 4 66 Active Web Matrix ________________________________________________________________________________ Precedenza Controlli Flow Tabella 2.5.b – Inserimento Pubblicazioni Nome Id funzione tabelle chiamata_da chiama data autore revisione codice livello_gerarchico precedenza controlli flow Modifica_pub Gs4_P2 Modifica i dati di una Pubblicazione PUBBLICAZIONI Gestione_pubblicazioni Selezione_pub 20/11/2002 UA-02 ULAB-02 GV-P-0001.00.02 4 Tabella 2.5.c – Modifica Pubblicazioni Nome Id Funzione Tabelle chiamata_da Chiama Data Autore Revisione Codice livello_gerarchico Precedenza Controlli Flow Cancella_pub Gs4_P3 Eliminazione di una Pubblicazione dal database PUBBLICAZIONI Gestione_pubblicazioni Selezione_pub 20/11/2002 UA-02 ULAB-02 GC-P-0003.00.02 4 Tabella 2.5.d – Cancella Pubblicazioni Nome Id Funzione Tabelle Selezione_pub Gs5_P1 Restituisce la lista delle Pubblicazioni nel database, per consentire la scelta della pubbliazione da modificare o cancellare PUBBLICAZIONI 67 Active Web Matrix ________________________________________________________________________________ Modifica_pub, Cancella_pub, Gestione_home_page chiamata_da Chiama Data Autore Revisione Codice livello_gerarchico Precedenza Controlli Flow 20/11/2002 UA-02 ULAB-02 GS-P-0001.00.02 5 Tabella 2.5.e – Selezione Pubblicazioni Nome Id Funzione Tabelle chiamata_da Chiama Data Autore Revisione Codice livello_gerarchico Precedenza Controlli Flow Gestione_menu Gs3_MN1 Gestione del menu Gestione G_sezione_menu, G_sezione_link 20/11/2002 UA-02 ULAB-02 GT-MN-0001.00.02 3 Tabella 2.6.a – Gestione Menu Nome Id Funzione Tabelle chiamata_da Chiama Data Autore Revisione Codice livello_gerarchico Precedenza Controlli Flow G_sezione_menu Gs4_MN1 Gestione delle sezioni del menu SEZIONI_CONSOLLE Gestione_menu Inserimenti_sez_menu, Modifica_sez_menu, Cancella_sez_menu 20/11/2002 UA-02 ULAB-02 GM-MN-0001.00.02 4 68 Active Web Matrix ________________________________________________________________________________ Tabella 2.6.b – Gestione sezione del menu Nome Id Funzione Tabelle chiamata_da Chiama Data Autore Revisione Codice livello_gerarchico Precedenza Controlli Flow Inserimento_sez_menu Gs5_MN1 Inserimento di una sezione nel menu SEZIONI_CONSOLLE G_sezione_menu 20/11/2002 UA-02 ULAB-02 GI-MN-0001.00.02 5 Tabella 2.6.b – Inserimento di una sezione del menu Nome Id Funzione Tabelle chiamata_da Chiama Data Autore Revisione Codice livello_gerarchico Precedenza Controlli Flow Modifica_sez_menu Gs5_MN2 Modifica di una sezione del menu SEZIONI_CONSOLLE G_sezione_menu Selezione_sez_menu 20/11/2002 UA-02 ULAB-02 GV-MN-0001.00.02 5 Tabella 2.6.c – Modifica sezione del menu Nome Id Funzione Tabelle chiamata_da Chiama Data Autore Revisione Codice livello_gerarchico Cancella_sez_menu Gs5_MN3 Cancellazione di una sezione de menu SEZIONI_CONSOLLE G_sezione_menu Selezione_sez_menu 20/11/2002 UA-02 ULAB-02 GC-MN-0001.00.02 5 69 Active Web Matrix ________________________________________________________________________________ Precedenza Controlli Flow Tabella 2.6.d – Cancellazione sezione del menu Selezione_sez_menu Gs6_MN1 Restituisce la lista delle Sezioni del menu nel database, per consentire la scelta della sezione da modificare o cancellare SEZIONI_CONSOLLE Modifica_sez_menu, Cancella_sez_menu, Gestione_home_page Nome Id Funzione Tabelle chiamata_da Chiama Data Autore Revisione Codice livello_gerarchico Precedenza Controlli Flow 20/11/2002 UA-02 ULAB-02 GS-MN-0001.00.02 6 Tabella 2.6.e – Selezione Sezione del menu Nome Id Funzione Tabelle chiamata_da Chiama Data Autore Revisione Codice livello_gerarchico Precedenza Controlli Flow G_sezione_link Gs4_MN2 Gestione dei link del menu LINK_SEZIONE Gestione_menu Inserimento_link_menu, Modifica_link_menu, Cancella_link_menu 20/11/2002 UA-02 ULAB-02 GM-MN-0002.00.02 4 Tabella 2.6.f – Gestione link Nome Id Funzione Inserimento_link_menu Gs5_MN4 Inserimento di un link nel menu 70 Active Web Matrix ________________________________________________________________________________ Tabelle chiamata_da Chiama Data Autore Revisione Codice livello_gerarchico Precedenza Controlli Flow LINK_SEZIONE G_sezione_link Selezione_link_menu 20/11/2002 UA-02 ULAB-02 GI-MN-0002.00.02 5 Tabella 2.6.g – Inserimento di un link Nome Id Funzione Tabelle chiamata_da Chiama Data Autore Revisione Codice Livello_gerarchico Precedenza Controlli Flow Modifica_link_menu Gs5_MN5 Modifica di un link del menu LINK_SEZIONE G_link_menu Selezione_link_menu 20/11/2002 UA-02 ULAB-02 GV-MN-0002.00.02 5 Tabella 2.6.h – Modifica link Nome Id Funzione Tabelle chiamata_da Chiama Data Autore Revisione Codice livello_gerarchico Precedenza Controlli Flow Cancella_link_menu Gs5_MN6 Cancellazione di un link del menu LINK_SEZIONE G_sezione_link Selezione_link_menu 20/11/2002 UA-02 ULAB-02 GC-MN-0002.00.02 5 Tabella 2.6.m – Cancellazione link 71 Active Web Matrix ________________________________________________________________________________ Selezione_link_menu Gs6_MN1 Restituisce la lista dei link del menu nel database, per consentire la scelta dei link da modificare o cancellare LINK_SEZIONE Inserimento_link_menu, Modifica_link_menu, Cancella_link_menu Nome Id Funzione Tabelle chiamata_da Chiama Data Autore Revisione Codice livello_gerarchico Precedenza Controlli Flow 20/11/2002 UA-02 ULAB-02 GS-MN-0002.00.02 6 Tabella 2.6.n – Selezione link Gestione_home_page Gs3_HP1 Gestione della home_page Nome Id Funzione Tabelle chiamata_da Chiama Data Autore Revisione Codice livello_gerarchico Precedenza Controlli Flow Gestione Selezione_news, Selezione_multimedia, Selezione_seminari, Selezione_pubblicazioni, Selezione_sezioni_menu 20/11/2002 UA-02 ULAB-02 GM-HP-0001.00.02 3 Tabella 2.6.p – Gestione Home Page Nome Id Funzione Tabelle chiamata_da Chiama Modifica_Home_Page Gs4_HP5 Modifica la home page del sito NEWS, MULTIMEDIA, SEMINARI, PUBBLICAIONI, SEZIONI_CONSOLLE Gestione_home_page 72 Active Web Matrix ________________________________________________________________________________ Data Autore Revisione Codice livello_gerarchico Precedenza Controlli Flow 20/11/2002 UA-02 ULAB-02 GV-HP-0002.03.02 4 Tabella 2.6.q – Modifica Home page Gestione_doc Gs3_D1 Gestione della Documentazione Nome Id Funzione Tabelle chiamata_da Chiama Data Autore Revisione Codice livello_gerarchico Precedenza Controlli Flow Gestione Inserimento_doc, Selezione_doc 20/11/2002 UA-02 ULAB-02 GM-D-0001.06.02 3 Tabella 2.7.a – Gestione Documentazione Nome Id funzione tabelle chiamata_da chiama data autore revisione codice livello_gerarchico precedenza controlli flow Inserimento_doc Gs4_D1 Inserimento di un documento DOCUMENTI Gestione_doc 20/11/2002 UA-02 ULAB-02 GI-D-0001.06.02 4 Tabella 2.7.b – Inserimento documento nome id Selezione_doc Gs4_D1 73 Active Web Matrix ________________________________________________________________________________ funzione tabelle chiamata_da chiama data autore revisione codice livello_gerarchico precedenza controlli flow Fornisce criteri di ricerca per i documenti (es. autori dei doc, ecc…), recuperando le informazioni dal database DOCUMENTI Gestione_doc Lista_doc, Card_doc 20/11/2002 UA-02 ULAB-02 GS-D-0001.03.02 4 Tabella 2.7.c – Selezione Documenti nome id funzione tabelle chiamata_da chiama data autore revisione codice livello_gerarchico precedenza controlli flow Lista_doc Gs5_D1 Lista dei documenti, costruita in base ai criteri di Gs4_D1 DOCUMENTI Selezione_doc Card_doc 20/11/2002 UA-02 ULAB-02 GL-D-0001.03.02 5 Tabella 2.7.d – Lista documenti nome id funzione tabelle chiamata_da chiama data autore revisione codice livello_gerarchico precedenza Card_doc Gs5_D2 Card del documento scelto in Gs5_D1 DOCUMENTI Selezione_doc, Lista_doc Revizione_doc, Modifica_doc, Cancella_doc 20/11/2002 UA-02 ULAB-02 GCRD-D-0001.03.02 5 74 Active Web Matrix ________________________________________________________________________________ controlli flow Tabella 2.7.e – Card documenti nome id funzione tabelle chiamata_da chiama data autore revisione codice livello_gerarchico precedenza controlli flow Revisione_doc Gs6_D1 Revisione del documento di Gs5_D2 DOCUMENTI Card_doc 20/11/2002 UA-02 ULAB-02 GR-D-0001.03.02 6 Tabella 2.7.f – Revisione documenti nome id funzione tabelle chiamata_da chiama data autore revisione codice livello_gerarchico precedenza controlli flow Modifica_doc Gs6_D2 Modifica del documento di Gs5_D2 DOCUMENTI Card_doc 20/11/2002 UA-02 ULAB-02 GV-D-0001.03.02 6 Tabella 2.7.g – Modifica documenti nome id funzione tabelle chiamata_da chiama data Cancella_doc Gs6_D3 Cancella il documento di Gs5_D2 DOCUMENTI Card_doc 20/11/2002 75 Active Web Matrix ________________________________________________________________________________ autore revisione codice livello_gerarchico precedenza controlli flow UA-02 ULAB-02 GC-D-0001.03.02 6 Tabella 2.7.h – Cancella documenti 1.2.2. Funzioni di interrogazione NEWS Nome Codice Descrizione Icona Tabelle coinvolte Parametri Campi di Visualizzazione Campi di Join Condizioni Stringa SQL Lista delle News Q_N001 Mostra l'elenco delle News contenute nel database. NEWS Titolo SELECT id_news,titolo FROM NEWS Tabella 2.8.a – Lista delle News Nome Codice Descrizione Icona Tabelle coinvolte Parametri Campi di Visualizzazione Campi di Join Condizioni Stringa SQL Dettagli di una News Q_N002 Mostra tutte le informazioni della News scelta tra la lista di Q_N001. NEWS Id_news Titolo, Immagine_grande, Abstract, Testo, Fonte id_news = [PARAMETRO] SELECT * FROM NEWS WHERE id_news = [PARAMETRO] Tabella 2.8.b – Dati di una News 76 Active Web Matrix ________________________________________________________________________________ MULTIMEDIA Nome Codice Descrizione Icona Tabelle coinvolte Parametri Campi di Visualizzazione Campi di Join Condizioni Stringa SQL Lista dei Multimedia Q_M001 Mostra l'elenco dei Multimedia contenuti nel database. MULTIMEDIA Titolo SELECT id_mm,titolo FROM MULTIMEDIA Tabella 2.9.a – Lista dei Multimedia Nome Codice Descrizione Icona Tabelle coinvolte Parametri Campi di Visualizzazione Campi di Join Condizioni Stringa SQL Dettagli di un Multimedia Q_M002 Mostra tutte le informazioni del Multimedia scelto tra la lista di Q_M001. MULTIMEDIA Id_mm Titolo, Tema, Abstract, Testo, Data, Autore id_mm = [PARAMETRO] SELECT * FROM MULTIMEDIA WHERE id_mm = [PARAMETRO] Tabella 2.9.b – Dati di un Multimedia SEMINARI Nome Codice Descrizione Icona Tabelle coinvolte Parametri Campi di Visualizzazione Campi di Join Condizioni Stringa SQL Lista dei Seminari Q_S001 Mostra l'elenco dei Seminari contenuti nel database. SEMINARI Titolo, data SELECT id_seminario,titolo, data FROM SEMINARI Tabella 2.10.a – Lista dei Seminari Nome Dettagli di un Seminario 77 Active Web Matrix ________________________________________________________________________________ Codice Descrizione Icona Tabelle coinvolte Parametri Campi di Visualizzazione Campi di Join Condizioni Stringa SQL Q_S002 Mostra tutte le informazioni del Seminario scelto tra il risultato di Q_S001. SEMINARI Id_seminario Titolo, Abstract, Data, Real_time id_seminario = [PARAMETRO] SELECT * FROM SEMINARI WHERE id_seminario = [PARAMETRO] Tabella 2.10.b – Dati di un Seminario Nome Codice Descrizione Lista delle Sezioni di un Seminario Icona Tabelle coinvolte Parametri Campi di Visualizzazione Campi di Join Condizioni Stringa SQL Q_S003 Mostra l'elenco delle Sezioni di un Seminario scelto tra il risultato di Q_S001. SEZIONI_SEMINARIO Id_seminario Titolo, Abstract, Soggetto, Organizzazione, Ora_inizio, Ora_fine id_seminario = [PARAMETRO] SELECT * FROM SEZIONI_SEMINARIO WHERE id_seminario = [PARAMETRO] ORDER BY id_sezione Tabella 2.10.c – Lista delle Sezioni di un Seminario Nome Codice Descrizione Dettagli della sezione Icona Tabelle coinvolte Parametri Campi di Visualizzazione Campi di Join Condizioni Stringa SQL Q_S004 Mostra tutte le informazioni della Sezione scelta tra la lista di Q_S003. SEZIONI_SEMINARIO Id_seminario, Id_sezione Titolo, Abstract, Data, Real_time, Filmato id_seminario = [PARAMETRO] id_sezione = [PARAMETRO] SELECT * FROM SEZIONI_SEMINARIO WHERE id_seminario = [PARAMETRO] AND id_sezione = [PARAMETRO] Tabella 2.10.d – Dettagli di una Sezione di un Seminario Nome Codice Descrizione Icona Lista degli Interventi di una Sezione Q_S005 Mostra l'elenco degli interventi della Sezione scelta tra il risultato di Q_S003. - 78 Active Web Matrix ________________________________________________________________________________ Tabelle coinvolte Parametri Campi di Visualizzazione Campi di Join Condizioni Stringa SQL INTERVENTI_SEZIONE Id_seminario, Id_sezione Argomento, Soggetto, Organizzazione id_seminario = [PARAMETRO] id_sezione = [PARAMETRO] SELECT * FROM INTERVENTI_SEZIONE WHERE id_seminario = [PARAMETRO] AND id_sezione = [PARAMETRO] Tabella 2.10.e – Lista degli Interventi di una Sezione Nome Codice Descrizione Dettagli di un Intervento di una sezione Icona Tabelle coinvolte Parametri Campi di Visualizzazione Campi di Join Condizioni Stringa SQL Q_S006 Mostra tutte le informazioni dell’Intervento scelto tra il risultato di Q_S005. INTERVENTI_SEZIONE Id_seminario, Id_sezione, Id_intervento Argomento, Soggetto, Organizzazione, Filmato id_seminario = [PARAMETRO] id_sezione = [PARAMETRO] id_intervento = [PARAMETRO] SELECT * FROM INTERVENTI_SEZIONE WHERE id_seminario = [PARAMETRO] AND id_sezione = [PARAMETRO] AND id_intervento = [PARAMETRO] Tabella 2.10.f – Dettagli di un Intervento di una Sezione Nome Codice Descrizione Icona Tabelle coinvolte Parametri Campi di Visualizzazione Campi di Join Condizioni Stringa SQL Slide della sezione Q_S007 Mostra le slide della Sezione scelta tra la lista di Q_S003. SEZIONI_SEMINARIO Id_seminario, Id_sezione nome_slide,num_slide,mime_type,real_time id_seminario = [PARAMETRO] id_sezione = [PARAMETRO] SELECT nome_slide, num_slide, mime_type, real_time FROM SEZIONI_SEMINARIO WHERE id_seminario = [PARAMETRO] AND id_sezione = [PARAMETRO] Tabella 2.10.g – Slide di una Sezione di un Seminario Nome Codice Descrizione Icona Slide di un Intervento Q_S008 Mostra le slide dell’Intervento scelto tra il risultato di Q_S005. - 79 Active Web Matrix ________________________________________________________________________________ Tabelle coinvolte Parametri Campi di Visualizzazione Campi di Join Condizioni Stringa SQL INTERVENTI_SEZIONE Id_seminario, Id_sezione, Id_intervento nome_slide,num_slide,mime_type,real_time id_seminario = [PARAMETRO] id_sezione = [PARAMETRO] id_intervento = [PARAMETRO] SELECT nome_slide, num_slide, mime_type, real_time FROM INTERVENTI_SEZIONE WHERE id_seminario = [PARAMETRO] AND id_sezione = [PARAMETRO] AND id_intervento = [PARAMETRO] Tabella 2.10.h – Slide di un Intervento di una Sezione DOCUMENTI Le interrogazioni più significative per il WBDMS sono descritte di seguito. Nome Codice Descrizione Documenti Personali Icona Tabelle coinvolte Parametri Campi di Visualizzazione Campi di Join Condizioni Stringa SQL Q_D001 Mostra l'elenco dei documenti per cui l’utente è autore. DOCUMENTI autori id,titolo,revisione autori LIKE %[PARAMETRO]% SELECT id,titolo,revisione,status,approver FROM DOCUMENTI WHERE autori LIKE % [PARAMETRO]% Tabella 2.11.a – Lista dei documenti personali Nome Codice Descrizione Documenti Pubblici o Riservati Icona Tabelle coinvolte Parametri Campi di Visualizzazione Campi di Join Condizioni Stringa SQL Q_D002 Mostra l'elenco dei documenti classificati P o R. DOCUMENTI Classificazione id,titolo,revisione classificazione = [PARAMETRO] SELECT id,titolo,revisione,status,approver FROM DOCUMENTI WHERE classificazione = [PARAMETRO] Tabella 2.11.b –Lista documenti classificati P o R Nome Documenti Confidenziali 80 Active Web Matrix ________________________________________________________________________________ Codice Descrizione Icona Tabelle coinvolte Parametri Campi di Visualizzazione Campi di Join Condizioni Q_D003 Mostra l'elenco dei documenti classificati R. DOCUMENTI User_id id,titolo,revisione classificazione = ‘C’ AND dist_list LIKE '%[PARAMETRO]%' SELECT id,titolo,revisione,status,approver FROM DOCUMENTI WHERE classificazione = ‘C’ AND dist_list LIKE '%[PARAMETRO]%' Stringa SQL Tabella 2.11.c –Lista documenti classificati C Nome Codice Descrizione Icona Tabelle coinvolte Parametri Campi di Visualizzazione Campi di Join Condizioni Stringa SQL Card del Documento Q_D004 Mostra tutte le informazioni del Documento scelto tra la lista di Q_D001 o Q_D002 o Q_D003. DOCUMENTI Id codice_doc, classificazione, ente, num_task, contratto, titolo, abstract, annotazioni, autori, status, num_pagine, nome_file, dimensione, ftp_server_http, revisione, data, compiler, validator, approver, allegato id = [PARAMETRO] SELECT * FROM DOCUMENTI WHERE id = [PARAMETRO] Tabella 2.11.d –Card documento Le query per i restanti moduli, essendo ritenute meno significative, saranno omesse per brevità e riportate in un documento specifico e corredate agli schemi E-R e alla procedure. 81 Active Web Matrix ________________________________________________________________________________ Capitolo 3 AMBIENTE DI SVILUPPO Questo capitolo descrive brevemente i linguaggi utilizzati, alcune tecnologie prese in esame per la realizzazione del prototipo di sito web, quindi, l’ambiente di sviluppo. Le metodologie di progettazione e gli standard a cui si è fatto riferimento sono stati quelli adottati nel corso del Progetto SOPHOCLES [9]. 1.3. Linguaggi utilizzati per applicazioni web 1.3.1. HTML Nato al Cern nel 1989, è “de facto” lo standard per la pubblicazione di documenti sul web. HTML (HyperText Markup Language) si basa sul linguaggio SGML (Standard Generalized Markup Language), utilizzato per descrivere la struttura generale di vari tipi di documenti. Non si tratta di un linguaggio per la descrizione delle pagine come ad esempio il PostScript, né di un linguaggio prodotto da programmi d’impaginazione. Lo scopo di HTML è mostrare il contenuto del documento e non il suo aspetto. Separando la struttura del documento dall’aspetto, quest’ultimo si può agevolmente e rapidamente modificare per essere adattato a scopi differenti: i documenti HTML sono device-indipendent. 1.3.2. I limiti di HTML, possibili soluzioni La semplicità ed al largo supporto ricevuto dai produttori di browser web, hanno determinato una rapida diffusione dell’HTML. Tuttavia questa sua semplicità costituisce anche un limite, infatti pur 82 Active Web Matrix ________________________________________________________________________________ avendo le notevoli capacità di un ipertesto di incorporare contenuti di varia natura e di stabilire collegamenti con altri documenti, le possibilità d’interazione con l’utente restano limitate. Al crescente successo del Web (soprattutto nel momento in cui grandi aziende hanno visto nella rete delle reti, un nuovo veicolo commerciale), si è accompagnato un continuo lavoro per ampliarne le possibilità d’utilizzo e le funzionalità offerte agli utenti; in particolare si è sentita l’esigenza di realizzare una maggiore interazione tra client e server (ad esempio la consultazione di basi di dati remote) e di fornire all’utente contenuti più vari e meno statici. Sono state così introdotte svariate tecnologie che introducono elementi dinamici nei siti web. Il supporto a queste tecnologie ha comportato modifiche ai vari elementi coinvolti nell’interazione client-server: - Estensione delle funzionalità del client (web browser) - Estensione delle funzionalità del server - Estensione del linguaggio HTML. Le estensioni delle funzionalità del client e del server sono state ottenute sia con la realizzazione di nuove versioni dei browser e dei server, sia con la realizzazione di moduli aggiuntivi, detti plug-in, che vengono collegati, tramite opportune API, con il browser o con il server web. Nelle tecnologie lato client, la dinamicità e l’interazione con l’utente sono gestite direttamente da codice eseguito dal client o da un suo plug-in. È il caso degli script supportati dai browser, come JavaScript, VBScript, ecc…, e delle Applet Java. Tutti questi sono diventati elementi standard di una pagina web, con uno specifico supporto nel linguaggio HTML realizzato mediante l’interazione tra oggetti HTML e script, mediante l’introduzione di nuovi tag (es. APPLET). Nelle tecnologie lato server, il client ha un ruolo essenzialmente passivo: è il server a gestire la parte dinamica. Le tecnologie server side, basate su protocollo HTTP, assumono particolare rilevanza nell’ambito delle applicazioni business, sono infatti quelle che si prestano maggiormente allo sviluppo di applicazioni web centrate sulla gestione di basi di dati. In questa categoria ritroviamo le CGI, le Active Server Pages (ASP) di Microsoft, PHP e, in Java le Servlet e Java Server Pages (JSP). 1.3.3. Le Active Server Pages È una tecnologia sviluppata da Microsoft (1997) a supporto di altre sue tecnologie proprietarie, principalmente gli oggetti ActiveX ed il linguaggio VBScript12, simile al VisualBasic (tuttavia ASP 12 Per maggiori dettagli sulle ASP e sugli oggetti ActiveX si rimanda a manuali specifici , alcuni dei quali citati nella Bibliografia,ed al sito ufficiale Microsoft. 83 Active Web Matrix ________________________________________________________________________________ supporta anche JavaScript). L’idea base di ASP è di dare la possibilità di inserire contenuti dinamici in una pagina Web inframmezzando il codice HTML con codice in linguaggio script che viene eseguito dal server. Quest’esecuzione ha come effetto sia il compimento di operazioni particolari nell’ambiente server (ad esempio la modifica di un database), sia eventualmente l’invio di dati al client (in genere in formato HTML), che vengono inseriti nella pagina ASP al posto degli script. Gli script, da parte loro, possono sia eseguire direttamente delle operazioni, sia utilizzare gli oggetti ActiveX residenti sul server. Uno script sul lato server inizia ad essere eseguito quando un browser richiede un file asp al server Web; quest’ultimo richiama quindi l’interprete ASP, che elabora il file richiesto dall'inizio alla fine, esegue qualsiasi comando script e invia una pagina Web al browser. Poiché gli script vengono eseguiti sul server anziché sul client, il server Web svolge tutto il lavoro necessario per la generazione delle pagine HTML inviate ai browser. Al browser viene restituito solo il risultato dello script e gli utenti non possono visualizzare i comandi script che hanno creato la pagina visualizzata. La figura 3.1 sintetizza lo schema di funzionamento di un’applicazione ASP: Figura 3.1 – Funzionamento di un’applicazione ASP - Il browser richiede una pagina ASP; - Il Web server preleva la pagina ASP ed attiva l’interprete ASP per la pre-elaborazione della pagina, coinvolgendo eventualmente altri componenti presenti sul server; - Il risultato dell’elaborazione viene restituito al Web server; - il risultato dell’elaborazione viene inviato al browser tramite il protocollo HTTP. Affinché il codice ASP possa essere interpretato, c'è bisogno che il Web server utilizzato, sia un server Active X come ad esempio IIS o Personal Web Server (anche se per quest’ultimo ci sono alcune limitazioni d’utilizzo). 84 Active Web Matrix ________________________________________________________________________________ 1.3.4. Java: Applet e JSP Applet È un particolare programma Java inserito in una pagina HTML, scaricato dinamicamente dalla rete ed eseguito dalla Java Virtual Machine del browser. Grazie al meccanismo del download automatico dalla rete, un’Applet può essere eseguita senza la necessità di installare alcun software: la rete diviene un canale da cui prelevare il software, ed il browser diventa il client che esegue un programma in locale. Ad un’Applet è possibile passare parametri attraverso le pagine HTML (tag APPLET). Al fine di garantire un elevato margine di sicurezza, le Applet devono rispettare i vincoli imposti dal Security Manager della macchina virtuale del browser: in particolare un’Applet non può: Accedere in nessun modo al file system della macchina locale; Scrivere sul server da cui proviene; Accedere ad host diversi da quelli di provenienza. Java Server Pages (JSP) La tecnologia JSP s’ispira direttamente a quella ASP, con somiglianze notevoli anche nella sintassi e nell’ipostazione generale. Rispetto alle tecnologie Microsoft, oltre ai vantaggi generici legati all’uso di Java (potenza del linguaggio, librerie standard, …), si ha quello di una reale portabilità in tutte le piattaforme su cui esista un’implementazione della macchina virtuale Java (ossia tutte quelle comunemente usate). 1.3.5. Approcci misti Oltre all’utilizzo di tecnologie client side e server side per la realizzazione di pagine dinamiche, è possibile utilizzare delle applicazioni che presentano elementi dinamici sia sul lato server che sul lato client. Spesso queste tecnologie sono basate sull’uso di plug-in sia sul lato client che su quello server, che interagiscono direttamente tra loro e si servono del client e del server solo come di una sorta di “punto d’appoggio” per il loro funzionamento. Rientrano in questo caso l’uso congiunto di Applet e Servlet Java13, estensioni multimediali per il web, come Real Player e Macromedia Flash. Queste estensioni consentono al server di inviare, ed al client di ricevere suoni e animazioni, ma soprattutto consentono al client di presentare all’utente questi contenuti attraverso specifici plug-in 13 Vedi Biblografia [20] 85 Active Web Matrix ________________________________________________________________________________ che visualizzano l’animazione o leggono un file di suoni e lo inviano, opportunamente elaborato, alla scheda sonora. 1.3.6. Connessioni ai Database Access e Oracle con lo standard ODBC Il sistema ha utilizzato i DBMS MS-Access e Oracle 9i. In ambiente Win 2k le applicazioni hanno definito le connessioni per mezzo dei driver ODBC (Open Database Connettivity) standard di Micorsoft, mentre in ambiente Unix Solaris 5.7 questa funzione è stata affidata, dopo una serie di test, al driver Oracle della Merant. 1.3.7. XML L’XML è un linguaggio di markup basato su testo che fornisce informazioni di tipo strutturale e semantico relative ai dati veri e propri. Questi “dati sui dati”, o metadati, offrono un contesto aggiuntivo all’applicazione che utilizza i dati e consente un nuovo livello di gestione e manipolazione delle informazioni basate su Web. In una serie di applicazioni accessorie è previsto la generazione di file XML a seguito di sessioni di interrogazione per mezzo di IVQSS. Tali file possono essere recuperati dal sistema in alternativa ad una nuova interrogazione. Tale standard è particolarmente adatto per una serie di servizi della CE che necessitano di trasferire informazioni tecniche ai componenti software che nel nostro caso sono rappresentati dai VC. Lo standard XML risulta particolarmente utile nel caso in cui si debbano superare i limiti delle strutture dati complesse definite (atomizzate) in terza e/o quarta forma normale dove è prevista per più entità la molteplicità dei campi come nel caso di un utente con più indirizzi, numeri di telefono, ecc. 1.4. L’ambiente di sviluppo del primo prototipo In questo paragrafo è descritto l’ambiente di sviluppo, presente in ENEA, utilizzato nella fase d’implementazione del prototipo. L’hardware utilizzato, con le sue principali caratteristiche è descritto nella tabella 3.1.a. Nome Indirizzo IP Sistema Operativo 86 Caratteristiche Ruolo Active Web Matrix ________________________________________________________________________________ Server FAD 192.107.71.126 MS Windows 2000 Server (service pack 3) Web-DB 192.107.74.199 Multimedia 192.107.74.200 MS Windows 2000 Professional (service pack 2) MS Windows 2000 Professional (service pack 2) P600f 192.107.78.52 MS Windows 98 SE PC portatile IP dinamico Apollo 192.107.93.5 MS Windows 2000 Professional (service pack 2) Unix 2 x PIII 1.0 GHz RAM 1024 MB 2 HD 40 GB PIV 1.5 GHz RAM 256 HD 40 GB PIV 1.5 GHz RAM 512 HD 40 GB PIII 800 MHz RAM 128 MB HD 40 GB PIII 1.0 GHz RAM 256 MB HD 40 GB Server, server web (IIS) PC di sviluppo con server IIS PC multimediale con scheda di streaming e acquisizione video PC client PC client/ server per demo Server Oracle Tabella 3.1.a – Configurazione Hardware del laboratorio La tabella 3.1.b descrive le altre attrezzature di laboratorio utilizzate. Nome PC115 MiniVHS Video Proiettore Marca SONY Philips CANON Schermo Web Cam Microfono Radio Mixer SA Philips Sennhaiser, SONY HIF Sistema Operativo MS-Win 2k Caratteristiche DIGITALE Ruolo Video Video MS-Win 2k 1500 a.l. 1024x768 DLP 2x2 Mt. USB Video Video Audio Audio Tabella 3.1.b – Attrezzatura di laboratorio La rete presente in ENEA e utilizzata in questa fase è una rete a 100 Mbps (Fast Ethernet, standard 802.3u) su protocollo TCP/IP. 87 Active Web Matrix ________________________________________________________________________________ I vari ambienti software a disposizione sono indicati in tabella 3.2. Tipologia Web Server Software IIS 5.0 Apache Tomcat Linguaggi per le applicazioni su web-server ASP, VbScript, Jscript, JavaScript Java (JDK 1.4.0) DBMS MS Access DBMS Oracle Applicazioni Real Player Real Server Real Producer Flash Browser Internet Explorer 5.0 Server FAD Web-DB Multimedia P600f PC portatile Apollo ENEA-DBA Server Server FAD Web-DB Multimedia P600f PC portatile Server FAD Web-DB Multimedia P600f PC portatile Server FAD Web-DB Multimedia P600f PC portatile Server FAD Web-DB P600f Accesso alla rete (Internet) esterna Accesso da Internet (rete esterna verso rete ENEA) PC su cui è istallato Server FAD Web-DB PC portatile Server FAD Web-DB PC portatile Firewall Tabella 3.2 – Software Per questa prima fase di sviluppo e test, come web-server è stato utilizzato Internet Information Services 5.0 (IIS), presente nell’installazione base di Windows 2000 Server. IIS supporta i linguaggi HTML, Javascript e JScript (la versione Microsoft di JavaScript), VbScript. In particolare VbScript è stato utilizzato per la realizzazione di pagine ASP che recuperano le informazioni dai database e restituiscono pagine web visualizzabili dall’utenza. All’interno della wwwroot del server, è stata creata una directory che contiene le pagine web del sito ed i moduli che implementano le funzioni. Anche le strutture d’appoggio come i database, sono contenute all’interno della stessa directory. Una simile configurazione non è una scelta ottimale e definitiva, tuttavia la presenza dei database all’interno della directory ha permesso di limitare l’architettura distribuita, ed ha favorito la portabilità dell’applicazione da una macchina ad un’altra in particolare da quella di sviluppo (Web88 Active Web Matrix ________________________________________________________________________________ BD) a quella di produzione (Server FAD), riducendo i tempi di configurazione. È doveroso dire che queste scelte non vanno intese come una limitazione, ma solo come una semplificazione iniziale per la realizzazione del prototipo che mantiene intatte le sue caratteristiche di generalità. Il DataBase Management System (DBMS) di sviluppo utilizzato è MS Access che, grazie alla sua semplicità d’utilizzo, e ad un’interfaccia visuale di facile comprensione, ha permesso di ridurre i tempi di realizzazione delle strutture di supporto al sistema. Sono stati fatti dei test con archivi Oracle e driver ODBC. Per le applicazioni multimediali quali la riproduzione dei video e lo streaming sono stati utilizzati i seguenti prodotti: Real Player: questo plug-in è stato utilizzato per la riproduzione dei video e per la ricezione dello streaming; Real Producer: questo software cattura il flusso video da un’apposita scheda d’acquisizione, lo codifica secondo lo standard del Real Player ed in base ad alcuni parametri di configurazione, lo trasmette al server (Real Server); Real Server: è il server che riceve lo stream video dal Real Producer. I client Real Player si collegano al Real Server per ricevere lo stream video. Il Real Server ed il Real Producer possono essere in esecuzione sia sulla stessa macchina che su due macchine differenti collegate in rete (Internet). Le funzionalità di Flash della Macromedia sono state utilizzate per la gestione e la produzione di demo e spot integrati con i media come nel caso della home page. La figura 3.2.a schematizza l’ambiente di sviluppo centralizzato. 89 Active Web Matrix ________________________________________________________________________________ Server FAD Apollo IIS 5.0 file e dir. Internet DB Access DB Oracle firewall Intranet ENEA Multimedia Client Win98/2000 Real Server Internet Esplorer 5.0 Real Producer Real Player Figura 3.2.a – Ambiente di sviluppo nel C.R. Casaccia AWM è stato progettato con una struttura modulare per essere istallato e usufruito attraverso un network di server che svolgono servizi di comunicazione indipendenti e, allo stesso tempo integrati tra loro. AWM può quindi operare all’interno di reti in cui le pagine web ed i moduli funzionali si trovano su uno o più web-server, mentre i database sono montati su macchine non accessibili dalla rete esterna, protette da opportuni sistemi di sicurezza come firewall e proxy HTTP. Il DBMS Oracle è stato utilizzato sia per la gestione dei dati relativi all’interfaccia IVQSS (Ionic Visual Query System Server) che gestisce la parte delle pubblicazioni di AWM sia per alcuni database di carattere riservato (Sicurezza, Dati Personali Utente, Profilo Aziende Partner, Data set VC, Documentazione Tecnica VC, ecc.). Nel corso della sperimentazione sono state effettuate prove in rete sia in Italia che all’estero. Alcune prove e dimostrazioni sono state effettuate a Parigi il 13 Settembre 2002 nel corso della prima presentazione del sistema al Technical Meeting presso THALES, uno dei partner del Progetto SOPHOCLES. In quell’occasione furono effettuate anche prove di collegamento attraverso linea telefonica utilizzando un modem a 56 Kbps. 90 Active Web Matrix ________________________________________________________________________________ Multimedia Real Server Real Producer Apollo Intranet MARSIGLIA Intranet ENEA PC portatile Internet Esplorer 5.0 DB Oracle Internet IIS 5.0 Real Player Client Win98/2000 file e dir. Internet Esplorer 5.0 Server FAD DB Access Real Player Figura 3.2.b – FDL ’02, Marsiglia Successivamente, in occasione del FDL’02 tenutosi a Marsiglia il 24 Settembre 2002 AWM è stato utilizzato e presentato al Workshop SOPHOCLES nel quale ha gestito il Web Seminar in modalità sincrona su rete a 100 Mbps (Centro Tecnologico di Marsiglia / ENEA Casaccia). 91 Active Web Matrix ________________________________________________________________________________ Capitolo 4 IL PROTOTIPO DEL SISTEMA Questo capitolo descrive il prototipo di AWM implementato nel periodo di stage. Si precisa che, in base alla metodologia di progettazione seguita, sono stati sviluppati i prototipi di prima, seconda e terza generazione che hanno portato alla versione attuale descritta in questo capitolo. 1.5. Active Web Matrix Active Web Matrix (AVM) è l’interfaccia web attraverso la quale gli utenti possono dialogare con il sistema. La figura 4.1 descrive il layout del sito. 2 3 1 Figura 4.1 – Il sito Web della CE (risoluzione 1024x768) 92 Active Web Matrix ________________________________________________________________________________ L’aspetto grafico ed iconico si basa su precedenti studi ENEA14 sulle interfacce visuali, in termini di alfabeto iconico, definizione di formati standard, valore simbolico delle icone associate a funzioni ed interrogazioni. Nella struttura si individuano tre elementi principali: console di navigazione (1); intestazione (2); pagina web del sito (3). Questa struttura è marcata visivamente mediante l’utilizzo di colori differenti, infatti il colore predominate di (1) e (2) è il blu, mentre lo sfondo di (3) è bianco. La figura 4.2 mostra lo standard grafico adottato costituito dai seguenti elementi: logo del progetto, banner, moduli informativi utente/servizi, intestazione della sezione, sottomenu della sezione, icona della sezione con immagine grafica. Moduli inf. Utente/servizi Copyright Logo del progetto Intestazione sezione Banner Figura 4.2 – Standard grafico La figura 4.3 evidenzia le diverse aree di AWM. 14 Bibliografia [5], [6], [7], [8], [13] 93 Sottomenu Icona Active Web Matrix ________________________________________________________________________________ 1 2 3 4 7 10 13 5 8 11 14 6 9 12 15 Figura 4.3 – Struttura a matrice La figura 4.4 descrive l’architettura interna di Active Web Matrix, i moduli e le loro interazioni. USER login Registration NEWS E-mail MANAGER MULTIMEDIA CORE XML, HTML IVQSS WBDMS CONGRESS HOME PAGE MANAGER PUBLICATION WEB SEMINAR Figura 4.4 – I moduli di AWM 94 Active Web Matrix ________________________________________________________________________________ La descrizione del sistema, per ogni singolo modulo, avviene nei paragrafi successivi dai seguenti punti di vista: vista utente, mostra il sito dal punto di vista di colui che naviga sulla rete internet e utilizza i servizi (analisi del front-end); vista staff, mostra le funzionalità del core-system di AWM per gli utenti dello staff che amministrano e configurano il sito web e gestiscono i dati e le informazioni (analisi del back-end). Nel rispetto delle linee guida e della metodologia di progettazione adottate, vengono descritti i principali moduli mettendo in evidenza le funzionalità, gli oggetti e le procedure di gestione. 1.5.1. Modulo News Vista utente. Figura 4.5.a – Pagina News 95 Active Web Matrix ________________________________________________________________________________ La consolle di destra visualizza l’elenco delle news presenti nel database eseguendo la query Q_N001 sulla tabella news15. I dati del frame centrale sono visualizzati per mezzo della query Q_N002. Vista staff. Inserimento. Titolo della News Breve descrizione, inserita anche in home page Testo della news Fonte Questa opzione permette di inserire la news direttamente in home page, scegliendo l’area Figura 4.5.b – Inserimento di una News, dati testuali 15 Le query e le procedure di gestione sono descritte in 2.2.1 e 2.2.2 96 Active Web Matrix ________________________________________________________________________________ L’inserimento avviene in due step separati. 1. Inserimento dei dati testuali mediante l’utilizzo di un form (Figura 4.6.b): l’utente compila il form con i dati richiesti; prima dell’invio dei dati il sistema controlla la validità delle informazioni (type matching) e se tutti i campi obbligatori sono stati compilati. 2. Invio delle immagini Questo secondo step è eseguito mediante una funzione che permette l’invio di file dal client al server (Figura 4.5.c). Figura 4.5.c – Inserimento di una News, invio delle immagini Modifica. 97 Active Web Matrix ________________________________________________________________________________ Selezione della News Dati recuperati a fronte della selezione Opzione per la modifica delle immagini Figura 4.5.d – Modifica di una News L’operazione di modifica si compone di due passi (figura 4.5.d): 1. selezione della news da modificare; 2. modifica dei dati testuali ed eventuale upload delle immagini. Cancellazione. È analoga all’operazione di modifica. Si compine anch’essa di due step: il primo consiste nella ricerca della news da eliminare, il secondo nella cancellazione dei dati dal database e delle immagini associate. L’interfaccia è analoga a quella dell’operazione precedente. 1.5.2. Modulo Multimedia Vista Utente. 98 Active Web Matrix ________________________________________________________________________________ Figura 4.6.a – Pagina Multimedia In questa sezione, l’utente può vedere i video con i relativi dati quali tematica, titolo, descrizione, … (figura 4.6.a) La consolle di destra contiene la lista dei multimedia inseriti nel database ed è costruita dinamicamente con la query Q_M001. La pagina nel frame centrale è costruita mediante la query Q_M002. Nella parte inferiore del frame centrale è presente un link alla versione del video adattata per reti a bassa velocità (tipicamente connessioni su linea telefonica, di qui la dicitura utilizzata, 56Kbps Connection). Vista staff. Le operazioni d’inserimento, modifica e cancellazione per i multimedia sono analoghe alle omonime operazioni per le news. Lo stesso vale per l’interfaccia Inserimento: 1. inserimento dei dati testuali e indicazione del formato del video (utilizzo di un form); 2. invio di tre file video dal client al server, i file costituiscono rispettivamente: - video per reti ad alta velocità, 99 Active Web Matrix ________________________________________________________________________________ - video per reti a bassa velocità, - video per la home page, di dimensioni ridotte. Modifica: 1. ricerca del multimedia da modificare, 2. modifica dei dati testuali, 3. eventuale upload dei tre video. Cancellazione: 1. ricerca del multimedia da cancellare, 2. eliminazione del record dal database, 3. eliminazione dei tre file. 1.5.3. Modulo Web Seminar Vista utente. Figura 4.7.a – Sezione Web Seminar 100 Active Web Matrix ________________________________________________________________________________ La sezione riporta l’elenco dei seminari On-line e Real-time nel menu di destra (query Q_S001). Nel frame centrale sono mostrati i dettagli del seminario scelto dal menu (query Q_S002). Se l’utente vuole assistere al seminario in diretta o vedere quello registrato, può accedere alla sessione attraverso il link associato al titolo della sessione. Per assistere ad un seminario è tuttavia necessario registrarsi e successivamente effettuare il login. Figura 4.7.b. – Accesso alla sezione Web Seminar Effettuato l’accesso al sistema, l’interfaccia che si presenta all’utente è mostrata in figura 4.7.c. 101 Active Web Matrix ________________________________________________________________________________ Figura 4.7.c – Interfaccia del modulo Web Seminar L’interfaccia è costituita da due sezioni separate. La prima sezione fornisce una finestra video (plug-in Real Player) in cui è trasmesso il seminario in diretta (o la replica), riporta inoltre la lista dgli interventi della sessione. La pagina dinamica è generata utilizzando le query Q_S004 e Q_S005. La seconda sezione mostra le immagini delle slides (query Q_S007). Per consentire all’utente di cambiare l’immagine, sotto le slide è presente una barra di navigazione, che fornisce le funzioni di back, next, home (per tornare alla prima slide), viene inoltre indicato il numero progressivo della slide. Le immagini delle slide hanno lo stesso nome e sono numerate progressivamente (es. image001.jpg, image002.jpg), questo per consentire di effettuare solo una chiamata al database, la prima volta che si caricano le informazioni della sezione o dell’intervento: un semplice sistema d’incremento o decremento del numero corrente di slide, unito al normale meccanismo d’inclusione di immagini in un documento HTML (tag IMG) permettono di passare da un’immagine alla successiva (o precedente), senza dover accedere nuovamente al database. Questo sistema è stato adottato per ridurre il carico del server e le connessioni alla base di dati. Le potenzialità del modulo non si fermano alla sola funzione passiva di streaming in diretta/replica; il modulo offre all’utente del sistema la possibilità di inviare domande alle persone che stanno tenendo il seminario. Nel caso di trasmissione in modalità sincrona, un addetto può prendere visione delle domande inviate e sottoporle, in tempo reale a chi sta tenendo il seminario. Vista staff. Le operazioni implementate per questo modulo sono: 1. inserimento di un seminario, 2. inserimento di una sezione del seminario, 3. inserimento di un intervento per una sezione, 4. inserimento di una pausa tra sezioni. Le rispettive operazioni di modifica e cancellazione sono state progettate ma non ancora implementate. Di seguito riportiamo le immagini che mostrano le operazioni sopra citate. Inserimento di un seminario. 102 Active Web Matrix ________________________________________________________________________________ Titolo Data Argomenti trattati nel seminario Indica se il seminario è in real-time, se non viene selezionato si assume che è on-line Opzione per l’inserimento in home page Figura 4.7.d –Inserimento di un seminario Inserimento di una sessione per un seminario. 103 Active Web Matrix ________________________________________________________________________________ Scelta del seminario in cui aggiungere la sessione Sessioni già presenti per il seminario scelto Dati relativi alla sessione da inserire Gli altri campi non sono visibili per motivi di risoluzione Figura 4.7.e –Inserimento di una sessione L’inserimento di una pausa tra le sezioni avviene in modo analogo dal punto di vista funzionale e con la stessa interfaccia. Inserimento di un intervento per una sessione di un seminario. È simile all’inserimento di una sessione, ma in questo caso è necessario selezionare prima il seminario, poi la sessione e quindi inserire i dati. Le funzioni di inserimento delle sessioni e degli interventi si avvalgono di procedure per l’invio di file (di solito .ppt) dal client al server, questi file, in seguito, verranno convertiti in immagini (da un operatore). Ogni procedura di inserimento crea una propria directory in base alla seguente logica: una directory per ogni seminario; una directory per ogni sessione, contenuta nella directory del seminario; la directory ha un nome che indica esplicitamente il numero progressivo della sessione; al suo interno vengono inserite le immagini corrispondenti all’intervento del chairman; 104 Active Web Matrix ________________________________________________________________________________ una directory per ogni intervento, contenuta all’interno della rispettiva sessione, con nomenclatura analoga a quella usata per le sessioni; al suo interno vengono inserite le immagini dell’intervento corrispondente. La struttura del nome per le varie directory segue il seguente schema: <id_seminario>_<id_sezione>_<id_intervento>. 1.5.4. Modulo Home page Consolle Manager Il consolle manager permette di gestire e configurare la consolle principale del sito (area 1 di figura 4.1). Le operazioni implementate per questo modulo sono: 1. inserimento di una sezione della consolle, 2. inserimento di un link per una sezione, 3. modifica di un link per una sezione, 4. cancellazione di uno o più link per una sezione, 5. cancellazione di una sezione della consolle con tutti i link contenuti. Di seguito riportiamo le immagini che mostrano le operazioni sopra citate. Inserimento di una sezione. 105 Active Web Matrix ________________________________________________________________________________ Titolo della sezione, utilizzato per individuare la sezione Breve descrizione Figura 4.8.a –Inserimento di una sezione della console Inserimento di un link. Scelta della sezione in cui inserire il link Link già presenti nella sezione e relativo URL Nome del link URL del link (la directory corrente è quella principale del sito) Figura 4.8.b –Inserimento di un link Modifica di un link. 106 Active Web Matrix ________________________________________________________________________________ Scelta della sezione Link presenti nella sezione, relativi URL e ordine progressivo Figura 4.8.c –Modifica di un link Cancellazione di un link. Scelta della sezione da cui cancellare il link Link presenti nella sezione Figura 4.8.e –Cancellazione di un link Cancellazione di una sezione. L’interfaccia di questa funzione è simile alle altre, permette di scegliere la sezione da modificare e, in base alla scelta dell’utente, mostra i link della sezione. L’immagine non viene riportata per brevità. 107 Active Web Matrix ________________________________________________________________________________ Configurazione dell’Home page Questo modulo consente all’utente di configurare sia la consolle che la home page del sito della Cyber Enterprise. La figura 4.9 mostra l’interfaccia del modulo. L’area è divisa in due parti indicate con (1) e (2). Nella parte superiore dell’area (2) è raffigurata una griglia che schematizza Active Web Matrix. Ogni area è individuata da un numero progressivo (sono le celle di AWM) e riporta il nome (link) della tipologia d’informazione contenuta nella cella. Mediante un click su una determinata cella, viene mostrata la lista dei dati contenuti nel database per la categoria scelta (area (2) parte inferiore). Contemporaneamente, nell’area (1) viene caricata la configurazione corrente di AWM per la cella in questione. La parte superiore di (1) mostra il set di informazioni che sono (o possono essere) inserite in home page, corredate di layout grafico, la parte inferiore mostra il set completo di informazioni. Selezionando una determinata informazione dalla lista apparsa in precedenza nella parte inferiore di (2), questa viene mostrata nell’area (1) con modalità analoghe a quanto detto sopra. Nella parte inferiore di (1) è quindi presente il pulsante di conferma per l’inserimento. Confermando l’operazione, il manager modifica opportunamente i database di supporto in modo da inserire il nuovo set di informazioni nella cella indicata, sostituendolo a quello esistente. 108 Active Web Matrix ________________________________________________________________________________ 1 2 Figura 4.9 – Home Page Manager Come si evince dalla figura 4.9 ogni sequenza dell’operazione di configurazione può essere svolta con il semplice utilizzo del mouse e, soprattutto, senza che l’utente abbia la necessità di conoscere 109 Active Web Matrix ________________________________________________________________________________ nel dettaglio al struttura dei database e del sistema. L’unico requisito che l’utente deve avere è la conoscenza generale di AWM e della sua struttura a celle. 1.5.5. Web Based Document Management System Il Web Based Document Management System (WBDMS) è un modulo che permette la gestione della documentazione di progetto attraverso il web. Il modulo non svolge soltanto le funzioni di repository ma fornisce anche gli strumenti necessari per l’iter di validazione e approvazione della documentazione. La definizione di uno standard per i documenti e la classificazione degli utenti costituiscono i requisiti generali su cui si basa il WBDMS. Per consentire la classificazione della documentazione è stato introdotto uno standard16 che deve essere applicato a tutti i documenti “cartacei”. Questo ha permesso di definire l’insieme di informazioni che costituscono il MDS su cui si basa il repository implementato. Per limitare l’accesso alla documentazione sono stati introdotti differenti livelli di privacy per i documenti. Nella definizione del MDS per il WBDMS si è tenuto conto anche di questo aspetto. Per realizzare questo modulo si è partiti dall’analisi dei documenti che vengono prodotti in fase di sviluppo di un progetto e si è preso in esame il processo a cui sono soggetti; si è quindi cercato di simulare questo iter che parte dalla fase di editing per poi arrivare alla validazione passando attraverso più fasi di revisione. Le funzioni standard di gestione sono costituite da: a) Inserimento. Questa operazione può essere suddivisa in due step successivi: il primo consiste nell’inserimento dei dati che costituiscono la scheda del documento, operazione svolta mediante l’utilizzo di un form, il secondo step consiste nell’invio del documento in formato elettronico dal client al server. Nel secondo step il server ricava automaticamente un insieme di informazioni dal file e le introduce nel database a corredo dei dati inseriti con il form. b) Modifica. Il primo passo è la ricerca del documento da modificare, il secondo è la modifica dei dati della scheda ed, opzionalmente, la sostituzione del file. c) Cancellazione. Come per la modifica il primo passo è la ricerca del documento da cancellare; individuato il documento, l’operazione di cancellazione esegue in un unico step sia l’eliminazione del record dal database, che la cancellazione del file. L’operazione di 16 Standard per la documentazione[13] 110 Active Web Matrix ________________________________________________________________________________ cancellazione è irreversibile, motivo per cui il sistema prevede un’opzione di conferma subordinata a quella di cancellazione. Per implementare l’iter di validazione e approvazione di un documento, le sole funzioni a b e c non sono sufficienti; sebbene la funzione di modifica permetta di sostituire i documenti e di aggiornare i dati del repository, l’uso di questa funzione non consente di tenere traccia delle modifiche successive che si effettuano su un documento. Questo compito è svolto dalla funzione di d) Revisione. La revisione nasconde al suo interno sia la funzione a che b. Ricercato il documento da revisionare, all’utente viene restituito un form in cui sono caricati i dati del documento; non tutti i dati del form possono essere modificati, ad esempio il numero di revisione è imposto dal sistema. Questo primo step nasconde all’utente l’inserimento di un nuovo record nel database. Il secondo step prevede l’inserimento del documento revisionato che tuttavia non va a sostituire il precedente file. Il modulo implementa anche una funzione di comunicazione attraverso la quale è possibile comunicare agli utenti del sistema l’inserimento di un nuovo documento. Di seguito sono riportate alcune immagini che descrivono le diverse funzioni del modulo. 111 Active Web Matrix ________________________________________________________________________________ 1 2 3 Figura 4.10.a – WBDMS, visualizzazione dei documenti La figura 4.10.a mostra l’interfaccia del modulo relativa alla funzione di visualizzazione di un documento. L’interfaccia17 è composta da tre aree: Consolle funzionale (1): fornisce la funzione di ricerca (standard ed avanzata) dei documenti ed il punto di accesso alla funzione d’inserimento di un nuovo documento; identifica anche l’utente ed il suo profilo. Lista dei documenti (2): fornisce la lista dei documenti ritrovati nel database a seguito di una ricerca. Per ogni documento è riportato il titolo, la revisione e una lettera (sarà poi sostituita da una icona nelle successive versioni) che indica lo status del documento. Card del documento (3): riporta le informazioni dettagliate del documento; il layout ripropone l’impostazione del frontespizio del documento “cartaceo” (vedi standard). Nella 17 L’interfaccia riprende il layout e le caratteristiche funzionali di Web-DB utilizzata per la prima volta nell’applicazione Glossario e a seguire in GCMD per il progetto Antartide (2001 – 2002, NASA).Vedi Bibliografia [10] 112 Active Web Matrix ________________________________________________________________________________ parte inferiore della card sono visualizzati una serie di pulsanti funzionali che consentono la modifica, revisione e cancellazione del documento. Tali pulsanti sono visibili solo nel caso in cui l’utente che ha acceduto al sistema abbia l’autorizzazione a compiere tali operazioni. La figura 4.10.b mostra il form che consente l’operazione di inserimento. Figura 4.10.b – WBDMS, inserimento di un documento 113 Active Web Matrix ________________________________________________________________________________ 1.5.6. Gli altri moduli Per brevità si elencano di seguito del figure relative alle altre sezioni web che non sono state descritte nel dettaglio come le precedenti. Esse sono: Welcome, sezione di benevenuto nel sito; Project; General Information; Partners, i partner del progetto SOPHOCLES; Publications; Congress & Workshop. Figura 4.11.a – Welcome 114 Active Web Matrix ________________________________________________________________________________ Figura 4.11.b – Project 115 Active Web Matrix ________________________________________________________________________________ Figura 4.11.c – General Information 116 Active Web Matrix ________________________________________________________________________________ Figura 4.11.d – Partners 117 Active Web Matrix ________________________________________________________________________________ Figura 4.11.e – Publications 118 Active Web Matrix ________________________________________________________________________________ Figura 4.11.f – Congress & Workshop 119 Active Web Matrix ________________________________________________________________________________ Figura 4.11.g – Login CE 120 Active Web Matrix ________________________________________________________________________________ Figura 4.11.h – Area staff 121 Active Web Matrix ________________________________________________________________________________ Figura 4.11.m – Catalogo VC 122 Active Web Matrix ________________________________________________________________________________ Figura 4.11.n – Link 123 Active Web Matrix ________________________________________________________________________________ Figura 4.11.p – User Registration 124 Active Web Matrix ________________________________________________________________________________ Capitolo 5 CONCLUSIONI E FUTURI SVILUPPI Questo capitolo descrive i risultati raggiunti e validati con una serie di test d’usabilità sul prototipo che hanno visto la partecipazione di gruppi di utenti. Tali test sono stati realizzati secondo la metodologia usata per altri sistemi progettati e sviluppati in ENEA e Università di Roma.18 In base a tale sperimentazione e validazione è stata data una valutazione finale del prototipo e sono state delineate alcune fasi di sviluppo successive. 1.6. Test di validazione I test di validazione presi in considerazione per Active Web Matrix riguardano sia gli aspetti funzionali del sistema, nel suo complesso, che quelli specifici dei moduli che lo compongono. Nel corso della validazione, i tipi di test che si è ritenuto idoneo utilizzare sono stati quelli basati sull’osservazione dell’utente durante lo svolgimento di compiti assegnati, che riguardano le principali funzionalità offerte dal sistema in esame. In generale, i test hanno riguardato anche gli aspetti visivi delle interfacce, in termini, di: struttura grafica, icone, multimedia e animazioni. Possiamo considerare come prima misura il tempo necessario all’utente per eseguire un determinato compito (task performing time), come seconda misura consideriamo il numero di errori commessi dall'utente nell’esecuzione di un task, come terza misura, infine, si considera il numero di suggerimenti o aiuti che l’utente richiede o di cui necessita per compiere il task. Inoltre, è opportuno considerare, nella valutazione dell’usabilità del sistema, un indice di soddisfazione dell’utente nell’esecuzione del compito. Le sessioni di test sono state classificate in base al modulo da testare e alla funzione specifica (es.gestione/inserimento, interrogazione/query, ecc.) da eseguire. Gli utenti hanno svolto i test con compiti assegnati da portare avanti con e senza un’assistenza diretta. Per ogni test, quindi, è prevista una scheda lavoro e una scheda metrica. 18 Vedi Bibliografia [6] 125 Active Web Matrix ________________________________________________________________________________ Le sessioni di test per l’attuale versione del prototipo sono state articolate nei seguenti task: Inserimento, variazione e cancellazione di una news; Registrazione utenza; Inserimento variazione e cancellazione di un multimedia; Utilizzo del Home Page Manager; Web Seminar; Inserimento, variazione, cancellazione, revisione, validazione di un documento con il WBDMS. Alla fine della sessione, sono stati riportati i dati dei parametri presi in esame nella schede di test e sono state richieste all’utente indicazioni di carattere qualitativo al fine di calcolare un indice di accettazione qualitativa per i moduli testati. I test di usabilità sono stati condotti sui seguenti tre gruppi di utenti: Gruppo A – Utenti finali Gruppo B – Utenti esperti in Informatica Gruppo C – Operatori del sistema esperti in Informatica Le prestazioni del sistema sono state valutate in fase di sviluppo mediante test “sul campo”, in particolare risultano significative le esperienze di Parigi (Technical Meeting presso THALES, 13 Settembre 2002) e Marsiglia (FDL’02, 24 Settembre 2002). Durante il Technical Meeting di Parigi sono state effettuate anche prove di collegamento attraverso linea telefonica utilizzando un modem a 56 Kbps, in tale occasione sono stati ottenuti dei risultati soddisfacenti, considerando i parametri di riferimento ed il divario rispetto rete utilizzata per lo sviluppo (rete interna ENEA a 100Mbps). Il workshop di Marsiglia può essere considerato il “test finale” per il prototipo di AWM ed in particolare del modulo Web Seminar. Mediante l’utilizzo del sistema implementato nel prototipo, il workshop è stato seguito in modalità sincrona da persone che non erano presenti all’incontro. Questa esperienza, unita alla precedente di Parigi e all’analisi in fase di progettazione in ENEA, hanno permesso di validare le scelte effettuate e contemporaneamente sono state utilizzate come test di usabilità da parte dei progettisti del modulo. Il workshop è stato utilizzato come modello per strutturare l’“evento seminario” e la sua suddivisione in sezioni e interventi. Il workshop di Marsiglia ha messo in evidenza l’importanza della rapidità con cui le slide devono essere inserite 126 Active Web Matrix ________________________________________________________________________________ nel sistema nel caso di un seminario in real-time: in alcuni casi le slide sono state consegnate solo “qualche minuto prima” della presentazione, lasciando poco tempo all’operatore per la conversione in immagini ed inserimento nell’apposita directory associata all’intervento. La struttura delle directory che è stata ideata per il seminario è risultata vincente, perché ha permesso in poco tempo di individuare il punto in cui inserire le slide. È stato fondamentale anche l’apporto del modulo client/server per invio di file realizzato in ENEA da un altro tesista19. I test sul modulo WBDMS sono stati eseguiti con la collaborazione di un gruppo di utenti del progetto CASCADE (progetto a cui l’ENEA collabora). Il modulo è stato inserito, grazie alla sua indipendenza strutturale e funzionale, all’interno del sito web per il progetto in questione. Tale esperimento, ha così fornito agli utenti uno strumento per la gestione della documentazione e, contemporaneamente, ai progettisti e sviluppatori del modulo un feedback sulla correttezza e usabilità delle funzioni e del modulo in generale. In appendice è stata riportata una tabella riassuntiva dei risultati e dei test che hanno influito rilevantemente sulle modifiche funzionali di AWM. In particolare, si descrivono le modifiche e le nuove funzionalità che hanno incrementato il grado di usabilità. L’ultima sessione di Demo, a livello internazionale, si è svolta ad Amsterdam (NL), 10-11 Ottobre 2002, in occasione 3rd ITEA Symposium - Exibition, nel quale è stato presentato AWM completo di informazioni e multimedia. In figura 5.1 viene mostrata la sintesi complessiva per modulo della validazione in termini di giudizio e funzionalità del sistema. 19 S. Tiberia si è occupato in particolare della registrazione e gestione dell’utenza, e delle funzioni di comunicazione tra la Cyber Enterprise e l’utente. 127 Active Web Matrix ________________________________________________________________________________ FUNZIONALITA' consolle news multimedia web seminar p ubblicazioni registrazione utente WBDMS home p age config. 0 1 2 3 4 5 6 7 8 9 10 GIUDIZIO Figura 5.1 – Giudizio sul sistema I test di tipo prestazionale effettuati sia in rete ENEA che tramite una connessione telefonica a 56Kps, hanno evidenziato alcuni limiti del sistema. In particolare, l’utilizzo di pagine ASP e continue connessioni ai database per costruire le pagine dinamiche, nel caso di un numero elevato di utenti, hanno appesantito notevolmente il server, con conseguente rallentamento dell’invio e ricezione dei dati. 1.7. Considerazioni finali I test di usabilità svolti in ENEA, insieme alle sperimentazioni di Parigi e Marsiglia hanno consentito di valutare le funzionalità del sistema e di confermare/scartare le scelte di progetto che sono state effettuate. Si è posta particolare attenzione alle funzionalità del sistema in rapporto alle “richieste dell’utente”. Sono state così studiate le funzionalità non solo del web, ma più in generale di un sito di una CE che deve cercare di: soddisfare le aspettative dell’utenza esterna che ricerca le informazioni; soddisfare le aspettative dell’utenza interna (staff) che deve gestire il sistema; gestire componenti software/servizi in ambienti eterogenei e distribuiti. 128 Active Web Matrix ________________________________________________________________________________ L’obiettivo era quello di coniugare due mondi, quello delle informazioni interne e quello delle informazioni esterne, integrandole nello stesso ambiente. Si è cercato inoltre di semplificare le procedure con uno sforzo di progettazione e implementazione. La sperimentazione e osservazione del sistema che si è realizzato, è stata messa continuamente in relazione agli utenti ed alla loro reazione, suggerimenti e richieste, così come descritto in 5.1. La risposta alla domanda “il sistema risponde alle esigenze degli utenti?” è, in parte, data dalla figura sul giudizio del sistema basata sui dati dei test sopra descritti. 1.8. Futuri sviluppi Il primo momento di sviluppo futuro vedrà la portabilità di AWM per mezzo di nuovo sistema, basato su tecnologia Java (Obiettivo di ricerca ULAB), come prossimo passo, in quanto ASP è una tecnologia proprietaria della Microsoft e come tale è utilizzabile solo su server con sistema operativo Windows (NT/2000, UR/3.1). In futuro AWM potrà così operare in un qualsiasi ambiente distribuito ed eterogeneo. Un discorso analogo vale per il DBMS. Access è sicuramente un DBMS facile da utilizzare, ma Oracle che garantisce sia la portabilità (esistono le implementazioni per s.o. Windows e Unix/Linux), che una maggiore robustezza e sicurezza sarà integrato con il modulo “core” del nuovo sistema AWM-2. AWM-2, al contrario di AWM che fa un uso massiccio dei database, sarà concepito come una piattaforma dedicata esclusivamente al recupero dei dati ed alla produzione (tempo reale, tempo programmato) di pagine HTML e XML da inserire in directory predefinite corrispondenti alle sezioni del sito della CE. Tale compito è stato in parte già svolto da IVQSS, ma dovrà essere implementato con nuove funzionalità necessarie nelle specifiche situazioni di gestione. In futuro, sarà implementata anche una matrice attiva non predefinita multifunzione, AWM-2/MF, che consentirà di configurare in modo libero (Solo news, solo Web news/Seminar, ecc.) la struttura del sito. Potrà essere esplorata, vista la caratteristica di AWM di essere distribuito su più server, la progettazione di un modulo Core che consenta anche d’integrare maggiormente moduli dedicati all’interrogazione di basi dati e web searching come: IVQSS e SES. 129 Active Web Matrix ________________________________________________________________________________ Infine, si definirà una nuova architettura basata su 3D, ovvero, in grado di fornire servizi multipli di Web per Cyber Enterprise. Sito n Sito … Sito 2 Sito 1 Active Web Matrix 3D Figura 5.2 – AWM-3D 130 Active Web Matrix ________________________________________________________________________________ BIBLIOGRAFIA [1] P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone. Basi di dati (Seconda Edizione). McGrawHill 1999. [2] F. Fontana, M.L. Bargellini, R. Cannata, R. Guadagni. Cyber Enterprise definition and specifications (Technical ReportWork Package 1). Gennaio 2002. [3] F. Fontana, M. Moscarini. FAD – Formazione a Distanza, Database FAD di III Generazione, Ottobre 1999. [4] P. Pozzi, M. Casagni, P. De Sabbata, F. Vitali. Commercio Elettronico e XML Scenari, tecnologie, applicazioni. (In collaborazione con ENEA) Franco Angeli 2001. [5] M.L.Bargellini, F.Fontana, F.M.Ferrara. VENUS: una esperienza europea per la realizzazione di un’interfaccia visuale alle banche dati. ENEA, nota tecnica Marzo 1998. [6] F.Fontana, M.L.Bargellini, C.Bucci, F.Ferrara, P.A.Sottile, L.Niccolai, G.Scavino, R.Mancini, S.Levialdi. VENUS Project, Experimentation at ENEA's pilot site. ESPRIT #6398, Document Id. EN-01,ENEA 1995. [7] F.Fontana. Interfacce visuali avanzate, linguaggio di interrogazione iconico. ENEA Dept.Innovation, Maggio, 1997. [8] S. Levialdi, F.Fontana. Interfacce visuali avanzate. Sistema di Formazione a Distanza basato su tecnologia WWW. ENEA Dip.Innovazione, 1999. [9] ITEA Sophocles proposal 2001. [10] Flavio Fontana, Marina Moscarini, MarcelloValeri. Looking for alternative ways to query database through the Web: an iconic approach with IVQS. Web Net 2000. 131 Active Web Matrix ________________________________________________________________________________ [11] Flavio Fontana, Marina Moscarini, Simone Moretti, Marcello Valeri. An innovative solution to improve web database integration: IVQS a client-server iconic visual query system. ED-Media 2002. [12] Flavio Fontana, Giancarlo Bongiovanni, Stefano Borghetti. Site Explorer Server: An Integrated Client-Server Query System for Web Sites. Web Net 2000. [13] Flavio Fontana, Stefano Levialdi. Standard www. Edizione1996 [14] PLUS (PROSOMA Link-Up Service)/ENEA Methodologies. [15] F.Fontana, F. Cappellaro. Procedure for issuing CASCADE Project documentation. ENEA (documentazione riservata). [16] Web design guidelines, siti web: www.w3.org [17] Esempi di pagine ASP, sito web: www.aspitalia.com [18] D. Bochicchio. ASP 3.0 per esempi. Jackson Libri 2001. [19] A. Keyton Weissinger. ASP Guida di riferimento. Apogeo 2000. [20] A.A.V.V. Manuale pratico di Java. MokaByte s.r.l. 2001. [21] Maiocchi M., Quintarelli S. Internet per l'azienda. La rete delle reti al servizio dell'impresa. Come creare e utilizzare un'Intranet e un'Extranet, come installare e sfruttare un sito Internet, come fare marketing, pubblicità e vendita in rete. Il Sole 24 Ore, Milano, 1998. [22] Morelli M. Internet: l'impresa in rete, Franco Angeli, 1998. 132 Active Web Matrix ________________________________________________________________________________ [22] F.Capobianco, M.Mosconi, L.Pagnin. Looking for convenient alternatives to forms for querying remote databases on the Web: a new iconic interface for progressive queries. Dipartimento di Informatica e sistemistica - Università di Pavia, 1996. [23] International Standards Organization DIS 9241-11, Ergonomic requirements for office work with visual display terminals (VDTs), Part 11: Guidance on usability. [24] M.MacLeod, R.Bowden, N.Bevan, I.Curson. The MUSiC performance measurement method. [25] T. Nguyen, V. Srinivasan. Accessing Relational Databases from the World Wide Web. SIGMOD Conf. 1996. [26] C.Pancake, M.Newsome, J.Hanus. Simplifying web access to remote scientific databases. Oregon State University, 1997. [27] B.Shneiderman. Designing the User Interface. Addison Wesley, 1994. [28] A.S.Tanenbaum. Computer Networks. Prentice Hall,1996. [29] H.Thimbleby. User Interface Design. Addison-Wesley.1991. [30] S. Anderson. Plug-in to Web Accessibility. WebAIM, Utah State University,Usa. [31] Marwin Britto.Thimbleby. A Web-based System to Support Technology Needs. Georgia State University. [32] J. Bauer, M. Bauer. Digital Video Production for the Web. Addison-Wesley.1991. 133