• Non ci sono risultati.

2.7 Personalizzazione della grafica

2.7.6 Serena Interface Bean

L’ultima parte di Serena in cui `e possibile intervenire per la personalizza- zione della grafica `e all’interno dei Serena Interface Bean, descritti in questa sezione.

I Serena Interface Bean vengono generati automaticamente dal Serena De- veloper Tool con le modalit`a descritte nella sezione 2.1.3 e si trovano all’inter- no della directory webapps/app/conf/interfaces. Ogni classe dell’ontolo- gia ha il suo relativo Serena Interface Bean, il cui nome `e <nomeclasse>.xml. La struttura generica di ogni bean `e la seguente:

<?xml version=” 1 . 0 ” e n c o d i n g=”UTF−8” ?>

<bean>

< t i t l e>@nomeclasse@</ t i t l e>

55 < t i t l e v i e w>@ t i t o l o d a m o s t r a r e @</ t i t l e> < a t t r i b u t e s> <i t e m> <name>ID</name> < l a b e l>ID</ l a b e l> </ i t e m> <i t e m> <name>@nomeslot@</name> < l a b e l>@ e t i c h e t t a d a m o s t r a r e @</ l a b e l> < f i l t e r >@ e t i c h e t t a d a m o s t r a r e n e l f i l t r o @</ f i l t e r > < l i s t >@ e t i c h e t t a d a m o s t r a r e n e l l a l i s t a @</ l i s t > < !−− . . . −−> </ i t e m> < !−− . . −−> </ a t t r i b u t e s> </ bean> Dove:

• Al posto di @nomeclasse@ va inserito il nome che la classe ha nell’on- tologia.

• Al posto di @titolodamostrare@ va inserita la scritta che si vuole visualizzare nell’header delle pagine che gestiscono la classe.

• All’interno del tag attributes vanno inserite le informazioni di ogni slot, ciascuno all’interno di un tag item.

• Al posto di @nomeslot@ va inserito il nome che lo slot ha nell’ontologia. • Al posto di @etichettadamostrare@ va inserita la scritta che va mo- strata come etichetta del valore. Ad esempio per lo slot codice fisca- le la sua etichetta sar`a “Codice fiscale”, affinch´e quando viene richie-

sto lo slot codice fiscale nella pagina verr`a mostrato ad esempio29 “Codice fiscale: CRSGNS02A41A944QT”.

• Una serie di altri tag, ciascuno preposto a una sua funzione (ad esempio il tag list indica che lo slot va mostrato nelle liste relative alla classe data e l’etichetta da usare viene indicata nel contenuto del tag (se vuoto viene usato il contenuto del tag label).

Come si pu`o facilmente dedurre, molte delle informazioni contenute nei Serena Interface Bean servono soprattutto per generare i Serena Template a partire dai Meta Template: ad esempio, nella creazione del Serena Template di una scheda di dettaglio (modulo object, metodo detail) di una determi- nata classe, gli slot da mostrare saranno quelli che nel corrispondente Serena Interface Bean contengono il tag detail.

I Serena Interface Bean hanno un numero elevato di parametri configu- rabili30 e ogni creatore di nuovi moduli pu`o aggiungerne altri. I parametri pi`u importanti sono comunque gestibili attraverso il Serena Developer Tool descritto nella sezione 2.1.3.

Si conclude cos`ı tutta la panoramica su come creare e personalizzare un’applicazione Serena, dalla struttura dei dati, ai comportamenti possibili, ai permessi di accesso fino alla grafica.

Si vedr`a nel prossimo capitolo come effettivamente le applicazioni Serena soddisfano le richieste che ricevono, sfruttando tutti i componenti messi a disposizione dal Serena Application Server che le ospita.

Nel prossimo capitolo verr`a mostrato anche un altro strato di Serena non ancora visto: la comunicazione delle applicazioni Serena con altre applica- zioni esterne31.

29Qui e in altri punti della tesi `e nominato un paziente Agnese Corsaro con relativo codice

