• Non ci sono risultati.

SVUDUSSTEADCUETAEER BACFFCEBACAR REATRE:Ch.f.i he

N/A
N/A
Protected

Academic year: 2021

Condividi "SVUDUSSTEADCUETAEER BACFFCEBACAR REATRE:Ch.f.i he"

Copied!
122
0
0

Testo completo

(1)

BACK OFFICE BANCARI

RELATORE: Ch.moProf. MoroMi hele

LAUREANDO: Mi hele Pantano

Corso di LaureaMagistrale in Ingegneria Informati a

(2)

Dipartimento di Ingegneria dell'Informazione

Corso di Laurea Magistrale in Ingegneria Informati a

TESIDI LAUREA

SVILUPPO DI UN SISTEMA

DOCUMENTALE PER I BACK

OFFICE BANCARI

RELATORE: Ch.mo Prof. Moro Mi hele

LAUREANDO: Mi hele Pantano

(3)
(4)

a mio fratello,

(5)
(6)

Sommario 1

1 Introduzione 3

2 L'azienda E-proje t s.r.l. 7

3 TWAIN 9

3.1 L'ar hitettura di TWAIN. . . 12

3.2 L'interfa iautentedi TWAIN . . . 15

3.2.1 Proto ollo di omuni azione . . . 16

3.2.2 Interazione on le aratteristi he deidispositivi . . . 20

3.3 JTwain . . . 21

3.3.1 Installazione delSoftware Development KitJTwain . . . . 21

3.4 Implementazione . . . 22

4 CMS, ECM ed Alfres o 27 4.1 Lo standard CMIS . . . 31

4.1.1 Il Modello Con ettuale(Domain Model) . . . 32

4.1.2 I Servizi . . . 33

4.1.3 Lelibrerie OpenCMIS . . . 35

4.2 Realizzazione dell'inviodeile on lostandard CMIS . . . 37

4.3 La libreria apa he- ommons HttpClient . . . 39

5 La te nologia Java Web Start 43 5.1 Creazione di un le.jar . . . 46

5.1.1 Creazione diun le .jar da onsole . . . 47

5.1.2 Creazione diun le .jar inE lipse. . . 48

5.2 Firma diun le.jar . . . 49

5.3 Il Proto ollo JNLP . . . 53

(7)

6 I form dinami i e l'XML 61

6.1 Il linguaggiodimarkup XML . . . 62

6.2 Lelibrerie CookXmle CookSwing . . . 63

6.2.1 CookXml . . . 63

6.2.2 CookSwing . . . 67

6.3 Lalibreria JDOM . . . 71

6.3.1 Gestionedei dati inserititramite form . . . 75

7 Manuale Utente 79 8 Manuale Te ni o 87 8.1 La lasse AppMain . . . 87 8.2 La lasse A quiredItemsTable . . . 90 8.3 Il pa kage desktopApp.table . . . 92 8.4 La lasse Sele tDo sType . . . 93 8.5 La lasse ImageEditor . . . 93

8.6 Le lassi Toolsed ImageEditorTools. . . 99

8.7 Lalibreria Log4je lostrumento Log4E . . . 103

Con lusioni 107

Bibliograa 109

Elen o delle gure 111

(8)

L'obiettivogeneraledellatesièquellodisviluppareunsoftware per omputer he

onsenta l'interfa iamento on periferi he di a quisizione di immagini(s anner,

maan hefoto amere),alnedieettuares ansionidido umentidainviare,una

voltaa quisiti, adun sistemado umentale modellatoappositamentepergestirli.

Il ontesto in ui è inserito tale lavoro prevede la realizzazione di un progetto

pilotariguardanteiltema delladematerializzazioneedella gestionedo umentale

attraverso l'utilizzodi prodotti Open Sour e.

Perlarealizzazionedelsoftware sonostatiutilizzatistrumentiOpen Sour e

fa il-mentereperibiliinrete: E lipse omeambientedisviluppo,Alfres o omesistema

do umentale. L'appli azione è stata s ritta on linguaggio di programmazione

Java,fa endo usoan he dial unelibreriediterzeparti(apa he- ommons,

Cook-Swing,jgoodies, OpenCMIS, jtwain) e della te nologia Java Web Start, di ui i

siservirà perladistribuzionedelsoftware edieventualiaggiornamentiobugx.

Il risultato ottenuto da questo lavoro ditesi è quellodi aver realizzato un

appli- ativodesktop (lato lient)ingradodia quisire immaginidaperiferi he di

s an-sioneofoto amere,elaborarnel'aspettogra o(aumentareodiminuire ontrasto

e luminosità, ruotarle, apovolgerle rispetto ad un'asse orizzontale o verti ale,

ridimensionarle,e .), salvarle su lesystem lo ale e su essivamente inviarle al

(9)
(10)

Introduzione

Se si guarda in generale al fenomeno dell'ar hiviazione elettroni a di do umenti

arta ei, sipuònotare ome essostiaassumendoun'importanzasemprepiù

stra-tegi anelmondodelleaziendeedelleban he: introdu eunalleggerimentoeduna

dematerializzazionedeipro essiaziendali onilvantaggio diottenere, inoltre,un

patrimonio informativo fa ilmente a essibile. I punti di forza di tale pro esso

possono essere riassunti intre aratteristi he:

In remento della produttività: le mansioni di gestione dei do umenti ( ompilazione,ar hiviazione,ri er a,...) vengonosempli ateevelo izzate,

liberandoinquestomodorisorsee ridu endoitempioperativi,avantaggio

della produttività;

Riduzionedei osti: unsistemado umentaleinformato arta eo ompor-ta osti he possono essere eliminatiridu endo ilvolume degli ar hivi si i

edelle risorseumane dedi ate, ma an he abbattendo le spese riguardantii

onsumabilid'u io;

Flessibilità nella ondivisione delle informazioni: un'ar hitettura di-gitalizzata per la gestione do umentale garantis e, se ben strutturata, un

sistemain grado difornire a tutti gli operatoriabilitati un agevole a esso

aidati ar hiviati.

Perevidenziare l'importanzadell'ar hiviazionedigitaledeido umenti,in

par-ti olareall'internodelle ban he (ambito he èstato oggettodellavoro di tesi), si

prendain onsiderazione il Rapporto dell'Asso iazioneBan aria Italiana (ABI)

intitolato Gestione do umentale in ban a (febbraio 2009). Il Rapporto

sottoli-nea ome le ban he produ ano, ogni anno, ir a 5,7 miliardi di fogli

(11)

tale mole di arta equivale ad una dimensione pari a quattro volte quella della

super ie diParigi.

Lo studio, realizzato da ABI Lab, il Consorzio dell'ABI per la Ri er a e lo

Svi-luppo delle Te nologie per la Ban a, mette in risalto inoltre ome il deposito,

la onservazione, la gestione logisti a, la ri er a e la spedizione dei do umenti

in formato arta eo prodotta in ban a, osti al settore ir a 105 milioni diEuro

l'anno. A ui devono essere aggiunte le spese sostenute dalle singole liali per

l'a quistodi arta(altri20milionidiEurol'anno),lospaziodedi atoagliar hivi

arta ei e l'ar hiviazione. In parti olare, sul bilan io di ogni sportello pesano i

