Motore di news per portali Web: progetto ed implementazione Relatore: Chiar.mo Prof. Sonia...
-
Upload
bernardino-carlucci -
Category
Documents
-
view
220 -
download
0
Transcript of Motore di news per portali Web: progetto ed implementazione Relatore: Chiar.mo Prof. Sonia...
Motore di news per portali Web: Motore di news per portali Web: progetto ed implementazioneprogetto ed implementazione
Relatore:
Chiar.mo Prof. Sonia Bergamaschi
Tesi di Laurea di:
Roberto Delfini
Anno Accademico 2000-2001
UNIVERSITÀ DEGLI STUDI DI MODENAE REGGIO EMILIA
Facoltà di Ingegneria – Sede di ModenaCorso di Laurea in Ingegneria Informatica
Parte della tesi è stata svolta durante 6 mesi di permanenza di presso la QUIX s.r.l. di Campogalliano
IntroduzioneIntroduzione• 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.
Vantaggi:
• Continuo aggiornamento del portale Web
• Riduzione dei costi di manutenzione
• Maggiore facilità di amministrazione del sistema
Internet Server
Protocollo HTTP
Clients
+
Motore di news
Database
+Application
Server
Web Browser
Obiettivi della tesiObiettivi della tesi
• Analisi delle problematiche di progetto
• Modellazione del software in UML
• Realizzazione di un prototipo funzionante
• Definizione dei requisiti• Tipologie di Utenti
• Funzioni principali
• Struttura generale
• Massimizzazione della portabilità
• Personalizzazione
Tipologie di utentiTipologie di utenti
• Lettore
• Creatore
• Pubblicatore
• SuperUser
Consultazione delle notizie già pubblicate
Inserimento di nuove notizie candidate alla
pubblicazione
Cancellazione o pubblicazione di notizie
precedentemente inserite
Funzioni di amministrazione del
sistema
Funzioni principaliFunzioni principali
• Scrittura news
• Cancellazione news
• Inserimento nuovo utente
• Lettura news
• Pubblicazione news
• Recupero news cancellate
• Rimozione utente
Utenti Applicazione
DBView Controller Model
• 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
Organizzazione dell’applicazione:Organizzazione dell’applicazione:Il pattern strutturale MVCIl pattern strutturale MVC
Fino a pochi anni fa:
Source code
Comp. (Pentium)
Comp. (PowerPC)
Comp. (AS400)
Binary file(Pentium)
Binary file(Pentium)
Binary file(Power PC)
Binary file(Power PC)
Binary file(SPARC)
Binary file(SPARC)
linguaggio C
Problemi di portabilità: la tecnologiaProblemi di portabilità: la tecnologia
Ricompilazione dei file sorgente: problemi di portabilità dell’applicazione
La tecnologia JAVA aumenta la portabilità
Source code
JAVA Comp.
JAVA interpreter(Pentium)
JAVA interpreter(Pentium)
JAVA interpreter(PowerPC)
JAVA interpreter(PowerPC)
JAVA interpreter
(AS400)
JAVA interpreter
(AS400)
……….
Bytecode
Problemi di portabilità: la tecnologiaProblemi di portabilità: la tecnologia
Situazione JAVA
Problemi di portabilità: il databaseProblemi 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 databaseProblemi di portabilità: il database
Molti DBMS mettono a disposizione tipi di dato proprietari che
limitano la portabilità
Counter
Boolean
Date
Utilizzo di una tabella ed una classe Java che
simula l’autoincremento
Utilizzo di dati di tipo Integer
Utilizzo di un intero lungo indicante i
millisecondi trascorsi dalla mezzanotte del 31
Dicembre 1969
Problemi di portabilità: i JavaScriptProblemi di portabilità: i JavaScript
È bene limitare al minimo l’utilizzo dei JavaScript per mantenere la
compatibilità con i Browser più datati
Versione delbrowser
Netscape NavigatorMicrosoft InternetExplorer
2 JavaScript 1.0
3 JavaScript 1.1 JavaScript 1.0
4
JavaScript 1.2; nonpienamentecompatibile con lostandard ECMA-262
JavaScript 1.2; conformecon lo standard ECMA-262
JavaScript è stato standardizzato dall’ECMA e dall’ISO, dando
rispettivamente origine agli standard ECMA-262 e ISO-16262
Personalizzazione: La graficaPersonalizzazione: 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
• Colore, tipo e dimensione dei caratteri
• Le icone associate alle diverse funzioni
• L’immagine e il colore di sfondo delle pagine
Possibilità di utilizzare i fogli di stile per modificare elementi
grafici come:
• . . . . . .
Modellazione del software in UMLModellazione del software in UML
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
Il sistema è stato modellato mediante 19 diagrammi che hanno facilitato la fase di scrittura del codice
L’implementazioneL’implementazione
View Controller Model
JSP pages UserManager
NewsManager
DateManager
Uploader
DBmanager
NumeratoreManager
Ogni livello è stato ulteriormente suddiviso in moduli che svolgono funzioni di uno stesso tipo:
s
s
s
c
c
c
s =Java Servletc =Java Class
L’interfaccia utente: Menù principaleL’interfaccia utente: Menù principale
L’interfaccia utente: Lettura newsL’interfaccia utente: Lettura news
L’interfaccia utente: inserimento newsL’interfaccia utente: inserimento news
L’interfaccia utente: menù amministrazioneL’interfaccia utente: menù amministrazione
ConclusioniConclusioni
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