tesi-todone

26
Progetto e realizzazione di una infrastruttura modulare per acquisizione ed archiviazione remota di documenti LAUREANDO Giancarlo Todone CORRELATORE Ing. Giorgio Davanzo RELATORE Prof. Alberto Bartoli Anno Accademico 2008/2009

Upload: guestb31690c

Post on 06-Dec-2014

690 views

Category:

Technology


0 download

DESCRIPTION

Presentazione "lunga" (20 min) del progetto di tirocinio/tesi svolto da Todone Giancarlo presso la MIDA4

TRANSCRIPT

Page 1: Tesi-Todone

Progetto e realizzazione di una infrastruttura modulare per

acquisizione ed archiviazione remota di documenti

LAUREANDOGiancarlo Todone

CORRELATORE Ing. Giorgio Davanzo

RELATOREProf. Alberto Bartoli

Anno Accademico 2008/2009

Page 2: Tesi-Todone

Premessa: GEC

Programma di contabilità creato e mantenuto da MIDA4

Sviluppato in Visual Basic 6 È un software già stabile e diffuso

Page 3: Tesi-Todone

GEC: due versioni

normale: Esegue in un ambiente Windows Accede eventualmente alla rete solo per

recuperare aggiornamenti e informazioni di licenza

Page 4: Tesi-Todone

GEC: due versioni

ASP: Esegue su un server remoto ed è accessibile solo

tramite Internet L'utente utilizza un software di remote desktop per

poter interagire col programma

Internet

Page 5: Tesi-Todone

Problema (requisiti)

Aggiungere funzionalità di archiviazione elettronica a GEC senza modificare “troppo” il codice sorgente di GEC senza introdurre problemi di manutenibilità permettendo di mantenere la retrocompatibilità senza introdurre differenze di utilizzo tra le

configurazioni (normale / ASP)

Page 6: Tesi-Todone

Archiviazione?

Funzionalità desiderate: Acquisire documenti cartacei Corredarli di informazioni aggiuntive Inviarli ad un servizio (remoto) di archiviazione

Page 7: Tesi-Todone

La soluzione proposta: architettura

Syn

cUtil

s

Syn

cUtil

s

GE

C_S

can

Plug in Plug in

Plug in manager

dotNetTwain

GEC

Page 8: Tesi-Todone

Architettura: configurazione normale

Syn

cUtil

s

Syn

cUtil

s

GE

C_S

can

Plug in

GEC

Plug in

Plug in manager

dotNetTwain

Page 9: Tesi-Todone

Architettura: configurazione ASP

Syn

cUtil

s

Syn

cUtil

s

GE

C_S

can

Plug in

GEC

Plug in

Plug in manager

dotNetTwain

Internet

Page 10: Tesi-Todone

Il calcolatore dell'utente deve poter accettare le richieste che GEC invia, sia da locale che da remoto: Firewall? NAT/NAPT?

Comunicazioni: difficoltàS

yncU

tils

GE

C_S

can

Syn

cUtil

s

Syn

cUtil

s

GE

C_S

can

GEC

Plu

g in

Page 11: Tesi-Todone

È una libreria che astrae il mezzo di comunicazione e di sincronizzazione tra GEC e GEC_Scan

È stata sviluppata appositamente per risolvere le difficoltà di comunicazione

Utilizza un file system condiviso per scambiare dati

SyncUtilsS

yncU

tils

Syn

cUtil

s

GE

C_S

can

GEC

GE

C_S

can

Plu

g in

GEC

Syn

cUtil

sS

yncU

tils

Page 12: Tesi-Todone

SyncUtils

Accesso Esclusivo tramite file di lock

Syn

cUtil

s

Syn

cUtil

s

Syn

cUtil

s

LOCK FILELOCK FILE LOCK FILELOCK FILE

GE

C_S

can

Plu

g in

Page 13: Tesi-Todone

Scambio informazioni di esecuzione tramite file XML

SyncUtilsS

yncU

tils

Syn

cUtil

s

Syn

cUtil

s

LOCK FILELOCK FILEDATADATA LOCK FILELOCK FILE

GE

C_S

can

Plu

g in

Page 14: Tesi-Todone

GEC_Scan

È un programma che esegue sul calcolatore dell'utente

Permette di acquisire immagini da uno scanner ed organizzarle in documenti

GE

C_S

can

Plu

g in

Syn

cUtil

s

Page 15: Tesi-Todone

GEC_Scan

La finestra principale resta nascosta finchè non arriva una richiesta da GEC (tramite SyncUtils)

GE

C_S

can

Plu

g in

Syn

cUtil

s

Page 16: Tesi-Todone

L'interfaccia con lo scanner viene gestita tramite TWAIN

Per utilizzare TWAIN è stato creato un wrapper : dotNetTwain

GEC_ScanG

EC

_Sca

n

GE

C_S

can

Plu

g in

Syn

cUtil

s

dotNetTwain

Page 17: Tesi-Todone

GEC_Scan

Alla pressione del tasto “Memorizza”, GEC_Scan esegue dei plug in

GE

C_S

can

GE

C_S

can Plug in

Plug in

Plu

g in

Syn

cUtil

s

Page 18: Tesi-Todone

Plug in: codice eseguibile che può essere sviluppato e distribuito separatamente dal programma principale

Sviluppato un plug in manager per permettere l'estendibilità di GEC_Scan tramite plug-in

Plug in

Plug in

Plug in

GE

C_S

can

Plu

g in

GE

C_S

can

Syn

cUtil

s

Plug in manager

Page 19: Tesi-Todone

Plug in

GEC_Scan accede al servizio di archiviazione attraverso una interfaccia uniforme

Ogni plug in implementa l'interfaccia per un determinato servizio

Plug in

Plug in

GE

C_S

can

Syn

cUtil

sP

lug

in

Page 20: Tesi-Todone

Plug in

È stata sviluppata una libreria che presenta i servizi di archiviazione remota in modo simile ad un file system

Ciò semplifica la struttura interna dei plug in Le sue funzionalità di base sono:

Enumerazione del contenuto di una cartella Creazione di una cartella Upload di un file Download di un file Eliminazione di un file o una cartella

GE

C_S

can

Syn

cUtil

sP

lug

in

Page 21: Tesi-Todone

Sharepoint

Server per la suite Office Permette la redazione collaborativa di

documenti Esporta dei servizi sotto forma di web

service SOAP

GE

C_S

can

Syn

cUtil

sP

lug

in

Page 22: Tesi-Todone

Sharepoint

È organizzato in siti

Ogni sito può contenere delle liste

Ogni lista può contenere degli oggetti: File

Cartelle

Appuntamenti

Il web service Lists.asmx permette la gestione degli oggetti in una lista

Alcune operazioni vengono svolte tramite CAML (un linguaggio di query basato su XML)

GE

C_S

can

Syn

cUtil

sP

lug

in

Page 23: Tesi-Todone

Google Documents

Servizi gestiti da Google (nessun bisogno di installazione o manutenzione)

Utilizza il protocollo Atom Publishing Protocol

GE

C_S

can

Syn

cUtil

sP

lug

in

Page 24: Tesi-Todone

Google Documents

Ogni tipologia di servizio fa capo ad un feed

Richieste e risposte fanno uso esteso delle intestazioni http

L'utilizzo avviene ad alto livello grazie alle implementazioni delle Google Data API

L'ultima release è la 3.0 È stata usata l'ultima release stabile: 2.0

GE

C_S

can

Syn

cUtil

sP

lug

in

Page 25: Tesi-Todone

Tester

Page 26: Tesi-Todone

Domande?