• Non ci sono risultati.

1.4 Workow

2.6.2 Funzionalità di utente

Figura 2.7: Comparativa funzionalità utente

Capitolo 3

Tecnologie utilizzate

3.1 Liferay

Liferay Portal è un portale gratuito ed open source scritto in Java. E' distribuito sotto la licenza GNU1 ed è utilizzato dalle aziende nelle intranet e

nelle extranet. Il portale rispetta lo standard portlet JSR-2862(Figura 3.1).

Il portale Liferay permette agli utenti di avere le più comuni feature di un portale web. Fondamentalmente è formato da unità funzionali chiamate portlet. Liferay è spesso descritto come un content managment framework o come una web application framework. Il supporto dei plugin di Liferay è esteso a più linguaggi di programmazione, incluso anche il supporto ai plugin PHP e Ruby. Nonostante Liferay ora una sosticata interfaccia per gli sviluppatori, non sono richieste conoscenze di programmazione per la

1La GNU Lesser General Public Licence è una licenza di software libero creata dalla Free

Software Foundation e studiata quale compromesso tra la GNU General Public License e altre licenze non-copyleft. Fu scritta nel 1991 (aggiornata nel 1999 e nel 2007) da Richard Stallman, con l'ausilio legale di Eben Moglen.

2JSR 286 è la Java Portlet Specication v2.0 sviluppata sotto licenza JCP e creata in

allineamento con la versione 2.0 di WSRP. E' stata sviluppata per migliorare la versione 1.0 (JSR-168). Tra le maggiori feature incluse vi sono: consentire intra portlet comuni- cation attraverso eventi e parametri pubblici di rendering; servire in modo dinamico le risorse generate direttamente attraverso le portlet; servire data AJAX o JSON attraverso le portlet; introdurre listeners e lters per le portlet.

Figura 3.1: Schema comunicazione tra portlet Jsr286

costruzione, installazione e amministrazione di un portale base. Una portlet per il portale Liferay è scritta in Java ed è eseguita su ogni piattaforma che possa a sua volta eseguire la Java Virtual Machine e una application server. E' ottenibile in bundle con un web container come Apache Tomcat.

3.1.1 La storia

La Liferay Inc. è una software house che crea software a pagamento ampliando e modicando software open source già esistenti. Il core busi- ness aziendale è rappresentato dall'enterprise portal technology. Il quartiere generale della società è a Los Angeles, in California (USA). Liferay è fon- data nel 2000 da Brian Chan per dare vita ad un portale enterprise per le organizzazioni no prot. Nel 2004 la compagnia sceglie di fondersi con la compagnia tedesca Liferay GmbH sotto l'unico nome Liferay Inc. Nel 2007

3.1 Liferay 21 apre nuove sedi in Cina, in Spagna e a Dalian, in Asia. Nel 2009 inaugura un nuovo ucio a Bangalore, in India. Il prodotto portale enterprise della Lifer- ay riceve molti apprezzamenti da importanti aziende internazionali. Ottiene riconoscimenti da EContent magazine3 in EContent100, la lista delle indu-

strie leader del settore nel 2007, e InfoWorld la elegge tecnologia dell'anno. Nel luglio 2007, Liferay Inc. annuncia una nuova partnership con ICEsoft Technologies4, distributore della libreria ICEfaces usata per lo sviluppo su

tecnologia Ajax del software del portale enterprise. Nel gennaio 2008 la com- pagnia assume un ingegnere capo per JQuery UI, perché lavori full-time sulla libreria JavaScript. Sun Microsystem e Liferay siglano un accordo di scam- bio tecnologico nel maggio 2008. La versione di Liferay Community Edition attualmente disponibile è la 6.1, mentre la versione di Liferay Enterprise è la 6.0.

3.1.2 I prodotti

Liferay Portal viene distribuito in due dierenti edizioni:

• Liferay Portal Community Edition: è la versione che contiene le ultime future e ha il supporto attivo della community.

• Liferay Portal Enterprise Edition: si tratta di una versione commer- ciale, quindi a pagamento, ed usufruisce del pieno supporto da parte dell'azienda. A dierenza della versione Community, prima del rilascio deve sottostare a  e superare  ripetuti cicli di controllo della qualità. Di solito è rilasciata due o tre mesi dopo la versione Community.

3EContent è una autorità nel businnes delle pubblicazioni digitali. Usando le ultime tec-

