Università degli Studi di Modena e Reggio Emilia Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Scienze dell’Informazione Progetto e Sviluppo di un Sistema Informativo per la Gestione di una Base di Dati di Pubblicazioni Scientifiche Valerio Romeo Relatore: Prof. Riccardo Martoglia Anno Accademico 2006/2007 Introduzione • Studio ed estensione delle funzionalità del sito Information Systems Group (http://www.isgroup.unimo.it) • Sezioni principali del sito: Projects, Publications e Thesis • La sezione analizzata in dettaglio è quella delle pubblicazioni scientifiche • Necessità degli autori di effettuare inserimenti e modifiche alla base di dati direttamente da interfaccia Web • Realizzazione di un’area protetta per consentire le operazioni summenzionate Problematiche affrontate nella tesi • Analisi del caso di studio • Analisi dei dati • Progetto • Implementazione Information System Group Sezioni principali • L’ISGroup è un gruppo di ricercatori che ha sede • Projects: presso il Dipartimento di Ingegneria sono descritti in dettaglio i Topic Of Interest dell’Informazione (DII) di Modena e che si studiati e i progetti a cui ildigruppo partecipa o occupa di design e sviluppo nuovi sistemi, ha partecipato algoritmi e strutture dati per l'accesso e • Publications: l'amministrazione dell’Informazione vengono elencate, raggruppate per anno o topic, le pubblicazioni scientifiche realizzate dai vari membri del gruppo • Thesis: sono elencate le tesi proposte e una serie di tesi pubblicate Information System Group Principali caratteristiche del sito: • • • Server Web: Internet Information Services Database: pub.mdb (MS Access) Tecnologie utilizzate: – HTML – ASP (VBScript) – JavaScript Problematiche da risolvere • Inserimenti e modifiche manuali dei dati • Upload del file tramite accesso diretto alla cartella del server ( /pub/ ) • Mancanza di funzionalità sul controllo dei dati inseriti Accesso diretto alle • Generazione manuale del BibTeX tabelle Es. @inproceedings{sebd04smart, author = {F. Mandreoli and R. Martoglia}, title = "{Exploiting related digital library corpora with query rewriting}", booktitle = {Proc. of the 12th Convegno su Sistemi Evoluti per Basi di Dati (SEBD 2004)}, year = {2004} } Problematiche affrontate nella tesi • Analisi del caso di studio • Analisi dei dati • Progetto • Implementazione Studio del database pub.mdb Le Pubblicazioni possono Ogni Pubblicazione inoltre GliUn Autori determinato possonoPrototipo realizzare essere Tipo (unico riguardadi1vario o n Progetti per riguarda 0 o n Pubblicazioni, un solo Progetto mentre e per ognuna) e possono ciascuno dei quali possono ogni fa riferimento Pubblicazione ad unpuò unico far riguardare determinato essere stati un realizzati da 0 a riferimento Topic ad Of 1 Interest o più Autori Topic of interest n Prototipi Schema Logico AUTORI ( ID, Nome, Search ) PUB-AUT ( ID, Pub, Autore ) AK: Pub, Autore FK: Pub REFERENCES Pubblicazioni FK: Autore REFERENCES Autori PUBBLICAZIONI ( ID, Titolo, Libro, Abbr, Luogo, Year, Month, Tipo, Topic, PDFLink, Abstract, BibTeX ) FK: Tipo REFERENCES Tipo FK: Topic REFERENCES TopicOfInterest TIPO ( ID, Tipo ) TOPICOFINTEREST ( ID, Titolo, Descrizione, PaginaWeb, Search ) PROG-PUB ( ID, Prog, Pub ) AK: Prog, Pub FK: Prog REFERENCES Progetti FK: Pub REFERENCES Pubblicazioni PROGETTI ( ID, Titolo, Descrizione, PaginaWeb, Tipo, Inizio, Fine ) PROTOTIPI ( ID, Nome, PaginaWeb, Topic. Progetto ) FK: Topic REFERENCES TopicOfInterest FK: Progetto REFERENCES Progetti Problematiche affrontate nella tesi • Analisi del caso di studio • Analisi dei dati • Progetto • Implementazione Progetto Fasi affrontate: 1. Raccolta dei requisiti da sviluppare 2. Analisi dello scenario: gestione pubblicazioni 3. Individuazione dei casi d’uso: inserimento e modifica pubblicazione 4. Realizzazione degli Activity Diagram 5. Modifica al database Scenario: Scenario:Gestione Pubblicazione Gestione Pubblicazione Visione globale della gestione di una pubblicazione da inserire oaver daconfermato L’autore, amodificare login Dopo ... effettuato, ...al se contrario, è stato inserito se si un è In l’inserimento, caso di mediante inserimento i dati deciso apposito nuovo di modificare topic, menù potrà una verrà saranno caricata immessi lasarà pagina nel pubblicazione, decidere necessario completare inserire mediante una database opportuna esecontenente sarà possibile il l’operazione un nuova apposito pubblicazione relativa menù, sarà con o i infine form caricare da compilare... sul server modificarne possibile dati del sceglierla topic una già il file della pubblicazione esistente Activity Diagram: Inserimento Pubblicazione Diagramma delle attività per la funzione di inserimento di una pubblicazione analizzata in dettaglio Modifiche al database • Nuovi dati per le pubblicazioni: Attributi: Pag-Iniz e Pag-fin – Numero di pagine – Keywords Entità: Keywords Relazione: Pub-Key Schema E-R /modificato Logico AUTORI ( ID, Nome, Search ) PUB-AUT ( ID, Pub, Autore ) AK: Pub, Autore FK: Pub REFERENCES Pubblicazioni FK: Autore REFERENCES Autori PUBBLICAZIONI ( ID, Titolo, Libro, Abbr, Pag-Iniz, PagFin, Luogo, Year, Month, Tipo, Topic, PDFLink, Abstract, BibTeX ) FK: Tipo REFERENCES Tipo FK: Topic REFERENCES TopicOfInterest KEYWORDS ( ID, Keyword ) PUB-KEY ( ID, Pub, Keyword ) AK: Pub, Keyword FK: Pub REFERENCES Pubblicazioni FK: Keyword REFERENCES Keywords TIPO ( ID, Tipo ) TOPICOFINTEREST ( ID, Titolo, Descrizione, PaginaWeb, Search ) PROG-PUB ( ID, Prog, Pub ) AK: Prog, Pub FK: Prog REFERENCES Progetti FK: Pub REFERENCES Pubblicazioni PROGETTI ( ID, Titolo, Descrizione, PaginaWeb, Tipo, Inizio, Fine ) PROTOTIPI ( ID, Nome, PaginaWeb, Topic. Progetto ) FK: Topic REFERENCES TopicOfInterest FK: Progetto REFERENCES Progetti Problematiche affrontate nella tesi • Analisi del caso di studio • Analisi dei dati • Progetto • Implementazione Studio degli script Script ASP: • LoginForm (3 KB): realizza il form di login, contenente i campi di testo Username e Password e il checkbox Salva LogIn, per accedere all’area privata del sito • Login (2 KB): controlla che i campi inseriti siano presenti nella tabella ‘Login’ • Menu (3 KB): menù per effettuare le seguenti operazioni: logout, cancellazione cookie, inserimento pubblicazione e modifica pubblicazione • Logout (1 KB): esegue il logout dall’area privata del sito e redireziona l’utente alla pagina di login Studio degli script (2) • Deletecookie (1 KB): cancella il cookie ‘Logon’ generato in fase di login con salvataggio dei dati • Sceltapub (10 KB): permette di ricercare, per autore e topic, le pubblicazioni presenti nel database. Selezionando il pulsante ‘Modifica’ si potrà accedere al form per apportare i cambiamenti desiderati • InsmodForm (16 KB): form per l’inserimento e la modifica dei dati di una pubblicazione • Preinserimento (10 KB): visualizza, in una struttura a tabella, i dati inseriti nel form prima di dare l’effettiva conferma di inserimento o modifica • InstopicForm (2 KB): form di inserimento per i dati del nuovo topic Studio degli script (3) • Instopic (3 KB): visualizza, in una struttura a tabella, i dati del nuovo topic inseriti • Inserimentodati (14 KB): contiene le query SQL per l’inserimento e la modifica dei dati della pubblicazione • Upload (4 KB): gestisce l’upload del file, in formato PDF, della pubblicazione scientifica sul server Script JavaScript: • Bibtex (4 KB): contiene la funzione gen_bibtex() per la generazione automatica del BibTeX • Script (11 KB): realizza una serie di controlli sui campi del form Area Web: gestione pubblicazioni pubblicazioni • Gestione Menù: Logout, Cancellaprotetta Cookie,da Login Inserimento nuova Pub e Modifica Pub Salvataggio dati: Cookie ‘Logon’ Inserimento nuova pubblicazione: caricamento del form Controlli JavaScript (script.inc) • Controllo Menù a tendina: Abilitazione sui/ campi sulle obbligatori: Disabilitazione pagine parole filtro autori chiave inserite: Autore, le Titolo, Nuovi campi pagine inserite: Libro, devono maxAbbr, 5 Anno, Tipo Autori, essere Nuovo separate e Topic Tipo e Nuovo dal carattere Topic‘-’ Inserimento pubblicazione • Possibilità di inserire confermare un nuovo i dati prima topic di inserirli nel database compilando i campi del form relativo Visualizzazione dati inseriti Modifica pubblicazione • Scelta Caricamento della dei pubblicazione dati nel form da ricercare mediante un apposito menù Upload file • • Gestito mediante un form di tipo multipart/form-data Fasi upload: 1. Verifica di quanti dati sono stati spediti dal client (Request.TotalBytes) 2. Recupero dei dati (Request.BinaryRead) 3. Distinzione dell’header dal contenuto vero e proprio (variabile ContenutoFile) 4. Scrittura del file mediante l’oggetto FileSystemObject che permette di accedere al file system del server Generazione automatica BibTeX (bibtex.inc) •Esempio: Strumento utilizzato per la formattazione di riferimenti bibliografici contenente una serie di voci; nel caso di una pubblicazione, le voci prese in considerazione sono: Abbr, Autori, Titolo, Libro e Anno • realizzato mediante una concatenazione di stringhe generata automaticamente dalla funzione gen_bibtex() • questa funzione viene richiamata ogni volta che si compila un campo a cui è associato il metodo onChange • tale metodo stabilisce l'esecuzione di un'espressione JavaScript quando un campo di un form HTML non è più evidenziato e il suo valore è cambiato Obiettivi raggiunti : migliorata la sezione Publications attraverso inserimenti e modifiche più veloci e sicure attraverso una serie di controlli sono stati introdotti nuovi attributi per le pubblicazioni ed è stata aggiunta l’entità ‘Keywords’ anche l’upload del file è stato ottimizzato gestendolo mediante l’ausilio di un form ed evitando quindi l’accesso diretto alla cartella del server l’area privata realizzata risulta essere protetta grazie all’uso di variabili di sessione e mediante una pagina di accesso Sviluppi futuri : creare script ASP al fine di ottimizzare gli inserimenti e le modifiche anche per le sezioni Projects e Thesis inserire nel criterio di ricerca delle pubblicazioni anche le parole chiave così da filtrare maggiormente i risultati ottenuti gestire inoltre la cancellazione dalla base di dati di una determinata pubblicazione