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
Scarica

Motore di news per portali Web: progetto ed implementazione