nologie e strategie nell'ecosistema dei contenuti digitali, l'EContent Magazine e il sito web EContentmag.com aiutano i professionisti a massimizzare i loro investimenti costruendo al tempo stesso un modello di business redditizio

4ICEsoft Technologies Inc. è leader globale delle tecnologie Java enterprise open source.

Fondata nel 2001, la ICESoft è una società con sede a Calgary (Canada) in prima linea nello sviluppo del web 2.0. Conta oltre trecento clienti in più di trenta Paesi.

3.1.3 Core portlet

Liferay è distribuito con alcune portlet preinstallate, che formano il cuore del portale, tra le quali:

• Web Content • Asset Publishing • Tags and Categories

• Document and Image management

• Document Library Manager, Recent Documents

• Alfresco, Documentum, and other document library integration • Image Gallery

• WebDAV Integration • Website Tools

• Web Form Builder • Breadcrumbs • Site Navigation • Nested Portlets • Site Map

• Page Ratings and Flags • User Directory

• LDAP Integration • Software Catalog

3.2 PostgreSQL 23 • Blogs and blog aggregation

• Calendar • Chat • Mail

• Message Boards • Polls

• Wiki (supports Creole as well as MediaWiki syntax) • Alerts and Announcements

• Knowledge Base • Social Equity

• Themes, supporting Velocity and FreeMarker markup

3.2 PostgreSQL

PostgreSQL è un completo database relazionale ad oggetti rilasciato con licenza libera (stile Licenza BSD). Spesso è abbreviato come Postgres, sebbene questo sia il nome vecchio dello stesso progetto. PostgreSQL è una reale alternativa rispetto sia ad altri prodotti open source  come MySQL, Firebird SQL e MaxDB  sia a quelli proprietari  come Oracle, Informix o DB2  ed ore caratteristiche uniche nel suo genere che lo pongono, per alcuni aspetti, all'avanguardia nel settore dei database.

3.2.1 La storia

Inizialmente il DBMS (Database Management System) si chiamava In- gres ed era un progetto dell'Università di Berkeley. Nel 1982 il capo proget- to, Michael Stonebraker, lascia la Berkeley per commercializzare il prodotto,

ma in seguito torna nel contesto accademico. Nel 1985 lascia nuovamente l'università per dare vita a un progetto post-Ingres (Postgres) che superi gli evidenti limiti dei prodotti concorrenti dell'epoca. Le basi dei sorgenti di In- gres e di Postgres rimangono ben distinte nel tempo. Il nuovo progetto punta a fornire un supporto completo ai tipi di dati, in particolare la possibilità di denirne di nuovi, introducendo UDF (User Dened Function) e UDT (Us- er Dened Types). Vi è anche la possibilità di descrivere la relazione tra le entità (tabelle), che in precedenza era lasciata completamente all'utente. Perciò non solo Postgres preserva l'integrità dei dati, ma è in grado di leg- gere informazioni da tabelle relazionate in modo naturale, seguendo le regole denite dall'utente. Dal 1986 gli sviluppatori diondono un gran numero di articoli che descrivono il nuovo sistema e nel 1988 è rilasciato un primo pro- totipo funzionante. La versione 1 è rilasciata a giugno 1989 per un numero di utenti contenuto. Un anno più tardi segue la versione 2, in cui il sistema è completamente riscritto. Nella versione 3, del 1991, questo sistema è riscrit- to per l'ennesima volta ed è aggiunto anche il supporto a gestori multipli di immagazzinamento dei dati e un motore di query migliorato. Nel 1993 vi è già un numero di utenti notevole che inonda il team di sviluppo con richieste di supporto e di nuove caratteristiche. Dopo aver rilasciato la versione 4, che è principalmente una rivisitazione del codice, il progetto termina. Sebbene il progetto Postgres sia ucialmente abbandonato, la licenza BSD dà mo- do agli sviluppatori open source di ottenere una copia del software per poi migliorarlo a loro discrezione. Nel 1994 due studenti del Berkeley, Andrew Yu e Jolly Chen, aggiungono a Postgres un interprete SQL per rimpiazzare il vecchio QUEL che risaliva ai tempi di Ingres. Il nuovo software è rilascia- to sul web col nome di Postgres95. Nel 1996 cambia nome di nuovo: per evidenziare il supporto al linguaggio SQL, è chiamato PostgreSQL. Il primo rilascio di PostgreSQL è la versione 6. Da allora, ad occuparsi del progetto è una comunità di sviluppatori volontari provenienti da tutto il mondo che si coordina attraverso Internet. Alla versione 6 ne seguono altre, ognuna delle quali porta nuovi miglioramenti. Nel gennaio 2005 è rilasciata la 8, la prima