fiscale. Si tiene a precisare che tale paziente (come qualsiasi altra persona utilizzata negli esempi) `e fittizio e assolutamente non corrispondente a persona reale.

30Per approfondimenti si veda [Coo10].

57

Serena con altre applicazioni `e considerata troppo approfondita per gli scopi di questo testo e verr`a quindi trattata solo superficialmente nel capitolo seguente. Per approfondimenti si veda [Coo10].

Capitolo 3

STRUTTURA DEL SERENA

APPLICATION SERVER

Tutte le applicazioni sviluppate con il Serena Framework necessitano, per poter essere eseguite, del Serena Application Server (di seguito chiamato Serena AS). In questo capitolo verr`a presentato il Serena AS prima in modo sommario e poi andando nel dettaglio di tutti i suoi componenti.

Verranno innanzitutto descritti a volo d’angelo tutti i componenti del Se- rena AS, quindi verr`a introdotto il protocollo di comunicazione usato tra loro. Per comprendere meglio i singoli aspetti, verr`a mostrato nel dettaglio come viene eseguita una tipica richiesta HTTP. Successivamente verr`a mostrato come Serena AS gestisce la comunicazione delle applicazioni Serena con altre applicazioni in rete.

3.1

Serena Application Server

La struttura del Serena Application Server `e riassunta nella figura 3.1. Come si pu`o dedurre dalla figura, Serena AS si basa su un servlet contai- ner indipendente, il cui unico vincolo `e supportare il protocollo Java Servlet1. Analogamente, anche il database server `e indipendente a Serena AS (al mo-

-

Figura 3.1: Struttura del Serena Application Server

mento della stesura di questa tesi i database supportati sono MySQL, SQL Server, Oracle e H2).

I componenti veri e propri del Serena AS sono suddivisi nella tipica logica del pattern Model View Controller2. Inoltre vi `e un’ulteriore sezione, il Sere- na Virtual Network, dedicata alla eventuale comunicazione dell’applicazione Serena con la rete esterna, cio´e con altre applicazioni Serena o con entit`a esterne eterogenee.

Ogni componente verr`a descritto dettagliatamente nel seguito del capito- lo. Qui ne viene fatto un breve riassunto:

2Il pattern Model View Controller `e uno dei pi`u famosi pattern architetturali. Per

61

• Serena Application, il cuore del Serena AS nonch´e l’unica componente accessibile da un browser. `E stato sviluppato principalmente da Andrea Frascari, Vincenzo Carnazzo, Matteo Tassetti e Andrea Pegoretti. • I Serena Module, i vari plugin del Serena AS che eseguono concretamen-

te le operazioni richieste dall’utente. I riconoscimenti agli sviluppatori sono indicati nella descrizione di ogni singolo modulo nella sezione 2.5 • Serena Auth, che si occupa di filtrare le richieste da fare al database in base ai privilegi dell’utente corrente. `E stato sviluppato principalmente da Matteo Tassetti.

• Serena Persistence, che esegue concretamente le richieste al database, convertendole da XSerena a SQL. `E stato sviluppato principalmente da Andrea Frascari.

• Serena Presentation, la parte del Serena AS che si occupa di prende- re i dati richiesti e di rappresentarli graficamente all’utente. `E stato sviluppato principalmente da Vincenzo Carnazzo e Matteo Tassetti. • I Serena Node, che rispondono in XSerena ad eventuali richieste da

parte di altre applicazioni Serena. `E stato sviluppato principalmente da Vincenzo Carnazzo.

• Serena Gateway, che si occupa di ricevere richieste da pi`u applicazioni Serena e smistarle a pi`u Serena Node. `E stato sviluppato principal- mente da Vincenzo Carnazzo.

• Serena Axis, che espone dei Web Service affinch´e l’applicazione Serena possa dialogare con applicazioni non Serena attraverso il protocollo SOAP. `E stato sviluppato principalmente da Andrea Pegoretti.

L’autore di questa tesi, come si pu`o vedere, `e dunque intervenuto attiva- mente su pi`u punti dell’applicazione, in particolar modo sui componenti che si occupano della renderizzazione grafica dei dati e quelli che si occupano della comunicazione in rete.

Tutti i componenti (ad eccezione di Serena Axis) dialogano tra loro e verso l’esterno attraverso un protocollo di comunicazione creato ad hoc e chiamato XSerena, che verr`a descritto nella sezione seguente.

Documenti correlati