UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Motore di news per portali Web: progetto ed implementazione Relatore: Tesi di Laurea di: Chiar.mo Prof. Sonia Bergamaschi Roberto Delfini Anno Accademico 2000-2001 Parte della tesi è stata svolta durante 6 mesi di permanenza di presso la QUIX s.r.l. di Campogalliano Introduzione • Il lavoro svolto affronta i problemi di carattere progettuale ed implementativo che sorgono nella realizzazione di un’applicazione server-side che gestisce l’inserimento di notizie in un database e le rende immediatamente disponibili in rete. • Particolare attenzione è stata rivolta alla portabilità del sistema, rendendolo applicabile alla maggior parte dei siti Web. Protocollo HTTP Web Browser Clients Internet + Server Motore di news + Database Vantaggi: • Continuo aggiornamento del portale Web • Riduzione dei costi di manutenzione • Maggiore facilità di amministrazione del sistema Application Server Obiettivi della tesi • Definizione dei requisiti • Tipologie di Utenti • Funzioni principali • Analisi delle problematiche di progetto • Struttura generale • Massimizzazione della portabilità • Personalizzazione • Modellazione del software in UML • Realizzazione di un prototipo funzionante Tipologie di utenti • Lettore Consultazione delle notizie già pubblicate • Creatore Inserimento di nuove notizie candidate alla pubblicazione • Pubblicatore • SuperUser Cancellazione o pubblicazione di notizie precedentemente inserite Funzioni di amministrazione del sistema Funzioni principali • Lettura news • Scrittura news • Pubblicazione news • Cancellazione news • Recupero news cancellate • Inserimento nuovo utente • Rimozione utente Organizzazione dell’applicazione: Il pattern strutturale MVC Utenti Applicazione View • • • • • • Controller Model DB Sviluppo di applicazioni distribuite Sviluppo di applicazioni di notevoli dimensioni Lungo ciclo di vita delle applicazioni Incremento della portabilità Miglioramento della manutenzione Sviluppo modulare del software Problemi di portabilità: la tecnologia Fino a pochi anni fa: Source code Comp. (Pentium) Comp. (PowerPC) linguaggio C Comp. (AS400) Binary file (Pentium) Binary file (Power PC) Binary file (SPARC) Ricompilazione dei file sorgente: problemi di portabilità dell’applicazione Problemi di portabilità: la tecnologia Situazione JAVA JAVA interpreter (Pentium) Source code JAVA Comp. JAVA interpreter (PowerPC) Bytecode JAVA interpreter (AS400) ………. La tecnologia JAVA aumenta la portabilità Problemi di portabilità: il database La struttura MVC rende indipendente dalla base di dati gran parte del motore di news DB View Controller Model La parziale o totale riscrittura del Model permetterebbe di interfacciare l’applicazione con ogni database in commercio È necessario limitare al minimo le modifiche del codice, concentrando gli sforzi per individuare gli elementi che limitano la portabilità attraverso i diversi DBMS Problemi di portabilità: il database Molti DBMS mettono a disposizione tipi di dato proprietari che limitano la portabilità Counter Utilizzo di una tabella ed una classe Java che simula l’autoincremento Boolean Utilizzo di dati di tipo Integer Date Utilizzo di un intero lungo indicante i millisecondi trascorsi dalla mezzanotte del 31 Dicembre 1969 Problemi di portabilità: i JavaScript È bene limitare al minimo l’utilizzo dei JavaScript per mantenere la compatibilità con i Browser più datati JavaScript è stato standardizzato dall’ECMA e dall’ISO, dando rispettivamente origine agli standard ECMA-262 e ISO-16262 Versione del browser Netscape Navigator Microsoft Internet Explorer 2 JavaScript 1.0 3 JavaScript 1.1 JavaScript 1.0 4 JavaScript 1.2; non pienamente compatibile con lo standard ECMA-262 JavaScript 1.2; conforme con lo standard ECMA-262 Personalizzazione: La grafica La presentazione dei contenuti avviene tramite la tecnologia JSP in modo da scrivere codice JAVA fra righe di codice HTML • Separazione dei contenuti dalla loro presentazione • Modifica della veste grafica riscrivendo solo l’HTML Possibilità di utilizzare i fogli di stile per modificare elementi grafici come: • Colore, tipo e dimensione dei caratteri • L’immagine e il colore di sfondo delle pagine • Le icone associate alle diverse funzioni •...... Modellazione del software in UML Il sistema è stato modellato mediante 19 diagrammi che hanno facilitato la fase di scrittura del codice L’Utilizzo dell’UML ha permesso di individuare gli aspetti più importanti del motore di news: • Tipologie di utenti e loro funzioni • Classi principali • Suddivisione in moduli • Funzionalità caratteristiche di ogni modulo • Flussi di dati e sequenze di operazioni L’implementazione Ogni livello è stato ulteriormente suddiviso in moduli che svolgono funzioni di uno stesso tipo: View Model Controller NewsManager s JSP pages s UserManager DateManager c Uploader s DBmanager c Numeratore c Manager s =Java Servlet c =Java Class L’interfaccia utente: Menù principale L’interfaccia utente: Lettura news L’interfaccia utente: inserimento news L’interfaccia utente: menù amministrazione Conclusioni Durante la fase di implementazione sono state prodotte: • 13 fra Classi, Servlets e interfacce JAVA • 25 pagine JSP Per un totale di oltre 3000 linee di codice non commentato che diventano oltre 4500 linee di codice commentato L’applicazione è stata realizzata utilizzando come ambiente di sviluppo IBM VisualAge for Java, come database Microsoft Access e come application server WebSphere Test Environment. In seguito è stata esportata con successo su TOMCAT application server e IBM DB2, senza dover effettuare nessuna correzione al codice