Riusabilità del software - Catalogo delle applicazioni – Gestione ICT
Applicazione: GAS - Gestione AcceSsi
Amministrazione: Consiglio Nazionale delle Ricerche (CNR)
Responsabile dei sistemi informativi
Nome e cognome: ing. Maurizio Lancia
Indirizzo: Piazzale Aldo Moro 7 00185 Roma
Tel: 06-49931
e-mail: [email protected]
Referente/i di progetto
Nome e cognome: Aurelio D’Amico
Indirizzo: Piazzale Aldo Moro 7 00185 Roma
Tel: 06-49931
e-mail: [email protected]
Referente/i amministrativo
/
Descrizione
GAS è un server per la gestione centralizzata dei meccanismi di autorizzazione di applicazioni
eterogenee. Il sistema permette di definire profili utente ai quali associare diritti di accesso
alle funzionalità. L’interfaccia di amministrazione è di tipo web.
Contesto
L’Ufficio Sistemi Informativi del CNR sviluppa e gestisce diverse applicazioni con
interfaccia web basate sulla piattaforma JEE. Per ciascuna di esse è stato necessario
implementare meccanismi di profilazione degli utenti e di gestione dei diritti di accesso. In
molti casi tali meccanismi rientrano nel paradigma alla base del design pattern “Role Based
Access Control”. Per questo motivo si è pensato di sviluppare un server centralizzato, basato
su tale design pattern, in grado di offrire a più applicazioni il servizio di gestione dei profili.
Il sistema è basato sui concetti di
•
•
•
“risorsa”, ovvero una generica entità sulla quale si possono avere diritti di accesso,
“ruolo”, ovvero un insieme di diritti di accesso a risorse,
“gruppo”, ovvero un insieme di ruoli.
Gli utenti sono associati ai gruppi e da questi ereditano i ruoli. Il sistema permette anche di
gestire le informazioni necessarie per la composizione a run time dei menù utente.
Data primo rilascio
20/maggio/2008
Data ultima modifica
09/luglio/2008
Parametri dimensionali
Per lo sviluppo dell’applicazione Gestione AcceSsi sono stati utilizzati i seguenti linguaggi:
•
•
Java, per la logica di business (EJB 3.0);
JSP, HTML, CSS, Javascript ed XML per la parte di interfaccia web.
Per l’accesso alla base dati sono stati utilizzati gli strumenti messi a disposizione da EJB3.
Ciò ha permesso di limitare l’utilizzo di SQL ai soli script di creazione delle strutture di data
base.
Di seguito è riportato un riepilogo dei volumi, espressi in termini di function point.
Volumi
Linguaggio
Volume applicativo (FP)
css
59
htm
0
html
34
java
192
js
22
jsp
191
sql
29
xml
39
Totale
565
Realizzatore
L’applicazione è stata realizzata interamente utilizzando personale dell’Ufficio Sistemi
Informativi.
Tipologia applicazione software
Sviluppo custom in toto
Documentazione disponibile
•
•
Class diagram UML
Data model
Area applicativa
Gestione ICT
Procedure amministrative e/o servizi supportati
Servizio di gestione centralizzata dei profili utente.
Dominio applicativo
Role Based Access Control
Funzione applicativa
•
•
•
•
Applicazioni
Accessi
o Risorse
o Menu
Permessi
o Ruoli
o Gruppi
Utenti
o gestione
o ricerca
Architettura software
L’applicazione è basata sull’architettura a multi-livello ( vd. Figura 1), tipica dei sistemi
enterprise.
Al livello client è utilizzato un semplice web browser che renderizza pagine html generate
dinamicamente nel sottostante livello web, basato su pagine JSP e servlet gestite da un web
container. Al livello della logica di business sono utilizzati EJB session, per
l’implementazione dei processi, e Java Data Object per l’accesso ai dati, il tutto gestito
tramite Application Server JEE compliant. Il livello Enterprise Information Systems è basato
su data base relazionale. Il sistema può utilizzare indifferentemente qualunque RDBMS server
supportato dalla tecnologia JDO.
L’architettura del sistema è basata su design pattern consolidati. L’interazione con l’utente, ad
esempio, è basata sul pattern “Model View Controller”, implementato mediante il framework
Stripes.
Qualunque combinazione “Application Server/Web container” JEE compliant può essere
utilizzata, così come qualunque RDBMS può gestire i dati dell’applicazione.
L’infrastruttura di produzione del CNR utilizza i seguenti ambienti software:
•
•
•
Application server JEE: JBoss
RDBMS: PostgreSQL
Web container: Tomcat.
Architettura hardware
Il sistema può essere installato anche su una sola macchina ma si consiglia di avere uno o più
server in configurazione a bilanciamento di carico che funzionino da front-end web, sui quali
sia installato un’application server JEE compliant, e due o più macchine in configurazione
“standard hardware fai lover” con funzione di data base server. I dati possono essere
conservati su disk array condiviso dai DB server.
Architettura TLC
L’accesso alla sottorete cui sono collegati i server è protetto da un Firewall Stonegate, che
effettua il bilanciamento di carico sugli application server in base al loro livello di utilizzo.
Tutte le macchine sono collegate ad una LAN Gigabit Ethernet.
I db server sono connessi al dispositivo di storage tramite collegamento ridondato in fibra
ottica.
La sede centrale del CNR, dove è gestito l’hosting dell’applicazione, dispone attualmente di
un collegamento a 100 MB con GARR-G.
Sistemi operativi
Qualunque sistema operativo per il quale sia disponibile il JEE SDK può essere utilizzato.
Nell’ambiente di hosting del CNR è utilizzato Red Hat Enterprise Linux 4.0.
Middleware
Qualunque application server/web container JEE compliant. Nell’ambiente di hosting del
CNR sono utilizzati JBoss Application Server + Tomcat web container.
Linguaggi
Java per la logica di business (EJB 3.0) e l’accesso ai dati; JSP, HTML, Javascript ed XML
per la parte di interfaccia web; SQL per la definizione delle strutture dati.
Librerie esterne
L’applicazione utilizza alcune librerie open source, tra cui quelle del frame work Stripes.
Protocolli di comunicazione
TCP/IP
DBMS
Qualunque RDBMS supportato dal frame work Hibernate. Nell’ambiente di produzione del
CNR attualmente è utilizzato PostgreSQL ma l’applicazione non è vincolata ad una
particolare marca di RDBMS.
Case
Poseidon UML, Eclipse.
Standard utilizzati
Sviluppo component-based aderente alla specifica JEE (JSP, EJB, servlet, etc.).
Tipologia del ciclo di sviluppo
Processo di sviluppo agile di tipo prototipale/iterativo (vd Figura 2).
Portabilità
Il sistema può essere eseguito su qualunque combinazione “Application Server JEE/Web
Container JEE/RDBMS”. Conseguentemente non ci sono vincoli sul sistema operativo, se
non la disponibilità di almeno una combinazione del tipo succitato.
Affidabilità
Sistema robusto con basso numero di segnalazioni per problemi tecnici.
Manutenibilità
La modularità dell’architettura e l’impiego diffuso di design pattern consente a risorse dotate
di adeguate competenze di mantenere il sw con un basso livello di difficoltà.
Funzionalità
Piena rispondenza ai requisiti utente in tutte le condizioni di esercizio.
Usabilità
Il livello di usabilità è buono per le caratteristiche tecniche; l’interfaccia utente è stata
progettata tenendo conto di tutti i suggerimenti e le richieste degli sviluppatori delle
applicazioni candidate per l’uso di GAS come server centralizzato di autorizzazione.
Livello di documentazione
Documentazione finale in preparazione.
Livello di modularizzazione
Alto livello di modularizzazione.
Iniziative di riuso in corso
/
Iniziative di riuso realizzate
/
Punti di forza
•
•
•
•
•
•
Piena proprietà dei diritti sul codice da parte del CNR,
adozione di standard aperti,
architettura applicativa modulare,
portabilità,
utilizzo di design patterns,
disponibilità di competenze all’interno del CNR.
Elementi di criticità
/
Vincoli
La personalizzazione dell’applicazione richiede competenze sulle tecnologie adottate per lo
sviluppo.
Modalità di riuso consigliate
L’applicazione si presta ad un riuso tipo cessione semplice.