Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Tesi-Todone

516 views

Published on

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

  • Be the first to comment

  • Be the first to like this

Tesi-Todone

  1. 1. 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
  2. 2. Premessa: GEC <ul><li>Programma di contabilità creato e mantenuto da MIDA4 </li></ul><ul><li>Sviluppato in Visual Basic 6 </li></ul><ul><li>È un software già stabile e diffuso </li></ul>
  3. 3. GEC: due versioni <ul><li>normale : </li></ul><ul><ul><li>Esegue in un ambiente Windows </li></ul></ul><ul><ul><li>Accede eventualmente alla rete solo per recuperare aggiornamenti e informazioni di licenza </li></ul></ul>
  4. 4. GEC: due versioni <ul><li>ASP : </li></ul><ul><ul><li>Esegue su un server remoto ed è accessibile solo tramite Internet </li></ul></ul><ul><ul><li>L'utente utilizza un software di remote desktop per poter interagire col programma </li></ul></ul>Internet
  5. 5. Problema (requisiti) <ul><li>Aggiungere funzionalità di archiviazione elettronica a GEC </li></ul><ul><ul><li>senza modificare “troppo” il codice sorgente di GEC </li></ul></ul><ul><ul><li>senza introdurre problemi di manutenibilità </li></ul></ul><ul><ul><li>permettendo di mantenere la retrocompatibilità </li></ul></ul><ul><ul><li>senza introdurre differenze di utilizzo tra le configurazioni (normale / ASP) </li></ul></ul>
  6. 6. Archiviazione? <ul><li>Funzionalità desiderate: </li></ul><ul><ul><li>Acquisire documenti cartacei </li></ul></ul><ul><ul><li>Corredarli di informazioni aggiuntive </li></ul></ul><ul><ul><li>Inviarli ad un servizio ( remoto ) di archiviazione </li></ul></ul>
  7. 7. La soluzione proposta: architettura Plug in Plug in SyncUtils SyncUtils GEC_Scan Plug in manager dotNetTwain GEC
  8. 8. Architettura: configurazione normale Plug in Plug in SyncUtils SyncUtils GEC_Scan GEC Plug in manager dotNetTwain
  9. 9. Architettura: configurazione ASP Plug in Plug in Internet SyncUtils SyncUtils GEC_Scan GEC Plug in manager dotNetTwain
  10. 10. <ul><li>Il calcolatore dell'utente deve poter accettare le richieste che GEC invia, sia da locale che da remoto: </li></ul><ul><ul><li>Firewall? </li></ul></ul><ul><ul><li>NAT/NAPT? </li></ul></ul>Comunicazioni: difficoltà SyncUtils GEC_Scan SyncUtils SyncUtils GEC_Scan GEC Plug in
  11. 11. <ul><li>È una libreria che astrae il mezzo di comunicazione e di sincronizzazione tra GEC e GEC_Scan </li></ul><ul><li>È stata sviluppata appositamente per risolvere le difficoltà di comunicazione </li></ul><ul><li>Utilizza un file system condiviso per scambiare dati </li></ul>SyncUtils SyncUtils SyncUtils GEC_Scan GEC GEC_Scan Plug in GEC SyncUtils SyncUtils
  12. 12. SyncUtils <ul><li>Accesso Esclusivo tramite file di lock </li></ul>SyncUtils SyncUtils SyncUtils LOCK FILE LOCK FILE GEC_Scan Plug in
  13. 13. <ul><li>Scambio informazioni di esecuzione tramite file XML </li></ul>SyncUtils SyncUtils SyncUtils SyncUtils LOCK FILE DATA LOCK FILE GEC_Scan Plug in
  14. 14. GEC_Scan <ul><li>È un programma che esegue sul calcolatore dell' utente </li></ul><ul><li>Permette di acquisire immagini da uno scanner ed organizzarle in documenti </li></ul>GEC_Scan Plug in SyncUtils
  15. 15. GEC_Scan <ul><li>La finestra principale resta nascosta finchè non arriva una richiesta da GEC (tramite SyncUtils) </li></ul>GEC_Scan Plug in SyncUtils
  16. 16. <ul><li>L'interfaccia con lo scanner viene gestita tramite TWAIN </li></ul><ul><li>Per utilizzare TWAIN è stato creato un wrapper : dotNetTwain </li></ul>GEC_Scan GEC_Scan GEC_Scan Plug in SyncUtils dotNetTwain
  17. 17. GEC_Scan <ul><li>Alla pressione del tasto “Memorizza”, GEC_Scan esegue dei plug in </li></ul>Plug in Plug in GEC_Scan GEC_Scan Plug in SyncUtils
  18. 18. <ul><li>Plug in: codice eseguibile che può essere sviluppato e distribuito separatamente dal programma principale </li></ul><ul><li>Sviluppato un plug in manager per permettere l'estendibilità di GEC_Scan tramite plug-in </li></ul>Plug in Plug in Plug in GEC_Scan Plug in GEC_Scan SyncUtils Plug in manager
  19. 19. Plug in <ul><li>GEC_Scan accede al servizio di archiviazione attraverso una interfaccia uniforme </li></ul><ul><li>Ogni plug in implementa l'interfaccia per un determinato servizio </li></ul>Plug in Plug in GEC_Scan SyncUtils Plug in
  20. 20. Plug in <ul><ul><li>È stata sviluppata una libreria che presenta i servizi di archiviazione remota in modo simile ad un file system </li></ul></ul><ul><ul><li>Ciò semplifica la struttura interna dei plug in </li></ul></ul><ul><ul><li>Le sue funzionalità di base sono: </li></ul></ul><ul><ul><ul><li>Enumerazione del contenuto di una cartella </li></ul></ul></ul><ul><ul><ul><li>Creazione di una cartella </li></ul></ul></ul><ul><ul><ul><li>Upload di un file </li></ul></ul></ul><ul><ul><ul><li>Download di un file </li></ul></ul></ul><ul><ul><ul><li>Eliminazione di un file o una cartella </li></ul></ul></ul>GEC_Scan SyncUtils Plug in
  21. 21. Sharepoint <ul><li>Server per la suite Office </li></ul><ul><li>Permette la redazione collaborativa di documenti </li></ul><ul><li>Esporta dei servizi sotto forma di web service SOAP </li></ul>GEC_Scan SyncUtils Plug in
  22. 22. Sharepoint <ul><li>È organizzato in siti </li></ul><ul><li>Ogni sito può contenere delle liste </li></ul><ul><li>Ogni lista può contenere degli oggetti: </li></ul><ul><ul><li>File </li></ul></ul><ul><ul><li>Cartelle </li></ul></ul><ul><ul><li>Appuntamenti </li></ul></ul><ul><li>Il web service Lists.asmx permette la gestione degli oggetti in una lista </li></ul><ul><li>Alcune operazioni vengono svolte tramite CAML (un linguaggio di query basato su XML) </li></ul>GEC_Scan SyncUtils Plug in
  23. 23. Google Documents <ul><li>Servizi gestiti da Google (nessun bisogno di installazione o manutenzione) </li></ul><ul><li>Utilizza il protocollo Atom Publishing Protocol </li></ul>GEC_Scan SyncUtils Plug in
  24. 24. Google Documents <ul><li>Ogni tipologia di servizio fa capo ad un feed </li></ul><ul><li>Richieste e risposte fanno uso esteso delle intestazioni http </li></ul><ul><li>L'utilizzo avviene ad alto livello grazie alle implementazioni delle Google Data API </li></ul><ul><li>L'ultima release è la 3.0 </li></ul><ul><li>È stata usata l'ultima release stabile: 2.0 </li></ul>GEC_Scan SyncUtils Plug in
  25. 25. Tester
  26. 26. Domande?

×