Motore di news per portali Web: progetto ed implementazione Relatore: Chiar.mo Prof. Sonia...

20
Motore di news per portali Motore di news per portali Web: progetto ed Web: progetto ed implementazione implementazione Relatore: Chiar.mo Prof. Sonia Bergamaschi Tesi di Laurea di: Roberto Delfini Anno Accademico 2000-2001 UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica

Transcript of Motore di news per portali Web: progetto ed implementazione Relatore: Chiar.mo Prof. Sonia...

Page 1: Motore di news per portali Web: progetto ed implementazione Relatore: Chiar.mo Prof. Sonia Bergamaschi Tesi di Laurea di: Roberto Delfini Anno Accademico.

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

Page 2: Motore di news per portali Web: progetto ed implementazione Relatore: Chiar.mo Prof. Sonia Bergamaschi Tesi di Laurea di: Roberto Delfini Anno Accademico.

Parte della tesi è stata svolta durante 6 mesi di permanenza di presso la QUIX s.r.l. di Campogalliano

Page 3: Motore di news per portali Web: progetto ed implementazione Relatore: Chiar.mo Prof. Sonia Bergamaschi Tesi di Laurea di: Roberto Delfini Anno Accademico.

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

Page 4: Motore di news per portali Web: progetto ed implementazione Relatore: Chiar.mo Prof. Sonia Bergamaschi Tesi di Laurea di: Roberto Delfini Anno Accademico.

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

Page 5: Motore di news per portali Web: progetto ed implementazione Relatore: Chiar.mo Prof. Sonia Bergamaschi Tesi di Laurea di: Roberto Delfini Anno Accademico.

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

Page 6: Motore di news per portali Web: progetto ed implementazione Relatore: Chiar.mo Prof. Sonia Bergamaschi Tesi di Laurea di: Roberto Delfini Anno Accademico.

Funzioni principaliFunzioni principali

• Scrittura news

• Cancellazione news

• Inserimento nuovo utente

• Lettura news

• Pubblicazione news

• Recupero news cancellate

• Rimozione utente

Page 7: Motore di news per portali Web: progetto ed implementazione Relatore: Chiar.mo Prof. Sonia Bergamaschi Tesi di Laurea di: Roberto Delfini Anno Accademico.

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

Page 8: Motore di news per portali Web: progetto ed implementazione Relatore: Chiar.mo Prof. Sonia Bergamaschi Tesi di Laurea di: Roberto Delfini Anno Accademico.

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

Page 9: Motore di news per portali Web: progetto ed implementazione Relatore: Chiar.mo Prof. Sonia Bergamaschi Tesi di Laurea di: Roberto Delfini Anno Accademico.

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

Page 10: Motore di news per portali Web: progetto ed implementazione Relatore: Chiar.mo Prof. Sonia Bergamaschi Tesi di Laurea di: Roberto Delfini Anno Accademico.

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

Page 11: Motore di news per portali Web: progetto ed implementazione Relatore: Chiar.mo Prof. Sonia Bergamaschi Tesi di Laurea di: Roberto Delfini Anno Accademico.

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

Page 12: Motore di news per portali Web: progetto ed implementazione Relatore: Chiar.mo Prof. Sonia Bergamaschi Tesi di Laurea di: Roberto Delfini Anno Accademico.

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

Page 13: Motore di news per portali Web: progetto ed implementazione Relatore: Chiar.mo Prof. Sonia Bergamaschi Tesi di Laurea di: Roberto Delfini Anno Accademico.

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:

• . . . . . .

Page 14: Motore di news per portali Web: progetto ed implementazione Relatore: Chiar.mo Prof. Sonia Bergamaschi Tesi di Laurea di: Roberto Delfini Anno Accademico.

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

Page 15: Motore di news per portali Web: progetto ed implementazione Relatore: Chiar.mo Prof. Sonia Bergamaschi Tesi di Laurea di: Roberto Delfini Anno Accademico.

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

Page 16: Motore di news per portali Web: progetto ed implementazione Relatore: Chiar.mo Prof. Sonia Bergamaschi Tesi di Laurea di: Roberto Delfini Anno Accademico.

L’interfaccia utente: Menù principaleL’interfaccia utente: Menù principale

Page 17: Motore di news per portali Web: progetto ed implementazione Relatore: Chiar.mo Prof. Sonia Bergamaschi Tesi di Laurea di: Roberto Delfini Anno Accademico.

L’interfaccia utente: Lettura newsL’interfaccia utente: Lettura news

Page 18: Motore di news per portali Web: progetto ed implementazione Relatore: Chiar.mo Prof. Sonia Bergamaschi Tesi di Laurea di: Roberto Delfini Anno Accademico.

L’interfaccia utente: inserimento newsL’interfaccia utente: inserimento news

Page 19: Motore di news per portali Web: progetto ed implementazione Relatore: Chiar.mo Prof. Sonia Bergamaschi Tesi di Laurea di: Roberto Delfini Anno Accademico.

L’interfaccia utente: menù amministrazioneL’interfaccia utente: menù amministrazione

Page 20: Motore di news per portali Web: progetto ed implementazione Relatore: Chiar.mo Prof. Sonia Bergamaschi Tesi di Laurea di: Roberto Delfini Anno Accademico.

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