• Non ci sono risultati.

Applicazione: OIL – Online Interactive heLpdesk

N/A
N/A
Protected

Academic year: 2022

Condividi "Applicazione: OIL – Online Interactive heLpdesk"

Copied!
9
0
0

Testo completo

(1)

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.

(2)

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

(3)

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

(4)

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

(5)

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:

(6)

• 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

(7)

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.

(8)

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:

(9)

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.

Riferimenti

Documenti correlati

– una collezione può avere più iteratori, che usano ordini diversi – per le collezioni lineari (come List ) l’iteratore di default

•  Vediamo anche come si definisce un iteratore “stand alone”, che genera elementi senza essere associato a una collezione. •  L’implementazione farà uso di

Instead, all access to beans is required to go through one of two interfaces – the EJB home interface for life- cycle operations and the equivalent of static methods and the

Questo approccio favorisce la portabilità degli elementi - che come abbiamo visto è un elemento delle specifiche alla base di Projectmoon System - la leggerezza, la manteni- bilità e

Javascript, Python, Ruby, but also Lisp, etc...) -Type inference for generics, diamond operator -Fork/Join Framework for parallel programming. (aiuta a creare task paralleli, fa

Si inseriscano i valori nell’array sfruttando (opportune parti) degli

Implementare il metodo in modo che le tre tipologie di errore indicate e il caso di una trasmissione con successo siano tutti equiprobabili (1/4 ciascuno). Scrivere un programma

Le seguenti immagini sono screenshot delle GUI di giochi realizzati dagli studenti in questa fase del loro percorso di apprendimento della programmazione in linguaggio Java (di