3.2 PostgreSQL 25 nativa per Windows. Sebbene la licenza permetta la commercializzazione del software, il codice di Postgres non è sviluppato commercialmente con la stes- sa rapidità di Ingres. Ad un certo punto, Paula Hawthorn, membro originale del team di Ingres, e Michael Stonebraker fondano una società  la Illustra Information Technologies  nalizzata alla commercializzazione del software.

3.2.2 Descrizione

Un rapido esame di PostgreSQL potrebbe far pensare che sia simile ad altri database. PostgreSQL usa il linguaggio SQL per eseguire le query sui dati; questi sono conservati come una serie di tabelle con chiavi esterne che servono a collegare i dati correlati. La programmabilità di PostgreSQL è il suo principale punto di forza ed il principale vantaggio rispetto alla concor- renza: PostgreSQL rende più semplice costruire applicazioni per il mondo reale, utilizzando i dati prelevati dal database. I database SQL conservano dati semplici in at table, richiedendo che sia l'utente a prelevare e rag- gruppare le informazioni correlate utilizzando le query. La conversione delle informazioni dal mondo SQL a quello della programmazione orientata agli oggetti presenta dicoltà dovute principalmente al fatto che i due mondi utilizzano dierenti modelli di organizzazione dei dati. L'industria chiama tale problema impedance mismatch (discrepanza di impedenza): mappare i dati da un modello all'altro può assorbire no al 40 per cento del tempo di sviluppo di un progetto. Un certo numero di soluzioni di mappatura, normalmente dette object-relational mapping, possono risolvere il proble- ma, ma tendono ad essere costose e a presentare problemi, causando scarse prestazioni o forzando tutti gli accessi ai dati ad aver luogo attraverso il so- lo linguaggio che supporta la mappatura stessa. PostgreSQL può risolvere molti di questi problemi direttamente nel database, permettendo agli utenti di denire nuovi tipi basati sui normali tipi di dato SQL e al database stesso di comprendere dati complessi. Per esempio, si può denire un indirizzo come un insieme di diverse stringhe di testo per rappresentare il numero civico, la città... Si possono poi creare facilmente tabelle che contengono tutti i campi

necessari a memorizzare un indirizzo con una sola linea di codice. Post- greSQL, inoltre, permette l'ereditarietà dei tipi, uno dei principali concetti della programmazione orientata agli oggetti. Ad esempio, si può denire un tipo codice_postale, quindi creare un tipo cap (codice di avviamento postale) o un tipo us_zip_code basato su di esso. Gli indirizzi nel database potrebbero, quindi, accettare entrambi i tipi mentre regole speciche potreb- bero validare i dati in entrambi i casi. Nelle prime versioni di PostgreSQL, implementare nuovi tipi richiede la scrittura di estensioni in C e la loro compi- lazione nel server di database. Dalla versione 7.4 diventa molto più semplice creare ed usare tipi personalizzati attraverso il comando create domain. La programmazione del database può ottenere grandi vantaggi dall'uso delle funzioni. La maggior parte dei sistemi SQL permette agli utenti di scrivere una procedura, un blocco di codice SQL che le altre istruzioni SQL possono richiamare. SQL è inadatto come linguaggio di programmazione; pertanto gli utenti possono incontrare grandi dicoltà nel costruire logiche complesse. Non supporta neppure molti dei principali operatori di base dei linguaggi di programmazione, come le strutture di controllo di ciclo e condizionale. Per- tanto, i programmatori possono scrivere le proprie estensioni al linguaggio SQL per aggiungere nuove caratteristiche. In PostgresSQL i programmatori implementano la logica in uno dei molti linguaggi supportati:

• un linguaggio nativo chiamato PL/pgSQL, simile al linguaggio proce- durale di Oracle PL/SQL, che ore particolari vantaggi nelle procedure che fanno uso intensivo di query

• wrapper per i più diusi linguaggi di scripting  come Perl, Python, Tcl, e Ruby  che permettono di utilizzare la loro potenza nella ma- nipolazione delle stringhe e nel link ad estese librerie di funzioni esterne • C e C++ utilizzate per le procedure che richiedono prestazioni maggiori

