Riusabilità del software - Catalogo delle applicazioni: Gestione ICT
Applicazione: OIL – Online Interactive heLpdesk
Amministrazione: Consiglio Nazionale delle Ricerche (CNR)
Responsabile dei sistemi informativi Nome e cognome: Maurizio Lancia
Indirizzo: Piazzale Aldo Moro 7, 00185 Roma Tel: 06-49931
e-mail: maurizio.lancia@cnr.it
Referente/i di progetto
Nome e cognome: Ing. Roberto Puccinelli Indirizzo: Piazzale Aldo Moro 7, 00185 Roma Tel: 06-49931
e-mail: roberto.puccinelli@cnr.it
Referente/i amministrativo /
Descrizione
OIL (Online Interactive heLpdesk) è uno strumento web-based per la gestione delle attività di Help Desk associate a servizi caratterizzati da utenza numerosa e distribuita geograficamente.
In particolare, permette di tracciare il ciclo di vita delle richieste di supporto (nel seguito chiamate “segnalazioni” o “ticket”) e produrre report di varia natura sulla base dei dati raccolti.
L’applicazione è inoltre in grado di notificare, tramite posta elettronica, eventi di rilievo (sottomissione di una segnalazione, presa in carico da parte di un esperto, etc.).
Tra le principali caratteristiche dell’applicazione OIL: Ciclo di lavorazione personalizzabile;
Categorizzazione delle richieste sulla base di un sistema gerarchico di classificazione personalizzabile; Notifiche tramite mail; Gestione allegati; Statistiche del servizio; Gestione FAQ; Avvisi agli utenti; Produzione di raccolte di ticket in formato RTF; Grafica
personalizzabile tramite il meccanismo degli skin.
L’ interazione tra l’utente e l’applicazione avviene
tramite interfaccia web e per mezzo di notifiche inviate automaticamente dal sistema mediante posta
elettronica. L’applicazione prevede una serie di ruoli, corrispondenti ai diversi attori che interagiscono
con il sistema (utente, esperto, validatore, amministratore). L’utente sottomette le sue segnalazioni, specificando un oggetto, una descrizione ed altre informazioni utili. In particolare, per facilitare la corretta assegnazione dei ticket agli esperti, l’utente deve associare la segnalazione ad una categoria scelta all’interno di un sistema di
classificazione predeterminato. Tale sistema è organizzato secondo una struttura gerarchica ad albero, che prevede sempre come nodo radice la generica categoria “Problema”. Gli altri nodi possono essere creati e configurati a piacimento dall’amministratore del sistema.
Ciascun esperto accede alle code di ticket relative alle categorie cui è assegnato e prende in carico le segnalazioni che ritiene di poter gestire.
Il sistema prevede anche una figura di validatore, che può controllare la correttezza delle risposte compilate dagli esperti prima che siano rese visibili agli utenti. Esiste infine, come accennato sopra, un amministratore, che si occupa della configurazione del sistema,
svolgendo compiti quali la creazione delle utenze, la definizione delle categorie, etc.
Contesto
L’attività di progettazione e sviluppo dell’applicazione fu avviata nel 2002 quando emerse per il CNR la necessità di dotarsi di un supporto agli utenti di applicazioni e servizi. In seguito ne sono state richieste installazioni, sempre all’interno del CNR, per gestire gli helpdesk del servizio di contabilità, di desktop management, del protocollo informatico e, recentemente, della Local Registration Authority della sede centrale.
Per rispondere alle differenti esigenze delle diverse installazioni di OIL, sono stati sviluppati meccanismi
di personalizzazione rapida dell’aspetto grafico, dei menu resi disponibili ai vari profili utente, del formato delle e-mail di notifica, della classificazione delle segnalazioni e del loro ciclo di vita.
Gli utenti, nel caso dell’helpdesk della applicazione di contabilità del CNR, assommano a circa 1500, nel caso dell’helpdesk del portale per i servizi ai dipendenti, assommano a circa 8000.
Data primo rilascio 01/novembre/2002
Data ultima modifica 25/ottobre/2008
Parametri dimensionali
Per lo sviluppo dell’applicazione OIL sono stati utilizzati i seguenti linguaggi:
• Java, per la logica di business;
• JSP, Servlet Java, HTML, CSS, Javascript ed XML per la parte di interfaccia web;
• SQL per l’accesso a data base.
Di seguito sono riportate le dimensioni, espresse in termini di function point, dell’applicazione OIL.
Linguaggio FPs
css 93
html 6
java 547
jsp 980
sql 109
xml 276
Totale 2011
Realizzatore
Ufficio Sistemi Informativi dell’Amministrazione Centrale del CNR. L’Ente detiene tutti i diritti di proprietà relativi al codice sorgente.
Tipologia applicazione software Sviluppo custom in toto
Documentazione disponibile
• Manuale Operativo
• Istruzioni di installazione
• Documentazione di progetto - Basata in gran parte sugli standard UML comprende:
o Specifica dei componenti
o Use case
o Diagrammi IDEF1X della base dati
o Class diagram
o Diagramma dell’architettura
o Architettura applicativa Area applicativa
Gestione ICT
Procedure amministrative e/o servizi supportati Servizio di supporto utenti di applicazioni o servizi
Dominio applicativo Trouble ticketing
Funzione applicativa
Sono disponibili diverse funzionalità accessibili in base al profilo dell’utente.
Per l’amministratore:
• Gestione utenti
• Gestione categorie
• Gestione del profilo personale
• Statistiche Per l’esperto:
• Gestione Segnalazioni
• Info Utenti
• Gestione FAQ
• Gestione del profilo personale
• Info Personali
• Statistiche Per il validatore:
• Gestione Segnalazioni
• Reportistica sulle segnalazioni
• Info Personali
• Gestione del profilo personale Per l’ utente:
• Gestione Segnalazioni
• Info Personali
• Gestione del profilo personale
• Statistiche
Architettura software
L’applicazione è basata sull’architettura multi-livello, tipica dei sistemi enterprise
rappresentata in Figura 3. Al livello “Client” l’utente utilizza un normale browser web per interagire con l’applicazione. Al
livello “Presentation” una “Action Servlet” riceve le richieste dell’utente, individua la classe
“Action” che attiva i componenti adeguati per produrre la risposta attesa e richiama la pagina JSP che presenta l’output all’utente. Per aggiungere comportamenti dinamici alle interfacce utente, sollevando al contempo il server da ulteriori carichi computazionali, è stato fatto ampio uso di Javascript. Ciò però ha posto problemi legati alla compatibilità con i diversi tipi di browser web. Tali problemi sono stati risolti implementando codice ad hoc per ciascuna famiglia di browser. La classe “Action” sopra citata non richiama direttamente i metodi esposti dai componenti di business ma interagisce con dei Java Bean, che operano a livello
“Application”. Tali Java Bean mascherano la complessità dell’accesso alle funzioni dei livelli sottostanti.
Al livello “Services” sono utilizzati degli Enterprise Java Bean prevalentemente di tipo Session Stateless, i cui metodi implementano la business logic, sia a livello di azioni
atomiche, che a livello di coordinamento di workflow complessi. Per il passaggio dei dati tra questo livello e quelli adiacenti sono utilizzati i cosiddetti “Data Transfer Object” (o “Value Object”). Un Data Transfer Object è usato per passare in blocco i dati relativi ad un’entità (es.
un utente).
Al livello “Domain” sono utilizzati dei semplici “Data Access Objects” per implementare l’accesso
all’RDBMS che gestisce tutti i dati persistenti.
Si è evitato di usare Entity Bean, perché le specifiche EJB disponibili al tempo della
progettazione di OIL comportavano su questo versante una notevole complessità realizzativa e performance non soddisfacenti. D’altro lato le caratteristiche degli Entity in termini di scalabilità e controllo delle transazioni possono essere ottenute utilizzando l’accoppiata EJB Session + Data Access Object.
A livello “Persistence” è stato previsto l’uso un RDBMS relazionale. Allo stato attuale sono supportati Oracle e PostgreSQL.
Il processo di sviluppo dell’applicazione è stato di tipo prototipale/iterativo. Nella
progettazione della parte di codice sviluppata in Java ed installata sull’application server, sono stati utilizzati design pattern consolidati.
L’infrastruttura di produzione delle installazioni presenti al CNR utilizzano i seguenti ambienti software:
• Application server JEE: JBoss 4.0.2
• RDBMS: Oracle 9.2 o Postgres 8.x
Architettura hardware
Il sistema può essere installato anche su una sola macchina ma, in caso di carichi operazionali elevati, si consiglia di avere uno o più server che funzionino da front-end web in
configurazione a bilanciamento di carico, sui quali sia installato un’application server JEE compliant, e due o più macchine con funzione di data base server, in configurazione “standard hardware failover”. I dati possono essere conservati su disk array condiviso dai DB server.
Architettura TLC
I server necessitano di connettività Internet. Nella configurazione di produzione utilizzata dall’Amministrazione Centrale del CNR, l’accesso alla sottorete cui sono collegati i server è protetto da un Firewall, 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 su tutti i server è installato RedHat Enterprise Linux Advanced Server versione 4.0.
Middleware
Qualunque application server JEE compliant. Nell’ambiente di hosting del CNR sono utilizzati JBoss Application Server + Tomcat web container
Linguaggi
Per lo sviluppo dell'applicazione OIL sono stati utilizzati i seguenti linguaggi: Java, per la logica di business (specifica Enterprise Java Beans v. 2.0); JSP, Servlet, HTML, Javascript ed XML per la parte di interfaccia web; sql per l’accesso a data bas
Librerie esterne
L'applicazione necessita di un driver jdbc per lo specifico RDBMS utilizzato nell’ambiente di deployment (Postgres o Oracle).
Protocolli di comunicazione TCP/IP
DBMS
Oracle, Postgres.
Case
Sono stati utilizzati i seguenti ambienti per progettazione e modellazione: Poseidon.
Standard utilizzati
Piena aderenza agli standard nelle fasi di: • analisi (produzione di Workflow Diagram UML, Mockup per le interfacce utente), • progettazione (produzione di Component Diagram per tutte le funzionalità esposte, adozione di design pattern JEE, diagrammi IDEF1X per la progettazione logica della base di dati), • sviluppo (sviluppo component-based aderente alla specifica JEE – JSP, EJB, servlet, etc.),
Tipologia del ciclo di sviluppo
Il processo di sviluppo è di tipo prototipale/iterativo.
Portabilità
L'indipendenza da uno specifico fornitore e/o prodotto consente di avere un sw aperto ed un elevato livello di portabilità.
Affidabilità
Sistema robusto con basso numero di segnalazioni per problemi tecnici.
Manutenibilità
La modularità e la documentazione a disposizione consentono a risorse dotate di competenza 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; è da prevedere un iniziale supporto soprattutto per le caratteristiche applicative.
Livello di documentazione
Il livello di documentazione è buono e accurato.
Livello di modularizzazione Alto livello di modularizzazione.
Iniziative di riuso in corso /
Iniziative di riuso realizzate
Installazione presso il CNIPA per il supporto agli utenti della piattaforma CollaboraPA.
Punti di forza
OIL è un sistema flessibile con alta riusabilità dei componenti. L’architettura “a componenti”
permette di estrapolare ed eventualmente modificare le funzionalità di interesse.
I punti di forza sono:
• piena proprietà dei diritti sul codice da parte del CNR
• accuratezza della documentazione
• adozione di standard
• architettura applicativa modulare
• ampio utilizzo di design pattern
• disponibilità di competenze all’interno del CNR
Elementi di criticità /
Vincoli
La modifica del codice sorgente per personalizzazioni richiede competenze sulle tecnologie adottate (JEE).
Modalità di riuso consigliate
L’applicazione si presta ad un riuso tipo cessione semplice.