• Non ci sono risultati.

Lo Stack Applicativo

Nel documento Università degli Studi di Padova (pagine 82-86)

4. IL PROGETTO DEL COMUNE DI FELTRE

4.2. MYPORTAL: L‟ EVOLUZIONE ARCHITETTURALE

4.2.3. I Servizi Applicativi

4.2.3.1. Lo Stack Applicativo

Entrando più nel dettaglio, l‟ architettura applicativa di MyPortal si basa su uno stack tecnologico che segue l‟ approccio MVC.

MVC è l‟ acronimo di Model-View-Controller ed è un pattern architetturale molto diffuso nello sviluppo di interfacce grafiche di sistemi software obiect-oriented.

Questo tipo di approccio prevede la separazione del livello di presentazione di un‟ applicazione in tre componenti distinte che interagendo tra loro forniscono le funzionalità di interazione via web.

Figura 19. Rappresentazione dello stack di tecnologie impiegate nel progetto MyPortal.

83

In questo pattern sono previsti i seguenti tre componenti:

Model: rappresenta i dati raccolti dall‟ applicazione ed incapsulati in oggetti che vengono inviati da componente a componente;

View: è responsabile della raccolta e della presentazione dei dati da e per l‟ utente;

Controller: processa le richieste dell‟ utente e coordina l‟ interazione tra Modello e Vista.

Per il progetto MyPortal tale pattern è stato implementato utilizzando il framework sopra nominato Jakart Struts, il quale oltre ad essere una raccolta di classi utili all‟ implementazione del pattern MVC, ingloba in esso due classi ulteriori:

Validator: utile alla realizzazione di un sistema di validazione dei dati basato su XML e la centralizzazione logica;

Tiles: un sistema di templating cha va ad estendere le potenzialità delle semplici pagine JSP permettendo di isolare e riutilizzare anche la struttura delle pagine e non soltanto i contenuti condivisi (banner, menù, ecc.).

La caratteristica principale di Struts è quella di permettere l‟associazione e il collegamento tra le componenti Controller e quelle di vista (View) attraverso la definizione di file XML realizzando così una completa indipendenza attraverso file di configurazione.

Per quanto riguarda la componente di Vista, essa è la più vicina all‟ utente finale essendo quella che origina le pagine HTML che costituiscono l‟ interfaccia delle applicazioni. La realizzazione è stata effettuata tramite la tecnologia Java Server Pages (JSP) e l‟ impiego del sistema di templating Tiles attraverso il quale è stato possibile individuare degli elementi e creare dei template riutilizzabili più volte all‟ interno delle pagine che costituiscono MyPortal. Così facendo, con le sole JSP ogni pagina riproduce la struttura di layout scelta per il portale e all‟ interno di questa vengono inclusi i contenuti desiderati. Questa strategia permette di modificare i banner e i menù isolati in un unico punto e distribuire questa modifica sull‟intero portale in modo automatico.

84

[1] generico

[2] comunità [3] ente

[4] comunità.homepage [5] comunità.interna [6] ente.homepage [7] ente.interna banner

titolo

menù contenuto

colonna destra

Come rappresentato nella figura sotto riportata, per il progetto MyPortal è stato creato un template generico il quale è stato esteso più volte per dare origine ai template utilizzati dai vari enti e dalle comunità montane presenti nel portale.

Come si nota dalla figura 7 in cui si raffigura lo stack tecnologico, le pagine JSP comunicano direttamente con un layer Java e con OpenCms; quest‟ ultimo è un collegamento necessario, perché tramite esso vengono reperite le informazioni utili alla visualizzazione dei contenuti ed i contenuti stessi.

Per quanto riguarda il Controller, esso risulta essere il cuore dell‟ applicazione, è lui che riceve le richieste dell‟ utente, definisce la logica di presentazione e realizza il collegamento tra il modello dei dati ed il livello di Vista.

I controller nell‟ ambito di MyPortal sono stati realizzati tramite Java Servlet e nello specifico estendono le classi messe a disposizione da Struts.

Il livello di controller di un‟applicazione è composto da un insieme di azioni (Actions) ognuna con un compito definito (es.: inserimento, modifica, cancellazione, ecc.) che al termine della loro esecuzione restituiscono un riferimento ad un elemento di vista.

85

Ultimo tassello di questo pattern MVC è quello del Modello (Model), il quale rappresenta i dati e le regole che governano il loro utilizzo. Solitamente il modello (o dominio) dei dato non ha legami con la presentazione degli stesi quindi con la parte web dell‟ applicazione; per questo motivo Struts non offre alcun supporto alla definizione di queste classi che sono sviluppate utilizzando nella maggior parte dei casi le specifiche JavaBeans49.

Nello specifico del progetto MyPortal, le JavaBeans, sono state utilizzate anche per fornire e reperire i dati alle classi di utilità che implementano il sistema di persistenza. Questo livello ha il compito di gestire la memorizzazione ed il reperimento dei dati, utilizzati dalle applicazioni di Myportal, nel database relazionale MySQL. Come raffigurato precedentemente nel diagramma di flusso in figura 6, la gestione degli accessi ai dati è stato centralizzato in oggetti denominati DAO (Data Access Object),i quali accettano e restituiscono JavaBeans, mascherando così di fatto la tecnologia che va ad implementare lo strato di persistenza aumentando così la sicurezza nell‟ accesso al database. L‟ implementazione dei DAO è stata realizzata utilizzando un framework di SQL data mapping appartenente ad Apache Software Foundation denominato iBatis, il quale aiuta a ridurre notevolmente la quantità di codice necessario a realizzare l‟ accesso ad un database relazionale. iBATIS permette di mappare oggetti JavaBeans con dichiarazioni SQL tramite un descrittore XML. I pregi principali di questo framework sono:

la semplicità di utilizzo;

la possibilità di ottenere direttamente in ritorno da SQL stament oggetti JavaBeans;

la centralizzazione degli statemets SQL in file di configurazione XML che permettono la loro estrapolazione dal codice dell‟applicazione semplificandone quindi la gestione.

49 JavaBeans sono una specifica elaborata da Sun Microsystems che definisce come gli oggetti Java interagiscono tra loro. Un oggetto conforme a queste specifiche è chiamato JavaBean e può essere usato da ogni applicazione a conoscenza del formato JavaBeans. Per ogni applicazione i JavaBean incapsulano i rispettivi dati e li rappresentano utilizzando i loro tipi fondamentali. I beans sono utilizzati quindi per il trasporto dei dati da un livello applicativo ad un altro.

86

Nel documento Università degli Studi di Padova (pagine 82-86)