e logiche di programmazione complesse

3.3 Eclipse 27 • incremento delle prestazioni, in quanto la logica è applicata diretta-

mente dal server di database in un'unica volta, riducendo il passaggio di informazioni tra il client ed il server

• incremento dell'adabilità, dovuto alla centralizzazione del codice di controllo sul server, non dovendo gestire la sincronizzazione della logica tra molteplici client e i dati memorizzati sul server

• il codice del client può essere snellito e semplicato inserendo livelli di astrazione dei dati direttamente nel server.

Questi vantaggi fanno di PostgreSQL il più avanzato sistema database dal punto di vista della programmabilità; il che aiuta a spiegarne il successo. Uti- lizzare PostgreSQL riduce il tempo totale di programmazione, con vantaggi che crescono in base alla complessità di ogni singolo progetto.

3.3 Eclipse

Eclipse è un ambiente di sviluppo integrato multi-linguaggio e multipiat- taforma. Ideato da un consorzio di grandi società  quali Ericsson, HP, IBM, Intel, MontaVista Software, QNX, SAP e Serena Software  è chiamato Eclipse Foundation sullo stile dell'open source. Eclipse può essere utilizzato per la produzione di software di vario genere: si passa da un completo IDE per il linguaggio Java (JDT, Java Development Tools) a un ambiente di sviluppo per il linguaggio C++ (CDT, C/C++ Development Tools) e a plug-in che permettono di gestire XML, Javascript, PHP e persino di pro- gettare gracamente una GUI per un'applicazione Java (Eclipse VE, Visual Editor), rendendo di fatto Eclipse un ambiente RAD (Rapid Application Development). Il programma è scritto in linguaggio Java, ma anziché basare la propria GUI su Swing, il toolkit graco di Sun Microsystems, si appoggia a SWT, librerie di nuova concezione che conferiscono ad Eclipse un'elevata reattività. La piattaforma di sviluppo è incentrata sull'uso di plug-in, com- ponenti software ideati per uno specico scopo, per esempio la generazione

di diagrammi UML. In eetti tutta la piattaforma è un insieme di plug-in, versione base compresa, e chiunque può svilupparli e modicarli. Essendo scritto in Java, Eclipse è disponibile per le piattaforme Linux, HP-UX, AIX, Mac OS X e Windows.

3.4 Ant

Apache Ant (Another Neat Tool) è un tool implementato in linguaggio Java, questo tool viene usato per l'automazione dei processi di build dei software Java e può essere visto come il Make per il linguaggio C. La dierenza maggiore tra i tool Make e Ant è che quest'ultimo usa la struttura XML per descrivere il processo build e le sue dipendenze, mentre Make usa il formato makele. Ant è un progetto sviluppato da Apache, open source e rilasciato sotto licenza ASL (Apache Software Licence).

3.4.1 La storia

Ant è ideato da James Duncan Davidson mentre sta trasformando un prodotto Sun in un progetto open source. Questo progetto, il motore delle JSP/Servlet, diventa poi Apache Tomcat. Ant è creato come un semplice tool indipendente dalla piattaforma per compilare Tomcat tramite le direttive scritte nel le buld.xml. Ant (versione 1.1) è rilasciata ucialmente il 19 luglio 2000. Vengono fatte varie proposte per una versione 2, come AntEater di James Duncan Davidson, Myrmidon di Peter Donald e Mutant di Conor MacNeill, però nessuna di queste si dimostrra capace di ottenere il consenso della community degli sviluppatori. Oggi, Ant è il buid tool più usato dagli sviluppatori di progetti Java.

Capitolo 4

Gli obiettivi

La gestione informatizzata dei servizi di segnalazione dei problemi è un tema noto in ambiti quali i call center e le grandi aziende. Il nostro software è articolato sullo sviluppo di una portlet per la gestione dei ticket instal- labile sulla piattaforma Liferay, portlet che attualmente non è disponibile nel marketplace del portale. Non avrebbe avuto senso sviluppare l'ennesi- ma normale web application, dato che il mercato ne ore già una vasta gamma, molte delle quali sono open source e quindi adattabili alle singole esigenze. Sviluppare il nostro sistema all'interno di una portlet ci dà quindi la possibilità di imparare ad usare in modo approfondito le metodologie di sviluppo messe a disposizione da Liferay. Oggi, il portale Liferay viene usato tantissimo in molte intranet aziendali. La portlet che andiamo a sviluppare darà la possibilità alle aziende che ne vorranno fare uso di avere un ottimo sistema di gestione dei problemi di prodotto o di servizio. Ciò potrà essere utilizzato su due diversi fronti:

