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.