osti dideposito e onservazione deido umenti ban ariper lunghiperiodi (1500

Euro l'anno)e la gestione logisti a,la ri er a e la spedizione deifogli he ha un

osto totale dipo opiù di 1600 Euro l'anno.

Questorapportometteinlu eivantaggidelladigitalizzazionedeido umenti:

l'aumentodell'e ienza degli istitutidi redito;

lariduzione dellospazio o upato perimmagazzinare ido umenti;

l'ottimizzazionedellaloro lassi azione he siriette inun miglioramento nelle prestazioni diri er a;

lasempli azione delle operazionidiinvio, dupli azione e ondivisione;

la possibilità di ontribuire a rendere maggiormente e o-sostenibile la ge-stione do umentale.

A riassumere il Rapporto dell'ABI sono le parole delpresidente di ABI Lab,

Domeni o Sante e a:

Digitalizzaredo umentiepro edure onl'obiettivodi renderepiù

e- ientelagestionedo umentaleperiprin ipalisettoriproduttivi

pubbli- ieprivatidelPaesesigni amigliorarei pro essioperativiridu endo

i osti.

In questo s enario si inseris e il progetto svolto per la tesi: fornire agli

isti-tuti di redito un software he onsenta di automatizzare e rendere più sempli i

e trasparenti le operazioni di digitalizzazione dei do umenti arta ei e di invio

degli stessi ai ba k o e ban ari. S endendo un po' più nel dettaglio, quello

he si è realizzato è un appli azione multipiattaforma per p ( on la

(12)

programmazioneJava e he siè pensato didistribuire al lientenale attraverso

te nologiaJavaWeb Start. Ilprogetto onta13 lassi,76metodiperun totaledi

oltre 3600 righe di odi e e oinvolge, trale molte librerie, an he al une diterze

parti:

jgoodies perla reazionediparti olarilayoutgra i daappli are aiJFrame Java;

CookSwing e ookXml perla reazione dinami adioggettiJava, generatia partiredalla lettura diun leXML;

OpenCMIS e HTTPClient perl'invio deiletramitelo standard CMIS ed ilproto ollo HTTP al sistemado umentale Alfres o;

jdom perla s ritturaed il parsing dileXML;

log4j per la reazione automatizzata diun log diprogramma.

Con entrandosi brevemente sul funzionamento del programma, si può

nota-re ome esso operi in maniera del tutto sempli e e lineare. L'utente, una volta

avviatal'appli azione,puòs eglierese onsultarelostori odeido umentigià

di-gitalizzati( hera oglieidatiinformatabellareelimostraavideoinun'apposita

nestra)o eseguire una nuova s ansione; in aso s elga questa se onda opzione,

dopo aver indi ato la tipologia del do umento da s ansionare (tramite selezione

di un radio button) ed aver inserito in un form al uni dati legati al do umento

da onvertire in formato digitale, si avvia il  uore del programma. Esso

pre-senta un'areasu ui viene mostrata l'immaginedel do umento s asionato ed un

pannello laterale ontenente i pulsanti per la s ansione, la modi a e l'invio al

sistemado umentale deldo umento a quisito.

Neiprossimi apitolisiandràadanalizzareisingolipassi he hannoportatoa

realizzare il prodotto des ritto, soermandosi inmaniera parti olaresull'utilizzo

degli strumenti e delle librerie meno note e sottolineando le di oltà in ontrate

in questo per orso e le relative soluzioni appli ate. I prerequisiti ne essari

al-la omprensione dell'elaborato sono le nozioni base di programmazione Java, la

(13)
(14)

L'azienda E-proje t s.r.l.

E-proje t s.r.l. è l'azienda he miha ospitatoe supportato nella realizzazione di

questo lavoro di tesi.

E-proje t s.r.l. è spe ializzata nella realizzazione, nella gestione e nello

svi-luppo diprogetti di tipo organizzativo ed informati o; l'azienda è stata fondata

nel 2001 da professionisti provenienti dal mondo della onsulenza aziendale ed

informati a e dal mondo del do ument managment. I settori in ui E-proje t

s.r.l. prevalentemente opera sono i seguenti:

Servizi;

Assi urazioni;

Ban he;

Pubbli aAmministrazione.

Nel settoredeiServizi ha ontribuito arealizzare soluzionilegate alla

onser-vazione sostituitiva.

Nel settoredelle assi urazioni harealizzato soluzioni on l'utilizzodi prodotti di

do ument managment eBPM 1

Nelsettore Ban ario possiede grandi ompetenze nelle seguentiaree:

Sportellodi liale

In assi e Pagamenti 1

BusinessPro essManagement: l'insiemedelleattivitàne essarieperdenire,ottimizzare,

monitorareeintegrareipro essiaziendali, onlos opodisoddisfarebisognievolontàdei lienti

(15)

Gestionedo umentale

Organizzazione dell'areaoperations edei ba k-o e entralizzati

Nel settore Pubbli aAmministrazionevantaprogettie onsulenze presso:

il gruppo InfoCamere/UnionCamere nell'area Registro Imprese, Albo Vi-gneti, Albo Cooperative, area Sistemisti a (DARS);

al uniprogettiopartidiprogettirealizzatisono: on iliazioneon-line (Con- ilianet),sistema di legalitàper la regioneCampania (Legalità),interventi

su Telema o, Coperni o, Quorum, Albo delle Cooperative et . Comuni

dell'Estense: è stato realizzato lo Sportello Uni o sia dal punto di vista

organizzativosia informati o.

E-proje t vanta 14 operatori nel settore informati o on il

92%

di laureati e un networkdiaziendepartnerdiprodotto esystemintegrator he permettonodi

risponderetempestivamente alleesigenze progettuali.

(16)

TWAIN

Una delle omponenti fondamentaliper il progetto a ui holavorato è quella di

s ansione, he si o upa di realizzare un tramite tra il software appli ativo e le

periferi he d'a quisizione d'immagini, per la  attura in formato digitale di

do- umenti. Tale omponenteavrebbean he potuto utilizzarei software proprietari

deidispositivi,masfruttandolelibrerie JTwain(perulterioriapprofondimenti si

veda 3.3) ilpro esso nonsolodiviene piùrapido, ma onsente an he all'utentedi

evitarelanoiosainstallazionediulterioresoftware(favorendo osìladistribuzione

dell'appli azionetramite te nologia Java Web Start).

Con l'introduzione dis anner, ma hinefotogra he digitalied altre

periferi- he di a quisizione di immaginiè divenuto sempre più sempli e ed alla portata

di tutti allegare ai do umenti o ai propri lavori dei le d'immagine; per mezzo

diquesti si possono aggiungere ulterioriinformazioni aglielaborati allos opo di

renderli più pre isi e dettagliati. Sul nire degli anni '80 ed agliinizi degli anni

'90, in on omitanza on la nas ita di nuovi dispositivi in grado di

digitalizza-reimmagini,ai programmatoriviene ri hiesta l'abilità di reare appli azioni he

sappiano mostrare e modi are le immagini a quisite; il ompito è davvero

im-pegnativo poi hé è ne essario implementare un'interfa ia gra a e soprattutto

una serie difunzioni he siano apa i di ontrollare l'ampia gamma di

dispositi-vi per l'a quisizione di immagini. Inoltre, una volta he l'appli azione è pronta

a supportare un parti olare appare hio, ne vengono introdotti nel mer ato di

nuovi, on nuove aratteristi he e nuove funzionalità, vani ando osì gli sforzi

di molti sviluppatori e ostringendoli a modi are in maniera presso hé

onti-nuativa i loroappli ativi. Siale grandi aziendeproduttri i di periferi he he gli

sviluppatori di software sentono quindi l'esigenza di un insieme di vin oli he

(17)

e sempli ità in questo parti olare settore dell'informati a. La reazione di uno

standard sembra poter essere la soluzione he risolve i problemi di entrambe le

parti: le ase produttri i di dispositivipossono ommer ializzaredei prodotti in

grado diinterfa iarsi on un maggiornumero disoftware diversi; i

programma-tori inve e possono dedi arsi ad un uni o progetto he sia in grado di dialogare

on dispositividiversi.

Il progetto TWAINnas e nel1991dall'esigenza di reareun proto ollo

soft-ware standard ed un'interfa ia di programmazione delle appli azioni (API) he

regolila omuni azionetraappli ativisoftware estrumentidia quisizionedi

im-magini. L'obiettivo diquesto pi olo gruppo di lavoro è, n dasubito, quello di

fornire una soluzione open sour e e multipiattaforma, per soddisfare le esigenze

di interfa iamento tra le periferi he di input delle immagini ed i software. Al

progettoinizialeprendonopartei rappresentantidi inqueso ietà(Aldus, Caere,

EastmanKodak,Hewlett-Pa kardeLogite h), heinseguitori evono importanti

ontributian he daaltreaziende(tra uiAdobe,Howtek eSoftware Ar hite ts).

Nel orso degli anni il progetto ha assunto dimensioni sempre maggiori, basti

pensare he ad oggi il gruppo di lavoro TWAIN onta ir a 300 persone, he

rappresentano approssimativamente200 diverse so ietà e he ontinuano ad

in-uenzare e guidare il progetto; gli sviluppi futuri del proto ollo sono mirati a

migliorarelostandard perrius ire ada ogliere le nuovete nologie.

Vantaggi nell'utilizzo di TWAIN

Lo standard TWAIN ha portato moltepli i vantaggi ai programmatori di

appli- azioni,aglisviluppatori disoftware diperiferi a 1

, maan he agliutentinali.

Per uno sviluppatore di appli ativi,l'utilizzodi TWAIN permetteinfatti:

di realizzare un'appli azione he onsenta all'utentenale di a quisire im-maginiinmodosempli eedimmediatodaqualsiasidispositivo ompatibile,

senza dover abbandonare l'appli azione he si stautilizzando;

di ottenere un risparmio in termini di tempo e di osti, rendendo non più ne essaria la fase di s rittura e di distribuzione di driver spe i i per ogni

singola periferi a;

1

Softwarediperiferi aoSour esoftware: softwareperil ontrolloelagestionedeidispositivi

(18)

di onsentireall'appli azionedia ederealleperiferi heTWAIN- ompatibili sempli emente attraverso il proprio odi e, utilizzando l'API oerta da

TWAIN;

di determinarele proprietà (risoluzione, a quisizione a olori o in bian oe nero,e .) heundispositivopuòfornire. Intalmodo,èpossibileeettuare

una limitazione sul Sour e software ed orire solo le arateristi he he

possono essere ompatibili on leesigenze della propria appli azione;

di far tralas iare allo sviluppatore l'implementazione di un'interfa ia per il ontrollodel pro esso d'a quisizione dell'immagine: inTWAINesiste già

un modulo he sio upadi questo.

Per lo sviluppatore di software di periferi a inve e TWAIN ore i seguenti

vantaggi:

aumenta l'utilizzo e la ompatibilità del proprio prodotto. Molte appli a-zionipossonoinfattiintegrarelefunzionidia quisizionidiimmagini,grazie

allafa ilitàdiimplementazione fornita daTWAIN;

fornis eall'utentenaleun'interfa iaad ho per ilpropriodispositivo he ne omanda on esattezza tutti iparametri;

permette un risparmio e onomi o: anzi hé reare e fornire supporto per diverse versioni delpropriosoftware di ontrollodella periferi a,èpossibile

reareun singolosoftware di dispositivo he siaTWAIN- ompatibile;

non obbligal'appli azionea fornire un'interfa iaper ontrollare il pro es-so d'a quisizione dell'immagine: esiste un apposito modulo TWAIN he si

o upa diquesto.

An he perl'utentenaleTWAINhaportatoungrossovantaggio: permettein

modosempli eed intuitivodiallegareimmaginiaipropri do umenti. Èpossibile

quindi in orporare degli allegati in po hi sempli i passi poi hé non serve us ire

(19)

3.1 L'ar hitettura di TWAIN

Glielementi hiave diTWAIN sono tre sempli i omponenti:

L'appli ativo software: un'appli azione he deve essere strutturata per poter utilizzareTWAIN;

Il software di gestione delle periferi he (Sour e Manager soft-ware): la omponente in grado di gestire l'interazione fra le periferi he

e l'appli azione;

Il software di periferi a (Sour e software): èilsoftware he sio upa del ontrollo dell'a quisizione delle immagini, s ritto dai produttori delle

periferi he inmododasoddisfarelespe i he TWAIN. I drivertradizionali

dei dispositivi sono, di norma, sempre in lusi nelle periferi he mediante

questi software.

Figura 3.1: Elementi diTWAIN

Il trasferimentodi dati dalle periferi he al omputer èquindi possibile grazie

al funzionamento di queste omponenti he interagis ono tra loro. Questi tre

elementiusanol'ar hitetturadiTWAINper omuni arel'unl'altro;l'ar hitettura

prevede quattro livelli,disposti ome nell'immagine he segue (3.2):

livello1. Appli azione

livello2. Proto ollo

livello3. A quisizione

(20)

Figura 3.2: Elementisoftware di TWAIN

Livello di Appli azione

In questo livello viene eseguito il software dell'utente. TWAIN des rive le linee

guida dell'interfa ia utente per gli sviluppatori di programmi, per quanto

on- erneilmodoin uigliutentia edonoallefunzionalitàdiTWAINedilmodoin

uiunaparti olarerisorsapossaessereselezionata. TWAINnonfornis eulteriori

dettaglio suggerimenti riguardantil'implementazionedell'appli ativo.

Livello di Proto ollo

Ilproto ollopuòessereinteso omel'insiemediregole he denis onoil

linguag-gioparlato elasintassiutilizzatadaTWAIN.Essoimplementapre iseistruzioni

e ri hieste di omuni azioni peril trasferimento deidati. Il Livello di Proto ollo

omprendetre omponenti:

unaporzionedisoftware dell'appli azione he si o upa difornire un'inter-fa iatrail programmae TWAIN;

(21)

il software in luso on la periferi a di attura delle immagini, he onsente al prodotto di ri evere leistruzioni dalSour e Manager e ditrasferire dati

e ReturnCodes 2

;

Livello di A quisizione

Glistrumenti dia quisizione possono essere sostanzialmentedi due tipi:

logi i -database diimmagini;

si i- s anner, ma hine fotogra he digitali, telefoni ellulari.

Glielementidel software s ritti per ontrollare lea quisizionisono detti Sour es

erisiedonoprin ipalmenteinquestolivello. UnSour ehail ompitoditrasferire

i dati destinatiall'appli azione,usando un formato ed un me anismo di

trasfe-rimento he viene stabilito in fasedi progettazionedal programmatore. Cias un

Sour e dovrebbe fornire un'interfa ia per l'utente, osì da permettergli di

on-trollare il dispositivo per ui è stata s ritta: tuttavia tale interfa ia può an he

non esser sviluppata, qualora non dovesse esser ene bisogno.

Livello di Dispositivo

Inquestolivellovieneposto,dinorma,ildriverdeldispositivo. Undriver onverte

i omandi spe i i adalto livelloindirizzatial dispositivo, in omandi hardware

edazionispe i he abassolivelloperilparti olaredispositivoper uiessoèstato

s ritto.

Leappli azioni hefannousodiTWAINnonne essitanopiùdidriverproprietari,

per héessi sonoinglobati neisoftwarediperiferi a. Trai ompitidiun software

didispositivoinfatti 'èan hequellodio uparsidellatraduzionedelleoperazioni

TWAIN e delle interazioni on l'interfa ia utente, in omandiequivalenti per il

driverdellaperiferi a, hefansì heildispositivosi omportinelmododesiderato.

TWAINnon fapartedelLivellodi Dispositivo;infattiunodei ompitidelSour e

software èan he quellodinas ondere all'appli azionequesto livello.

2

Return Codes: odi i indi anti lo stato del dispositivo o l'esito dell'ese uzione di un

(22)

3.2 L'interfa ia utente di TWAIN

Ilpro esso dia quisizione diun'immagineattraversoun'appli azione he utilizza

TWAIN, può essere visibileall'utente nelle seguentitre aree:

Figura 3.3: Pro esso dia quisizione dei dati

L'appli azione

L'obiettivodell'appli azioneèquellodia quisireegestiredati dauna sorgentedi

input. L'appli azionetuttavianonpuòdialogaredirettamente onildispositivo:

Return Codes, informazioni sulle aratteristi he del dispositivo, sugli errori e .

devono essere gestiti attraverso il Sour e Manager. È ne essario quindi he

l'u-tentespe i hiperprima osa ildispositivoda uiintende atturaredati; inoltre

èessenziale perl'utente apire quandotaliperiferi he siano pronteada quisirei

dati. Per onsentire questa aratteristi a,il gruppodi lavoro TWAIN sottolinea

aiprogrammatoril'importanzadiintrodurrenelFile Menù due sempli iopzioni:

Seleziona dispositivo - perselezionare la periferi a

(23)

Il Sour e Manager

IlSour eManagerèil omponente he fornis eil analedidialogo tra

l'appli a-zione e laperiferi a hardware di atturadelle immagini. Il Sour e Manager

on-sentelaselezione deldispositivodapartedell'utenteed al ontemporende

dispo-nibile all'appli azioneun'istanza di tale dispositivo. Inoltre il Sour e Manager

può dar vita a tre operazioni he non sono direttamente originate

dall'appli a-zione: identi are le risorse disponibili, attivarle (Sour eManager.instan e()

.openSour e()) edisattivarle (Sour eManager.instan e(). l oseS our e()).

Quando l'utente s eglie l'opzione Seleziona dispositivo dalFile Menù,

l'appli a-zione ri hiede al Sour e Manager he mostri a video la sua nestra di dialogo

nellaqualesono elen atitutti idispositividisponibili;permezzodiquesta dialog

boxl'utentepuòselezionarelaperiferi adesiderata. Sene essario,losviluppatore

softwarepuòsovras rivere onunapropriaverionel'interfa iautenteperlas elta

deldispositivo(grazieaimetodiSour eManager.instan e().g etAl lSou r es ()

e Sour eManager.instan e().se le t Sour eBy Nam e(St ring sour eName)).

Il software di periferi a

Il software di periferi a ri eve omandi siadall'appli azione, attraverso il Sour e

Manager, sia direttamente dal Sour e Manager. Esso pro essa le ri hieste e

ri-torna un appropriato Return Code per ias una di esse, indi ando al Sour e

Manager il risultato dell'operazione. Ogni Sour e software TWAIN- ompliant

fornis e all'utente un'interfa ia spe i a per l'utilizzo della periferi a s elta.

Quando l'utente seleziona l'opzione A quisis i, l'interfa ia utente della

perife-ri apuò esserevisualizzata(previo l'averinseritotrailproprio odi eil omando

sour e.setUIEnabled(true)); omegiàvistoperl'interfa iadiselezionedel

di-spositivo,an heinquesto asolosviluppatore,apropriadis rezione,puòde idere

di implementare la propriaversione.

3.2.1 Proto ollo di omuni azione

Ilpro essoperl'a quisizionediun'immagineri hiede he l'appli azione,ilSour e

Manager ed il Sour e software omuni hino rispettando un parti olare ordine.

Unbanaleesempiopuòessere quello he vedel'appli azioneeettuareuna

ri hie-sta per il trasferimento dei dati ad una periferi a: tale ri hiesta non può essere

soddisfatta se primanon è statoattivato ilSour e Manager epredisposto ad

eettuare una ri hiesta. An hé sia assi urata una sequenza di omuni azione

(24)

Una sessione è un lasso temporale he vede l'appli azione onnessa ad una

par-ti olare periferi a attraverso il Sour e Manager. Il periodo di tempo nel quale

un'appli azionerisulta onnessa alSour eManagerè onsiderataun'uni a

sessio-ne (una sessionequindi inizia ol omando Sour eManager.instan e().op en()

etermina ol omando Sour eManager.instan e(). l ose( )).

Analizzando ora una singola sessione, ad un dato istante si può osservare ome

ias unodei omponentiTWAINingio oassumaunostato ben denito;le

tran-sizioniverso unnuovostatosonodeterminatedaoperazioniri hiestedalsoftware

diperiferi ao dall'appli azione. Non 'è un sensounivo operletransizioni, esse

possono essere us enti od entranti da o in ias uno stato e la maggior parte di

esse sono transizioni he portano adun uni o stato.

Osservando il proto ollo di omuni azione è utile ri ordare he gli stati 1, 2, 3

sonoo upaties lusivamentedalSour eManager,ilqualeinve enono upamai

stati superiori al terzo. Gli stati 4, 5, 6, 7 vengono es lusivamente o upate dal

software di periferi a. Il Sour e software, qualora siaattivo, non si trova mai in

uno stato inferiore al quarto; nel aso sia inattivo, non o upa al uno stato. Se

una stessa appli azione utilizza più dispositivi, ias una onnessione appartiene

aduna sessione indipendentee ias una periferi a si trova in uno stato

indipen-dentementedallo stato in uisi trovano le altre periferi he.

Des rizione degli stati

Nellaseguentesezione,verrannodes rittiglistatidelproto ollodi omuni azione

diTWAIN.

Stato 1 Pre-Sessione

Il Sour e Manager risiede nello stato 1 prima he l'appli azioni stabilis a una

sessione on esso. In questa stato, il odi e del Sour e Manager è installato su

dis omanonèan ora ari atoinmemoria. L'uni o asoin uiilSour eManager

può essere già ari atoed inese uzione è negli ambienti Windows, per hé la sua

implementazione è una DLL 3

(quindi la stessa istanza del Sour e Manager può

3

Dynami Link Library: è una libreriasoftware he viene ari ata dinami amente in fase

di ese uzione. La separazionedel odi ein librerie a ollegamentodinami o permette di

sud-dividere il odi e eseguibile in parti on ettualmente separate, he verranno ari ate solo se

eettivamente ne essarie. Inoltre,una singolalibreria, ari atain memoria,può essere

utiliz-zata da più programmi, senza la ne essità di essere nuovamente ari ata, il he permette di

(25)

essere ondivisa dapiù appli azioni). Se iòa ade, ilSour e Managerpotrebbe

trovarsi nellostato 2 o 3nell'appli azione he losta utilizzando.

Stato 2 Sour e Manager Cari ato

A questo punto il Sour e Manager viene ari ato in memoria, ma non è an ora

in ese uzione. Esso èprontoa ri evere omandi diistruzione dall'appli azione.

Stato 3 Sour e Manager Aperto

IlSour eManagerèoraavviatoedèprontoadinteragire onilSour esoftware . Il

Sour eManagerpuò,inquestostato,elen are leperiferi he onnesse al omputer

e, per ias una di esse, può de idere se renderle operative o meno. Il Sour e

Managerresterà nello stato3 pertutta ladurata dellasessione, no almomento

in ui la sua ese uzione verrà terminata. Il Sour e Manager non potrà essere

terminato nel aso in ui i siaan ora qual he periferi a attiva.

Stato 4 Sour e software Aperto

Il Sour e software è stato ari ato ed è stato avviato dal Sour e Manager in

ri-sposta ad un'operazione dell'appli azione ed è quindi inoltre pronto a ri evere

ulteriori omandi. Il software diperiferi a dovrebbe aver veri ato he le risorse

ri hieste(memoria,periferi a,e .) sianodisponibili;l'appli azioneèquindi

pron-ta per re uperare informazioni sulle aratteristi he della periferi a (risoluzione,

supportodiimmaginia olori,alimentazioneautomati adeifoglidas ansionare,

e .). L'appli azione può inoltre impostare i valori desiderati per ias una delle

aratteristi he oerte dal dispositivo: per esempio, può far sì he l'a quisizione

delle immaginiavvenga es lusivamentein bian o enero.

Stato 5 Sour e software abilitato

Il Sour esoftware è statoabilitatoda un omando dell'appli azioneattraverso il

Sour e Manager ed è pronto adeettuare il traferimento diimmagini. Se

l'app-pli azione onsente al software di dispositivo di mostrare la propria interfa ia

(sour e.setUIEnabled(true)), questo avviene quando entranello stato 5.

Stato 6 Il Trasferimento è pronto

Il software diperiferi aèprontoatrasferire una opiù immaginiall'appli azione.

Latransizionedallostato 5allostato6èinnes atadalSour esoftware he

noti- aall'appli azione he iltrasferimentoè pronto. Prima he l'inviodei dati abbia

inizio,l'appli azionedeveaver onos iutoidettaglidell'immagine(risoluzione,

(26)

Stato 7 Trasferimento

Il Sour e software sta trasferendo l'immagine all'appli azione. Il me anismo di

trasferimento utilizzatoè negoziato durante loStato 4. Il trasferimentodei dati

può esser ompletato on su esso oppure può esser interrotto prematuramente;

inentrambii asi,ilsoftwaredidispositivoinviaunReturn Code all'appli azione

indi ante l'esito del trasferimento. Una volta he il Sour e software indi a he

il trasferimento è ompletato, l'appli azionedeve ri onos ere la ne del

trasferi-mento.

In gura èriportatoil diagrammadegli stati e delle transizioni:

(27)

3.2.2 Interazione on le aratteristi he dei dispositivi

Unodeibene idiTWAINè he onsenteall'appli azionediinteragirefa ilmente

on una grande varietà didispositivi d'a quisizionedi immagini. Talidispositivi

possono avere diverse aratteristi he, adesempio:

al uni dispositivi godono del ari amento automati o dei do umenti da s ansionare;

al uni dispositivinon si limitanoall'a quisizione di una singolaimmagine, mapossono trasferire immaginimultiple;

al uni dispositivi supportano las ansione a olori;

al uni dispositivi ries onoa gestirean he una varietà dimezzi toni;

al uni dispositivi supportano un range di risoluzioni mentre altri possono orirerange dierenti.

Gli sviluppatori di appli azioni hanno bisogno di onos ere le aratteristi he

di un Sour e e possono inuenzarne le feature he esso ore all'utente nale.

Per far iò, l'appli azione può eseguire una negoziazione delle aratteristi he.

L'appli azionein generesegue questo pro esso:

1. determinaseilSour eselezionatodispongadiunaparti olare aratteristi a;

2. a quisis e il valore orrente della aratteristi aselezionata. Inoltre,

a qui-sis e ivalorididefault delle aratteristi he el'insiemedeivaloridisponibili

he sono suppoortatidal Sour eper quelparti olare dispositivo;

3. ri hiede he il Sour eimposti ilvalore orrente diuna aratteristi aad un

parti olare valore espresso dall'appli azione;

4. limita,se ne essario,i valoridisponibiliper ilSour eadun sottoinsieme di

valori hesiano ompatibili onquelli hedevonoessereoerti. Adesempio,

se l'appli azione ri hiede s ansioni in bian o e nero, si possono restringere

le apa ità del Sour e an hé si limiti ad a quisire immagini di questo

tipo. Se una limitazioneha eetti sull'interfa ia utente del Sour e, allora

il programmatore dovrebbe andare a sovras rivere l'interfa ia in modo

he rispe hitalilimitazioni,peresempiorimuovendoo olorando digrigio

leopzioni he non sono disponibili.

(28)

3.3 JTwain

JTwain è la ontroparte Java di TWAIN. È una libreria Java ommer iale

svi-luppata e distribuita da LAB Asprise! a partire dal 1998. Oltre alla gestione

di periferi he TWAIN- ompatibili, ore altri strumenti e funzionalità, ome ad

esempio un sempli e programma di editing per le immagini (sviluppato in

lin-guaggio Java) o un sistema di publi azione (simultanea) su WEB (tool questi

non presi in onsiderazione poi hé non rientranti negli s opi del progetto).

L'u-tilizzo diquesta libreriaè sempli e, per hé non prevede lapossibilitàdi eseguire

s ansioniparallelee quindi es luderealizzazioni parti olarmente omplesse e

de-li ate he s aturis ono dall'uso dei Thread. Uno dei punti he gio a inve e a

sfavore dell'utilizzo di questa libreria è il fatto he JTwain operi solamente su

sistemiWin32. Perun'integrazioneversoisistemiUNIXdiqualsiasitipo(quindi

non soloLinux, maan he Ma ) bisogna a quistareun altro prodotto, ilJSANE.

SANE è uno standard de fa to perl'a esso as anner e foto ameredaparte dei

sistemi MAC, Linux,OpenBSD, Solaris, Unix. JSANE fornis e leAPI Java per

l'utilizzodi SANE.

3.3.1 Installazione del Software Development Kit JTwain

L'installazione del Software Development Kit (SDK) JTwain è di fondamentale

importanza per lo sviluppatore he voglia reare un'appli azione he utilizzi lo

standard TWAIN.

Innazitutto, sulla propria ma hina deve essre installata una versione di JRE

uguale o superiore alla1.2 (versione omunque obsoleta, risalente all'anno della

prima release di JTwain - 1998). Al momento, JTwain supporta solo i seguenti

sistemioperativi: Windows98,NT,ME,2000,XPetuttelepiattaformeWindows

Server. Una volta s ari ata opia del le di installazione di JTwain dal sito

http://www.asprise. om/pr odu t/jt wain, è ne essario s ompattare l'SDK in

una artella, he assumerà ilruolodella JTWAIN_HOME. Dopoquesti sempli i

passaggi,saràsu ienteeseguireilleLaun hDemo.bateselezionareTestJTwain

pertestare la orretta installazione diJTwain.

In seguito all'installazione, è ne essario ongurare l'ambiente di sviluppo per

poter reareappli azioniJava he utilizzinoJTwain. Le operazioniessenzialiper

un orretto setupdell'ambiente disviluppo sono:

(29)

porreilleAspriseTwain.dll nelpropriosystempath (inambientiWindows va posto in C: Windows System32).

Datii osti elevatiperl'a quistodiunali enzaJTwain, perilmioappli ativo

hofattouso diuna verisonedemo. Questa onsentel'utilizzodi tuttele funzioni

messe a disposizione dalla versione a pagamento (per un periodo di tempo

limi-tato a 30 giorni), salvo appli are sulle immagini s ansionate un watermark he

ri orda he si stautilizzando la versione diprova della libreria.

3.4 Implementazione

Come anti ipato nell'introduzione, l'appli azione sviluppata in questo progetto

di tesi, prevede una omponente dis ansione. Si analizzerà all'internodi questo

paragrafo ome è stata realizzatatale omponente, quali omandisono ne essari

per la sua ese uzione e he tipo di di oltà si sono in ontrate

nell'implementa-zione ditale aratteristi a.

Il metodo he andiamo ad analizzare è il metodo s anA tion(A tionEvent

event) he vieneeseguitoallapressione delJButton S ansione presentenel

pan-nelloprin ipaledell'appli azione. Ilfunzionamentodellelibreriejtwainèdavvero

molto sempli epertantoan he il odi e Java sarà altrettanto hiaro e lineare.

Per prima osa 'è da dire he l'intero odi e per l'interfa iamento on s anner

o altri dispositivi, va ra hiuso all'interno del paradigma try/ at h/finally

ed il motivo è presto spiegato: on finally si mira a rilas iare

immediatamen-te una risorsa he può esser rimasta blo ata dal prolungarsi di un'operazione

di gestione di un'e ezione. Nel blo o try vanno inseriti due omandi

fonda-mentali, he servono ad iniziare una sessione di s ansione; il primo omando

è Sour e sour e = Sour eManager.instan e(). sele tSo ur eUI( ) mentre il

se ondo è sour e.open(). Tramite ilprimo omando viene mostratauna dialog

boxmediantelaqualeèpossibiles eglierelaperiferi adesiderata(traunalistadi

periferi he ollegate alla ma hina su ui viene eseguita l'appli azione), tramite

ilse ondo vieneinve eaperta la omuni azione onildispositivod'a quisizione

di immmagini. L'oggetto di tipo Sour eManager rappresenta eettivamente il

Sour e Manager diTWAIN, le ui aratteristi he sonostateillustratein3.2; può

esser iunaed unasolaistanzadiSour eManagerattivapervolta. Èobbligatorio

l'inserimentodiquesta porzionedi odi eall'internodelblo otryinquantoessi

(30)

(nel blo o at h). Una volta he si è individuato quale sia la periferi a he

verrà utilizzata e he la si è resa disponibile all'a quisizione di dati, si pro ede

onlas ansionetramiteil omandosour e.a quireImage(). Ilblo ofinally

in lude una sola istruzione Sour eManager. loseSour eMa nage r() per mezzo

della qualesi rilas iail Sour e Manager.

Il blo o di odi e nella sua interezza èil seguente:

Listing 3.1: Il metodo voids anA tion (A tionEvent event)

1

try{

2

SourceManager.instance().selectSource(source);

3

source.open();

4 5

source.setXResolution(100);

6

source.setYResolution(100);

7

bufferedImage = source.acquireImageAsBufferedImage();

8

scanDate = Tools.date();

9

scanTime = Tools.time();

10

11

//salvo le immagini in file .tiff

12

Tools.saveToTIFF(countPages, bufferedImage);

13

countPages++;

14

15

//mostro l’immagine nel main panel

16

Tools.showImage(bufferedImage, imageScrollPane);

17

source.close();

18

}

19

catch(JTwainException e) {

20

logger.error(

"scanAction(ActionEvent)"

,e);

21

}

22

finally{

23

SourceManager.closeSourceManager();

24

}

Rispettoaquantopre edentementeillustrato, isonoal unepi oledierenze

he è bene spiegare: il primo omando eseguito è Sour eManager.instan e()

.sele tSour e(Sour e sour e); he adierenzadiquantodettopo anzi,non

onsente all'utente di s egliere la periferi a da utilizzare, ma ne assegna una

prestabilita. Questa è una s elta progettuale he è stata eettuata in base al

tipo di utilizzo ui è destinato il software: l'operatore di ban a non può (e non

(31)

tempo per selezionare una periferi a piuttosto di un'altra. Per questo motivo

il omando Sour e sour e = Sour eManager.instan e().se le t Sour eUI ()

è utilizzato un'uni a volta(al primo avvio assoluto dell'appli azione); una volta

s elta laperiferi a viene salvato un leXML ontenente il nome del dispositivo

selezionato e ad ogni su essivo avvio del programma, verrà letto tale le e si

er herà di utilizzare il nome della risorsa indi ata nel le. Se per errore al

primo avvio venisse selezionata la periferi a sbagliata, viene data all'utenteuna

dupli epossibilità: la an ellazionedelleXMLriportanteilnomedeldispositivo

pres eltooppurelapossibilitàdis egliereunaltrodispositivoattrraversoapposita

funzionepresentenelmenùFiledelprogramma. Il odi e hegestis elaselezione

dello s anner (o altro dispositivo)dautilizzare èil seguente:

Listing 3.2: Il metodoSour e sele tSour e(Filele)

1

Source selectSource(File file){

2

File fileSource = file;

3

Source source =

null;

4

5

try{

6

Source[] sources = SourceManager.instance().

getAllSources();

7

if(sources.length==0){

//no sources

8

Tools.warningFrame(

"No source found"

,

"Try to connect a

source, then retry"

);

9

}

10

else{

11

if(!fileSource.exists()){

12

source = SourceManager.instance().selectSourceUI();

13

writeSourceName(source, fileSource);

14

}

15

else{

16

source = readSourceName(sources, fileSource);

17

}

18

}

19

}

20

catch(JTwainException e){

21

logger.error(

"selectSource(File)JTwainException"

,e);

22

}

23

return

source;

(32)

An he in questo aso il odi e riportato è estremamente banale: si fa

pri-ma di tutto un ontrollo sulla presenza o meno di dispositivi. Se sono presenti

dei dispositivi ollegati al omputer, allora si va a leggere il le XML

onte-nente il nome della periferi a da utilizzare per la s ansione (il le è passato

o-me parametro al metodo). Se tale le non esiste (in aso di prima ese uzione

del programma o di an ellazione da parte dell'utente) viene allora invo ato il

omando Sour eManager.instan e(). sele tSo ur e UI() ; on ui viene

s el-to il dispositivo (il ui nome verrà quindi s ritto nel le XML tramite metodo

writeSour eName(sour e, fileSour e)). Nel aso in ui il le sia già

esi-stente inve e i si limita, tramite il metodo Sour e readSour eName(sour es,

fileSour e), aleggereilnome dellaperiferi adidefault ela siutilizzaper

ef-fettuarelas ansione. Laperiferi aviene ri er ata nell'array he ontienel'elen o

deidispositividi s ansione ollegatiallapropria ma hina

Sour e[℄ sour es = Sour eManager.instan e().g etA llSo ur e s(); .

Per quanto riguarda inve e le periferi he utilizzate, ho veri ato il

funziona-mento dell'appli azione sutre diversi dispositivi:

HP Photosmart C4780: tale appare hio è un dispositivo multifunzione (s anner e stampante); non prevede il ari amento automati o dei fogli,

he devono esserequindi posizionatimanualmente. Perun orretto utilizzo

dell'appli azione è onsigliato disabilitare l'interfa ia utente del software

proprietario.

HPS anjet 5550 : s anner dotatodifunzionediauto-alimentazionedei fo-glida digitalizzare. E' stato quindi possibile testare una delle funzionalità

messe a disposizione da JTwain: l'a quisizione in su essione di più

do u-menti. Sono stati eseguiti dei test in ambiente WindowsXP emulato, per

man anza didriver ompatibili on versioni Windows più re enti.

Apple iPhone: se onnesso al omputer tramite avo USB, viene ri ono-s iuto ome una foto amera digitale. Per poterlo utilizzare orrettamente

ène essario attivarel'interfa iautente(sour e.setEnableUI(true)) he

permette la s elta delle immagini salvate nel telefono ed il onseguente

(33)

Figura 3.5: Dettaglio dell'interfa ia utente per laselezione di un leda iPhone

Com'èpossibilenotaredaisegmentidi odi eriportati,l'utilizzodellalibreria

JTwain non è parti olarmente omplesso; tuttavia si deve prestare attenzione

alla gestione del Sour eManager: se i si dimenti a di porre nelblo o finally

il omandoSour eManager. loseSour eMa nage r(), simandainout of memory

(34)

CMS, ECM ed Alfres o

Comegiàdetto,ilprogettoa uiholavoratoha ome obiettivoquellodiinviarei

do umentis ansionatiadun sistemado umentale(nella fattispe ieAlfres o)per

essere poi elaborati dagli operatori di ba k o e. Seguirà ora un'introduzione

sulle soluzioni di CMS ed ECM ed una des rizione di quello he è onsiderato il

sistemado umentale open sour e più onos iuto ed utilizzato,Alfres o.

Il Content Management System (CMS) è un sistema software (lato server)

essenziale per l'azienda he voglia implementare un progetto di knowledge

ma-nagement 1

. È un insieme di te ni he, di omandi, di metodi he onsentono di

automatizzare la ra olta, la gestione, la ri er a e la pubbli azione di ontenuti

aziendali(qualsiasi sia il tipoa uiessi appartengono). In parti olare i Content

Management System possono  ontrollare i pro essi di reazione e distribuzione

delle informazioni e, di onseguenza, sono in grado di onos ere il valore delle

informazioni ed a hi esse sono destinate. In generale i CMS sono

onsidera-ti sistemi he gestis ono quei ontenuti he ne essitano di una pubbli azione ed

una onsultazioneonline, he siaInterneto una Intranet aziendale. Esistonopoi

CMS reati appositamenteper un parti olare tipodi ontenuto (un'en i lopedia

on-line,un blog, un forum) ed altri he sono inve e più generi ieessibili e

on-sentono lapubbli azionedi tipidierenti.

I CMS più evoluti sono omposti da tre spe i i moduli, he orono ias uno

unapropriaparti olarepotenzialità: lara olta,lagestioneelapubbli azionedei

1

Knowledge Management: termine oniato nel 1986 da Karl Wiig, he indi a una varietà

diprati heedistrategieusateall'internodiun'organizzazionepermigliorarela ollaborazione

e l'e ienza dei gruppi di lavoro. In parti olare, mediante un sistema di ondivisione della

onos enzae dell'esperienza he ognimembro del gruppo hamaturato neglianni, si mira ad

(35)

ontenuti. Lara olta ostituis elaprimafasedelsistemaedin orporaleazioni

di reazione ed a quisizionedelle informazioni;una voltaa quisitedevono essere

onvertite in un formato universale (ad esempio XML) ed asso iate ad al uni

metadati he ne fa ilitino l'organizzazione, l'ar hiviazione e la ri er a. La

ge-stione dei ontenuti, su essiva allara olta,avviene attraverso appositiar hivi

(digitali)in ui vengono memorizzatii le; inne il sistema di pubbli azione

permettel'impiegodelle informazionira olteperqualsiasi tipodipubbli azione

(newsletter, do umentipronti perla stampa,in sitiweb).

I motivi he spingono un'organizzazioneadadottare un CMS sono

fondamental-mentedue:

la grande quantità di informazioni da gestire, he altrimenti andrebbero analizzateepro essatemanualmente( on onseguenteaggravionei ostidi

gestione);

ilnumero dipersone oinvolte nelpro essodi reazione edella gestionedei ontenuti. Qualorainfattila reazionedei ontenutifossegestitadaun

uni- oautore,essotenderebbeadavere unpropriostilediimmagazzinamento

delle informazioni. Nel aso in ui i ontenuti siano inve e reati da molte

persone,diventane essarioadottareuna seriediregoleediformalizzazioni.

Un CMS permette diappli are on sempli ità talivin oli, onsentendo

al-l'azienda di de idere qualisono le regole he ilsistema deve adottare e he

di onseguenza ias un autoredeve rispettare.

A anto ai CMS troviamo poi gli Enterprise Content Management (ECM);

spesso questi due termini vengono onfusi, ma presentano aratteristi he

die-renti he ne permettono la distinzione. Una soluzione di ECM, infatti, è un

insieme di te nologie he onsentono la gestione della do umentazione prodotta

e ri evuta all'interno di un'organizzazione, indipendentemente dal suo formato.

Più headaspettisoftware, essosiriferis eadunastrategiadi reazione,

a quisi-zione, salvataggio,gestione, onservazione e ondivisione dei ontenutiaziendali,

senza avere un parti olaresistema (software) he aiuti in questo ompito.

Spesso si fa un distinguo tra informazioni strutturate e non strutturare. Le

in-formazioni strutturate onsistono in dati he si ripetono in una forma sempre

identi a o quasi; essi mantengono la lorostruttura an he dopo lunghi periodi di

tempo. Le informazioni strutturate possono essere gestite in maniera e iente

neidatabase relazionali.

(36)

on-tenuti in do umenti audio, video o in immagini; dati sotto forma di linguaggio

naturale, di pixel, di ampioni audio o di frame video sono più di ili da

pro- essare: dovrebbero essere ategorizzati in maniera e iente per poter essere

ri er abilieritrovabilian he dopomoltianni. I sistemi ECM uranola gestione

propriodi questi tipidi informazioni.

Leaziende, olpassaredeglianni,hanno ompreso omelapropriari hezzanon

derividallaquantitàdelleinformazioni he ir olanoallorointerno,quantodalla

apa ità di fruirne in maniera e iente. L'automazione dei pro essi di gestione

dei ontenutielalorointegrazione on idiversi sistemidibusiness onsentono di

ridurretempi e osti, determinando una notevole res ita dell'e ienza

azienda-le.

Una soluzione di ECM permette quindi di atalogare, organizzare, ar hiviare,

ondividere e spedire ogni tipologia di do umento; grazie agli ECM tutti gli

utenti avranno disponibile, in qualsiasi momento ed in qualunque luogo,

l'ulti-maversione aggiornatain temporeale deldo umento e,seautorizzati, potranno

revisionarla o modi arla. Tale pro esso porta notevoli bene i all'interno di

un'organizzazione: una maggior e ienza e tempestività delle informazioni, un

abbattimentodei ostielariduzionedeitempidiri er a, onunimpattopositivo

sulsoddisfa imento della lientela.

Come naturale evoluzione ed integrazione tra questi due CM, si è assistito

alla nas ita degli Enterprise Content Management System (ECMS) per la

ge-stione do umentale. I software ECMS sono dei prodotti reati on lo s opo di

integrarele aratteristi hedeiCMSaquelledegliECM equindidirealizzareuno

strumento he ora,inun uni osistema,un sempli eutilizzodellefunzioni quali

la attura, l'organizzazione, l'indi izzazione, la onservazione, la trasformazione

e la pubbli azione di qualsiasi tipo di ontenuto e di do umento riguardante i

pro essi interni alle aziende. Il primo ed immediato vantaggio oerto è quello

di onsentire una totale (o quasi) sostituzione di un ar hivo si o/ arta eo on

uno digitale(garantendo osì an he un notevolerisparmiointerminie onomi i);

inoltreuna orretta gestionefa ilitala ri er adei do umential suo interno.

TraimoltiECMSesistentispi aAlfres o, heèri onos iuto omeilSoftwaredi

ECM/gestionedo umentalepiùavanzatotraquellidisponibilisulmer atoe,

det-taglionontras urabile,opensour e. Natonel2005,ilgruppodilavorodiAlfres o

possiede un'esperienza nel settore della gestione do umentale davvero notevole;

bastipensare heilteamdisviluppoèdirettodapersonediassoluta ompetenza,

(37)

OpenText e Vignette (importanti soluzioni di CM). Alfres o si pone in

opposi-zione alle tradizionalite nologie do umentaliproprietarie: queste sono soluzioni

molto ostose, estremamente omplesse e spesso po o personalizzabili, he ne

li-mitanoil ontrollodapartedel liente. IlsupportodiAlfres oaglistandardopen

sour e ed aperti ome CMIS(Content Management InteroperabilityServi es) fa

diAlfres olapiattaformaadattaasupportarelagestionedeldo umentale

azien-dale. Alfres o, nella sua versione Enterprise (a pagamento) è utilizzata daoltre

2.500 aziendedistribuite su55 Paesi diversi. LapiattaformaAlfres o 4(l'ultima

versionerilas iata)èstata testatainambientilavorativi on più di100 milionidi

do umentie on de inedimigliaiadi utenti. I bene idell'utilizzodi Alfres osi

possono riassumere neiseguenti punti:

fa ilitàdiutilizzo;

elevata produttivitànello sviluppo delle soluzioni;

bene iderivatida ollaborazionegrazieaforumetemplatepre- ongurati;

ri er he avanzate/Knowledge Management;

ar hitetture distribuite;

open sour e.

Andando piùneldettaglio,voglioanalizzare l'ar hitettura diAlfres o: si

pre-senta ome una web appli ation Java, pertanto è eseguibile su tutti i tipi di

piattaforma; per la propria ese uzione Alfres o fa uso di un ontainer Tom at 2

,

di un database relazionale PostgreSQL 3

e della jdk versione 1.6. Per la

omuni- azione on Alfres osono supportati diversi proto olli,CIFS (Common Internet

File System), FTP, HTTP. Per le personalizzazioni Alfres o espone, oltre alle

proprie API, una serie di servizi SOAP 4

o REST 5

modi abili a se onda delle

propriene essità.

2

Tom at: èun ontenitoreservletopensour e hefornis eunapiattaformaperl'ese uzione

diwebappli ationJava. ÈsviluppatodallaApa heSoftwareFoundation.

3

PostgreSQL:èundatabaserelazionalerilas iato onli enzaBDS.

4

Simple Obje t A ess Proto ol: è un proto ollo leggero per lo s ambio di messaggi tra

omponentisoftware.

5

RepresentationalStateTransfer: èuninsiemedi prin ipidi ar hitetturedirete, he

deter-minano ome le risorse siano denite ed indirizzate. Il termineè spessousato perdes rivere

ognisempli einterfa ia hetrasmettedatisuproto olloHTTPsenzaunlivelloopzionale ome

(38)

Lagestione dei ontenutiavviene utilizzando una serie difunzioni indispensabili

per un ECM, ome:

attributi o tag perla lassi azionedeido umenti;

versionamenti pertener tra ia delle modi he eettuate;

lo k e unlo k nel momento in ui si va a modi are un do umento o si rilas iaun do umentodopo una modi a;

full text sear h perla ri er adi testo indo umenti ontenuti neidatabase.

All'internodellavoroditesi,Alfres ohaassuntoilruolodiba k-enddo umentale.

Sarebbe stato possibile in alternativa reare un database relazionale ed

organiz-zare manualmenteillesystem, realizzando inquesto modoun do umentale del

tutto personalizzato, ma iò avrebbe portato ad inutilisforzi (ed un impiego di

tempo non indierente) data la presenza di un sistema ECM ome Alfres o he,

nellasuaversioneCE(CommunityEdition),ètotalmentegratuitoedimplementa

tutti iservizi ne essari al onseguimentodelmio progetto.

Lasuainstallazioneèestremamentesempli eenon presentapassaggi ompli ati:

èsu ientes ari arel'installerdalsitohttp://wiki.alfres o. om /wik i/Do

wn-load_and_Install_Alfres o ed avviarlo sulla propria ma hina. L'uni a

per-sonalizzazione a ui si deve prestare attenzione è il setting della porta su ui

Alfres oesporràipropri servizi. Quelladidefault èlanumero8080: ène essario

assi urarsi, quindi, he non vi siano altriservizi attivi su tale porta. Se si fosse

ostretti a ambiare porta, è su iente modi are il le server.xml ontenuto

nella artelladi ongurazione diTom at.

4.1 Lo standard CMIS

Perinviareildo umentodigitalizzatoalsistemado umentale sonostatiappli ati

due diversi appro i. La prima via intrapresa è stata quella di avvalersi delle

librerie Java OpenCMIS, il ui s opo è rendere lo standard CMIS sempli e da

implementare per gli sviluppatori Java. La se onda via sarà inve e espli ata in

4.3.

CMIS (Content Management Interoperability Servi es) è uno standard ideato

per rendere più e iente l'interoperabilità e la omuni azione tra sistemi ECM

(39)

open.org/ mis/CMIS/v1.0/ s 01/ mis- spe -v1. 0.ht ml)fornis ono

un'interfa - ia Web servi e he è indipendente dal tipo di linguaggio utilizzato (language

agnosti ), poi hé REST e SOAP sono implementate in molti linguaggi di

pro-grammazione. CMIS presenta tre asi d'uso fondamentali:

Repository-to-Repository(R2R):a adequandoduerepository er ano di omuni are direttamente l'uno on l'altro. Ciò a ade in parti olare

quando si opera una gestione entralizzata dei re ord o quando devono

essere pubbli ati dei ontenuti da un repository ad un'altro. Un esempio

può essere il aso in ui si si voglia pubbli are un ontenuto presente in

un ECM direttamente su un WCM (Web Content Management) per la

pubbli azionesulla rete Intra/Internet.

Appli ation-to-Repository (A2R): avviene se un'appli azione he uti-lizza ontenuti è ollegata ad un repository in grado di gestirli. È il aso

implementato nel progetto e verrà illustrato in maniera approfondita nel

prosieguo dell'elaborato.

Federated Repositories (FR): è il aso in ui un'appli azione, on una singolainterfa ia,sirapporta ondierentirepository. Avvienead

esem-pio nel aso in ui sia eettuata una Federated Sear h, ovvero una ri er a

orientataa più repository.

4.1.1 Il Modello Con ettuale (Domain Model)

Il modello on ettuale dellostandard CMISdenis e iseguentielementi:

Oggetti: rappresentano le entità ontenute nei repository. Ogni oggetto appartieneaduna ategoria (otipo,intotalesono4): Cartelle,Do umenti,

Relazionie Poli y. Cias un oggetto èidenti atoo daun ID univo o epuò

essere asso iato ad una serie di proprietà (denite dal tipo di oggetto. In

aggiunta alle proprietà, gli oggetti posseggono altriattributi (Versionable,

Fileable, Queryable) he ne identi ano il omportamento all'interno del

repository.

 Do umenti: rappresentano le entità per ui viene utilizzato un

repo-sitory. I do umenti sono gli uni i oggetti he godono della proprietà

Versionable ed il uivalore può essere interrogato attraverso CMIS;

 Cartelle: sono dei ontenitori utilizzati per organizzare i do umenti

all'internodelrepository. Cias una artellahaun per orso,

(40)

denita in modo tale he sia limitata a ontenere solo oggetti di un

tipo spe i o;

 Relazioni: denis ono relazioni tra due oggetti (sour e e target)

ap-partenenti al repository. Modi ando la relazione, non si apportano

modi he aglioggetti sorgenteed obiettivo. Glioggettirelazionesono

opzionaliperle repositori CMIS- ompliant;

 Poli y: an h'essi sono oggettiopzionali he possonoesser appli atiad

oggetti ontrollabili e denis ono riteriamministrativisulla gestione

degli stessi. Una poli y non è direttamente modellatadallo standard

CMIS e può esser appli ataapiù le, osi ome un lepuò godere di

più di una poli y. Una poli y appli ata ad oggetti ontrollabili non

può esser an ellata. Peresempio,unaLista di Controllodegli A essi

(ACL) è un oggettodi tipo poli y;

Proprietà: leproprietà sonovaloriasso iatia ias unoggetto. Le proprie-tàpossono esserea valore singoloomultivalore e ias una diesse è diuno

spe i o tipo (testo, numero intero, e ...). Ci sono proprietà he possono

esseresololette, altre he possonoessere aggiornateinparti olariintervalli

temporali.

Controllodegli A essi: èutilizzatoperspe i are hi(e on he tipodi permessi)puòtrattareunparti olareoggettodelrepository. Seilrepository

losupporta, allora la ListadiControllo degli A essi è appli ataa ias un

oggetto. CMISdenis etretipidipermesso: lettura,s rittura,edentrambi;

ChangeLog: ilrepositorypuò mantenereunlogopzionale ontenenteuna vo e per ogni modi a eettuata ai ontenuti del repository. Le vo i del

login ludono l' identi ativodell'oggetto modi ato ed il tipo dimodi a

( reazione,aggiornamento, an ellazione).

4.1.2 I Servizi

CMISoreall'utenteuna serie diservizi he possono onsentire al une

funziona-lità opzionali, quindi non supportate da tutti i sistemi do umentali. Tra questi

troviamo:

servizi di repository

 Get Repositories: per ottenere la lista dei repository a essibili

(41)

 Get Repository Info: perottenereinformazioniriguardoun repository

spe i o;

 Get Type Children, Get Type Des endant: omandi per onos ere il

tipodi oggettoinun repository;

 Get Type Denition: omando utilizzato per ottenere una lista di

proprietà riguardanti un tipo dioggetto spe i o;

servizi di navigazione

 Get Folder Tree, Get Des endants, Get Children: per re uperare i

riferimentiagli oggettiglio diun parti olareoggetto spe i ato;

 Get FolderParent, Get Obje tParents: perottenere ilriferimentoalla

artella padre diun oggetto;

servizi di ri er a

 Query: esegueuna query CMIS;

 Get Content Changes: ritorna una lista delle modi he apportare al

repository;

servizi sugli oggetti

 Get Obje t, Get Obje t By Path: ritornaun oggetto;

 Get Properties, GetAllowableA tions,GetRenditions: perre uperare

informazionisu uno o più oggetti;

 CreateRelationship,CreateDo ument,CreateDo umentFromSour e,

Create Poli y, Create Folder: omandiper reareoggetti;

 Update Properties, Move Obje t: metodiperla modi a e

l'aggiorna-mento dei do umenti;

 Delete Obje t, Delete Tree: eseguelarimozionedegli oggetti

spe i a-ti;

 Set Content Stream, Delete Content Stream: aggiorna o an ella il

ontenuto dei do umenti;

servizi di validazione

 Get Properties Of Latest Version, Get Obje t Of Latest Version:

(42)

 Get All Versions: re upera lo stori o delleversioni diun oggetto;

 Che k Out, Che kIn, Can elChe k Out: ontrollaillo k el'unlo k di

un oggetto on lo s opodi onsentirne lamodi a;

 Delete All Versions: eliminalo stori o delleversioni;

vi sono inne ulteriori servizi (di Poli y, di Relazione, di Controllo degli A essi) nei quali si preferis e non addentrarsi, sia per non appesantire

ulteriormente la trattazione del tema, sia per hé sono servizi di ui non si

èfatto uso durante il presentelavoro.

4.1.3 Le librerie OpenCMIS

OpenCMIS èilnomediun progetto Apa he Chemistry, he metteadisposizione

librerie,framework e tool per ilprogrammatore Java he voglia implementare le

spe i he CMIS all'interno del proprio appli ativo. L'obiettivo di OpenCMIS è

quellodirendere sempli edautilizzarelostandard CMISnellosviluppodi

appli- azioniJavalato lienteserver; essonas ondeidettagliimplementativiefornis e

delle omode API e degli strumenti per la reazione di repository di ontenutie

diappli azioni lient.

Perla omuni azione on altrirepository o oni lient,CMISdenis e due

stra-tegie di binding 6

: l'Atom Publishing Proto ol 7

(AtomPub o APP) ed i Web

Servi es 8

.

EssendoAlfres ounate nologiaCMIS- ompliant,esponeentrambiquesti

me a-nismi: nelmioprogettohotestatol'implementazionedelWebServi esbindinged

an he dell'AtomPubbinding. Riportoil odi e, leggibileed intuitivo;i ommenti

suggeris onoil signi ato delle istruzioniutilizzate.

Listing 4.1: AtomPubbinding

6

Binding: un insieme di regole he denis ono ome un terminale (sia esso un lient o

un server) omuni hi on gli altri terminali. Un binding denis e il proto ollo di trasporto

( omeadesempioHTTPoTCP)ela odi a hedev'essereutilizzata( omel'alfabetobinario

piuttosto heiltesto);inoltreunbindingpuò ontenereelementi hespe i anodettagli,quali

ime anismidisi urezzausatiperlos ambiodeimessaggioppureimodellideimessaggi

7

AtomPub: proto ollodilivelloappli azione heutilizzaillivelloditrasportoHTTPperla

pubbli azioneelamodi adirisorseWeb

8

WebServi e: èun omponenteappli ativo(software)ingradodi mettersialserviziodiun

appli azione( hesi di e heesponei servizi) omuni ando sudi unamedesima retetramite

il proto ollo di trasporto HTTP. Un Web Servi e onsente quindi alle appli azioni he vi si

(43)

1

SessionFactory factory = SessionFactoryImpl.newInstance();

2

Map<String, String> parameter =

new

HashMap<String, String>();

3 4

// credenziali utente

5

parameter.put(SessionParameter.USER,

"admin"

);

6

parameter.put(SessionParameter.PASSWORD,

"admin"

);

7 8

// parametri di connessione

9

parameter.put(SessionParameter.ATOMPUB_URL,

"http

://127.0.0.1:8080/alfresco/service/cmis"

);

10

parameter.put(SessionParameter.BINDING_TYPE, BindingType.

ATOMPUB.value());

11

parameter.put(SessionParameter.REPOSITORY_ID,

"50308dd4−2e36

−48e1−9703−a6c53875e822"

);

12 13

// creo sessione

14

Session session = factory.createSession(parameter);

Il parametrodisessioneREPOSITORY_ID èun parametrounivo operogni

installazionediAlfres o,neidenti al'IDdelrepositoryed èindividuabile

trami-te l'a esso allaseguente pagina Web http://[host℄:[port℄/alfr es o / mi

s-browse?url=http://[host℄:[ port ℄/al fres o/ misa tom he riporta una serie

di informazioniriguardanti lapropria installazione.

Come sipuò notaredal frammento di odi e he verrà ora riportato,la

dieren-za implementativatra un AtomPub binding ed un Web Servi es binding risiede

es lusivamentenella denizione deiparametidi onnessione.

Listing 4.2: Web Servi es binding

(44)

11

parameter.put(SessionParameter.WEBSERVICES_DISCOVERY_SERVICE,

"http://localhost:8080/alfresco/cmisws/DiscoveryService?wsdl"

);

12

parameter.put(SessionParameter.WEBSERVICES_MULTIFILING_SERVICE

,

"http://localhost:8080/alfresco/cmisws/MultiFilingService?

wsdl"

);

13

parameter.put(SessionParameter.WEBSERVICES_NAVIGATION_SERVICE,

"http://localhost:8080/alfresco/cmisws/NavigationService?

wsdl"

);

14

parameter.put(SessionParameter.WEBSERVICES_OBJECT_SERVICE,

"

http://localhost:8080/alfresco/cmisws/ObjectService?wsdl"

);

15

parameter.put(SessionParameter.WEBSERVICES_POLICY_SERVICE,

"

http://localhost:8080/alfresco/cmisws/PolicyService?wsdl"

);

16

parameter.put(SessionParameter.

WEBSERVICES_RELATIONSHIP_SERVICE,

"http://localhost:8080/

alfresco/cmisws/RelationshipService?wsdl"

);

17

parameter.put(SessionParameter.WEBSERVICES_REPOSITORY_SERVICE,

"http://localhost:8080/alfresco/cmisws/RepositoryService?wsdl

"

);

18

parameter.put(SessionParameter.WEBSERVICES_VERSIONING_SERVICE,

"http://localhost:8080/alfresco/cmisws/VersioningService?

wsdl"

);

19

parameter.put(SessionParameter.REPOSITORY_ID, 50308dd4−2e36−48

e1−9703−a6c53875e822);

20

21

// creo una sessione

22

Session session = factory.createSession(parameter);

Perunapiù hiaraed approfonditaanalisideiparametridi onnessione,si

riman-daallapagina presente sulsitou iale delprogetto OpenCMIS 9

.

4.2 Realizzazione dell'invio dei le on lo

stan-dard CMIS

Il software da me sviluppato ore all'utente la seguente possibilità: una

vol-ta a quisita l'immagineda s anner, ne permette l'invio al do umentale Alfres o

(installato in lo ale solo per questioni puramente prati he, ma sono stati

rea-9

(45)

lizzati degli invii an he in repository Alfres o remoti). Riporto il metodo void

onne tToAlfres o(String user, String pass, String repoID, String

name, String dir) he in input ri hiede username e password per

l'autenti a-zionedella onnessione,l'IDdelrepositoryAlfres o, ilnome ed ilpathdelleda

inviare nella artella di root del repository (nella fattispe ie si tratta di un le

d'immagine on estensione .ti).

Listing 4.3: Il metodo publi void onne tToAlfres o(String user, String pass,

String repositoryID,String name, Stringdir)

1

public void

connectToAlfresco(String user, String pass, String

repoID, String name, String dir){

2

Session session = Tools.createSession(user, pass,

repositoryID);

3

4

// creo ContentStream

5

ContentStream contentStream =

null;

6

try

{

7

contentStream =

new

ContentStreamImpl(name,

null,

"image/

tiff"

,

new

FileInputStream(dir));

8

}

9

catch

(FileNotFoundException e) {

10

logger.error(

"connectToAlfresco(String, String) −

FileNotFound"

, e);

11

}

12

if

(contentStream !=

null) {

13

Map<String, Object> properties =

new

HashMap<String, Object

>();

14

properties.put(PropertyIds.NAME, contentStream.getFileName()

);

15

properties.put(PropertyIds.OBJECT_TYPE_ID,

"cmis:document"

);

16

17

//creo un documento nella root folder con le proprietà ed il

ContentStream specificati

18

Document doc = session.getRootFolder().createDocument(

properties, contentStream ,

null);

19

}

20

}

In aso si volesse inve e reare o inviare un le in una artella diversa dalla

Riferimenti

Documenti correlati

Grandi Navi Veloci (introduce Ilaria Cavo), Alessandro Ferrari Enolife (introduce Sebastiano Leo), Gianluca Geronimo Guarniflon Spa , Piero Arcangeli. Bayer Spa, Monica Poggio

Nel caso in cui le domande siano più di 100 e qualora il Consiglio Scientifico del Master ritenga di voler ampliare il numero degli iscritti, l’ammissione sui posti

La Carta dei Servizi del “Centro terapeutico riabilitativo intensivo ed estensivo per disturbi dello spettro autistico Valori” individua e rappresenta lo strumento

Per consentire alle Società di effettuare le iscrizioni alle Liste Punti FIS con la massima tranquillità, e garantire agli Atleti stessi di essere presenti nelle

Oggetto: Avviso per la selezione e il reclutamento di un esperto interno per la realizzazione di un corso dal titolo “Programmiamo la Biodiversità” nell’ambito

 Tra i documenti deve essere caricato anche il modello 730-1 con l’indicazione della scelta del 8, del 5 e del 2 per mille.  Dopo aver caricato tutti i documenti e

C APACITÀ E COMPETENZE PERSONALI Acquisite nel corso della vita e della. carriera ma non necessariamente riconosciute da certificati e diplomi

AUTONOMIA DELLE STUDENTE se lo studente risiede fuori dall’unita abitativa della famiglia di origine da almeno 2 anni rispetto alla data di presentazione della