• per segnalare i problemi al portale: l'azienda invia i problemi riscontrati direttamente a chi si occupa dello sviluppo del portale

• ricezione problemi segnalati dal cliente: l'azienda riceve le segnalazioni dei problemi riscontrati dal cliente sui prodotti o servizi forniti

Tutto questo integrato all'interno del portale, aggiungendo solamente la por- tlet e congurandola come meglio si desidera. Gli utenti che possono accedere al sistema sono riconducibili a tre tipologie:

• user • sta

• administrator

Ogni tipo di utente ha accesso a funzionalità speciche per il proprio ruolo.

4.1 Lo user

Lo user è un cliente che necessita di assistenza in quanto ha riscontrato un problema in un prodotto o in un servizio acquistati. Ne porta perciò a conoscenza l'azienda fornitrice attraverso il sistema di ticketing. La portlet dal lato dell'utente consente di compiere le seguenti operazioni:

• registrazione  permette la registrazione di un nuovo utente di tipo user, che in questo modo può accedere al portale

• login  lo user eettua il login nel portale attraverso lo username e la password scelti al momento della registrazione. In tal modo accede a tutte le funzioni del portale

• logout  disconnessione dal portale

• modica dati personali  attraverso la specica form, lo user edita i propri dati (nome, cognome, indirizzo e-mail...)

• apertura di un nuovo ticket attraverso l'interfaccia web, così composta  priorità: lo user assegna quella che ritiene giusta per il proprio

ticket, anche se potrà essere comunque modicata dallo sta  ambito del problema: scelta tra le varie tipologie del problema

4.2 Lo sta 31  titolo: identicazione del problema con una denizione

 descrizione: dettagliata spiegazione del problema

 le allegato (opzionale): per una migliore e dettagliata descrizione del problema è possibile caricare le che siano di aiuto nella fase di diagnosi. Il sistema accetta le di immagini, di archivi o testuali. La dimensione massima scelta è 5MB

 keywords: parole che aiutano la ricerca del ticket da parte di chi fa ricerche

 captcha: per evitare problemi di DoS (Denial of Service) causati da botnet

• visualizzazione dei ticket  tabella che permette allo user di visualizzare tutti i ticket che ha aperto nel sistema

• visualizzazione di tutti i ticket presenti nel sistema  tabella che per- mette di visualizzare tutti i ticket che sono presenti nel sistema tra i quali poter rintracciare la soluzione fornita ad un problema simile • aggiunta di note ad un ticket già aperto  per avere comunicazione con

i membri dello sta è possibile aggiungere alcune note al ticket aperto • valutazione nale sulla risoluzione del problema a ticket chiuso  una volta che il ticket viene chiuso, l'utente può assegnare un livello di gradimento all'intervento svolto da parte dello sta.

4.2 Lo sta

Per sta si intendono coloro che, all'interno dell'azienda fornitrice del prodotto o del servizio, si occupano della risoluzione del problema posto dal cliente. Lo sta ha in carico le seguenti operazioni:

• visualizzare tutti i ticket  tabella che contiene tutti i ticket che sono presenti nel sistema

• visualizzare solo alcuni ticket  è possibile, in base all'organizzazione dello sta, prevedere una tabella per la visualizzazione strutturata dei ticket. In automatico il sistema visualizza solo i ticket che riguardano un determinato ambito (quello al quale è adibito ciascun operatore dello sta)

• visualizzare i ticket non assegnati né presi ancora in carico

• prendere la ownership di un ticket  permette ad ogni singolo operatore di prendersi carico della risoluzione del ticket

• lasciare la ownership del ticket  permette all'operatore di abbandonare la soluzione del problema lasciando che siano altri ad occuparsene • modicare il ticket, con la possibilità di

 aggiungere note: per avere una comunicazione tra user e operatore dello sta

 cambiare priorità: ovvero se l'utente ha inserito una priorità sba- gliata lo sta la può modicare

 aggiornare le ore lavorative impiegate al ne di conoscere il tempo

Documenti correlati