NUXEO-DIFF-VERSION: REALIZZAZIONE DI UN PLUG-IN

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "NUXEO-DIFF-VERSION: REALIZZAZIONE DI UN PLUG-IN"

Transcript

1 UNIVERSITÀ DEGLI STUDI DELL INSUBRIA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI CORSO DI LAUREA IN INFORMATICA NUXEO-DIFF-VERSION: REALIZZAZIONE DI UN PLUG-IN PER LA COMPARAZIONE DI UN FILE SU NUXEO Relatore PROF. DAVIDE TOSI Correlatore PROF. DAVIDE TAIBI Tesi di laurea di: ANTONIO URSO MATR ANNO ACCADEMICO

2 La teoria è quando si sa tutto e niente funziona. La pratica è quando tutto funziona e nessuno sa il perché. Noi abbiamo messo insieme la teoria e la pratica: non c'è niente che funzioni... e nessuno sa il perché! (Albert Einstein)

3 Indice generale 1 Introduzione Software Open Source e Closed Source Soluzioni software Closed Source Sistemi Software Open Source Sistemi di gestione documentale Sistemi di gestione documentale Closed Source Sistemi di gestione documentale Open Source Il Sistema di Enterprise Content Management Nuxeo Introduzione a Nuxeo Sistema di gestione documentale - Nuxeo DM Sistemi di Gestione Contenuti Multimediali - Nuxeo DAM Framework di Sviluppo - Nuxeo CMF Piattaforma Enterprise - Nuxeo EP Servizi e API - Nuxeo Api Connettori Nuxeo Soluzioni Client - Nuxeo UI frameworks Il Plug-in Nuxeo-Diff-Version Definizione dei requisiti Piano di lavoro L'architettura di Nuxeo-Diff-Version Progettazione del pacchetto org.nuxeo.diffversionpkg Progettazione del pacchetto org.nuxeo.diffmatchpkg Progettazione del pacchetto org.nuxeo.diffmatchpkg Implementazione del plug-in Visione d'insieme dell'albero della cartelle Il file deployment-fragment.xml Il file POM Il file MANIFEST.MF I file messages.properties File seam.properties e JavaScript Implementazione del pacchetto diffversionepkg Implementazione del pacchetto org.nuxeo.typedocpkg Implementazione del pacchetto org.nuxeo.diffmatch I template JSF e JavaScript Casi d'uso Conclusioni e sviluppi futuri...61 Appendice A...62

4

5 Capitolo 1 Introduzione 1 Introduzione Sistemi software per la gestione documentale sono ormai necessari in quei contesti aziendali dove la quantità di documenti da archiviare e condividere tra i vari dipendenti è elevata. Ci sono diverse soluzioni software disponibili sul mercato, sia di tipo Closed Source che Open Source. Spesso le soluzioni Open Source hanno un elevato livello qualitativo ma un numero di funzionalità ridotte infatti la cosa che l'utente non può fare a meno di notare è la mancanza di certi tipi di funzionalità quali quella che è materia principale di questa tesi e cioè di un comparatore di differenze tra versione di un stesso file. Obiettivo della tesi è ingegnerizzare e implementare tramite il meccanismo dei plug-in un componente di grande importanza per i sistemi di gestione documentale: Nuxeo-diff-version Abbiamo sviluppato il componente per un sistema reale di gestione documentale Nuxeo, questo componente deve gestire la comparazione tra due diverse versioni dello stesso file. Il Plug-In gestisce quattro tipi di files, PDF, ODT (open office), Word, e i file txt. Il lavoro di tesi è quindi volto ad analizzare, sviluppare, implementare 1

6 e verificare le tecnologie coinvolte per poter portare a buon fine il lavoro stesso. I requisiti fondamentali che si sono ottenuti da questo prodotto sono: Funzionalità: comparazione tra due diverse versioni, mostrando il risultato in formato HTML. Integrazione: si deve realizzare un Plug-In in linguaggio Java, utilizzando la tecnologia JSF e Seam JBoss ed inserirlo correttamente in Nuxeo DM. La scelta è caduta su Nuxeo, perché rispetto ad altri prodotti della stessa fascia è più attuale e anche perché, come vedremo più avanti ha un'architettura innovativa e molto interessante da studiare, soprattutto dalla parte dello sviluppatore. E' stato deciso di sviluppare questo Plug-In per soddisfare una delle più importanti necessità che un utente di software ECM potrebbe avere che è quella di controllare quali differenze ci sono tra diverse versioni dello stesso documento, anche per poi ricostruire la vita dello stesso e magari per capire le motivazioni di certe modifiche. La prima parte del secondo capitolo cercherà di dare una panoramica sui sistemi closed, illustrando attraverso un po' di storia, le motivazioni per il quale il sistemi closed esistono. Nella seconda parte dello stesso capitolo sarà trattato l'argomento dell' Open Source, descrivendo da dove ha origine questa filosofia di sviluppo, il significato dell' Open Source, le varie forme esistenti dello stesso finendo con elencare alcune delle più famose applicazioni Open Source. Nel terzo capitolo ci sarà una descrizione completa del software di gestione documentale per il quale è stato realizzato il Plug-In: Nuxeo. Saranno descritte le distribuzioni di Nuxeo, l'architettura dello Core di 2

7 Nuxeo, le piattaforme server sul quale è possibile installarlo, e soprattutto le tecnologie utilizzate per la sua realizzazione, che sono molto importanti da conoscere per iniziare a progettare un Plug-In. Il quarto capitolo sarà dedicato alla descrizione dello sviluppo del Plug-In. Iniziando dalla definizione dei requisiti, per poi descrivere l'architettura del Plug-In, motivando i principi che hanno ispirato la stessa, una descrizione del piano di lavoro ed infine una trattazione completa dei test, per poterne apprezzare le potenzialità. Nel quinto capitolo verranno tratte le conclusioni del lavoro che è stato svolto, le impressioni percepite durante la produzione dello stesso e verrà illustrato inoltre quello che secondo me potrebbe essere uno degli possibili sviluppi futuri del Plug-In, soprattutto in base a quello che potrebbe essere una richiesta che il mercato del software nel settore di gestione documentale potrebbe avere. 3

8 Capitolo Software Open Source e Closed Source 2 2 Software Open Source e Closed Source In questo capitolo si descriverà la differenza tra le Soluzioni Software Closed Source e Open Source, cos'è un sistema di gestione documentale, quali sono le soluzioni principali sul mercato di tipo Closed Source e quali di tipo Open Source (con riferimento ai costi, funzionalità, caratteristiche e livello qualitativo). 2.1 Soluzioni software Closed Source Per sistemi Software Closed Source (CSS) si indicano quei sistemi software che hanno restrizioni sul loro utilizzo, modifica, riproduzione o ridistribuzione, solitamente imposti da un proprietario. Queste restrizioni vengono imposte attraverso mezzi tecnici, come per esempio rendere pubblico solo il codice binario, o mezzi legali, licenze copyright e brevetti. Viene anche definito software proprietario, termine derivante da una traduzione errata dell'inglese proprietary software che letteralmente significa software di proprietà esclusiva. Sia il software proprietario che il software libero si avvalgono delle regole poste a tutela del diritto d'autore anche se gli obiettivi sono radicalmente diversi. Infatti il software proprietario si avvale delle suddette 4

9 regole al fine di sfruttare economicamente i programmi per elaboratore e per definirlo come proprietario. Il codice sorgente di un software proprietario solitamente non viene diffuso e viene ritenuto un segreto commerciale. Alcuni software proprietari, invece, vengono rilasciati con il codice sorgente o danno la possibilità di osservarlo secondo determinate condizioni. In questi casi gli utenti sono liberi di usare ed anche studiare e modificare il software, ma sono vincolati da licenze o accordi di non divulgazione (NDA: Non-Disclosure Agreement) per la ridistribuzione delle modifiche o anche per la semplice condivisione del software. Il software proprietario disponibile gratuitamente viene chiamato Freeware. Il software shareware è invece disponibile gratuitamente ma solo per un periodo di prova. Il software proprietario con un copyright che non viene più esercitato e che viene usato illegalmente dagli utenti viene chiamato "abandonware" e può includere o meno il codice sorgente. 2.2 Sistemi Software Open Source L'Open Source significa esclusivamente che un programma viene distribuito insieme al proprio codice sorgente, ovvero le linee di codice scritte da programmatori mediante un linguaggio di programmazione, consentendo quindi di poter apportare delle modifiche e delle personalizzazioni. L'Open Source ha provocato, in campo software, una vera e propria rivoluzione, che può determinare, in campo IT, vantaggi quali la riduzione dei costi delle licenze, la flessibilità delle soluzioni, l'indipendenza dai fornitori, una migliore interoperabilità tra sistemi, etc. L'Open Source nasce dalla convinzione che lo sforzo di tanti per la produzione di software differenti (e distribuiti con licenza chiusa ), ma 5

10 finalizzati a risolvere uno stesso problema, risulta essere controproducente, determinando la dispersione di energie e di capacità e non permettendo, a chi possieda volontà e intuizione, di intervenire per il loro miglioramento. Il principio più teste lavorano meglio di una soltanto è alla base del modo di produzione di software libero, processo produttivo in contrapposizione a quello tipico del software closed source, indicato come a Cattedrale. L'Open Source ha raggiunto la notorietà in tempi molto recenti, oggi viene menzionato e discusso non solo dalla stampa specializzata ma anche su media più generici come le trasmissioni televisive e radiofoniche. Il fatto che tanta attenzione sia dedicata ad un particolare fenomeno legato al mondo dell'informatica e non strettamente connesso con l'utenza popolare, com'è il caso Internet, è indice di novità non ristretta all'ambito tecnico, ma legata ad un ambito più vasto, l'ambito delle innovazioni culturali. Il risultato di tale lavoro fu la fondazione della Free Software Foundation nel 1985 (un'organizzazione senza scopo di lucro per sviluppo di software libero) e il numero di sostenitori e utilizzatori di Free Software crebbe senza soluzione di continuità e continua a farlo a tutt'oggi. All'inizio degli anni 90, Linus Torvalds, studente del secondo anno di informatica presso l'università di Helsinki, decise di sviluppare un proprio sistema operativo imitando le funzionalità di Unix su un PC con un processore Intel 386. Tale processore venne scelto per il minor costo e per la sua diffusione rispetto alle piattaforme hardware dove veniva distribuito UNIX. Torvalds distribuì il proprio lavoro tramite Internet condividendolo con altri programmatori, i quali apportarono nuove funzionalità e contribuirono a correggerne alcuni errori riscontrati. Nacque così Linux, sistema operativo con licenza Free. Linux può essere considerato come il primo vero progetto "Open 6

11 Source" cioè come il primo progetto che faceva affidamento essenzialmente sulla collaborazione via Internet per progredire; fino ad allora, infatti, anche i progetti di software libero come Emacs erano stati sviluppati in maniera centralizzata seguendo un progetto prestabilito da un ristretto numero di persone, in base cioè ai principi 'standard' di ingegneria del software. Agli inizi degli anni novanta, l'idea delle licenze liberali era rappresentata soprattutto da Richard Stallman e la sua FSF, ovvero le licenze liberali per eccellenza erano la GPL e la LGPL che però venivano ritenute "contagiose", in quanto a partire da un codice licenziato con la GPL qualsiasi ulteriore modifica deve avere la stessa licenza. 2.3 Sistemi di gestione documentale I sistemi di gestione documentale sono una categoria di sistemi software che servono ad organizzare e facilitare la creazione collaborativa di documenti e di altri contenuti. Tecnicamente si tratta di un'applicazione Server che si occupa di eseguire diverse operazioni sui documenti, catalogandoli ed indicizzandoli secondo determinati algoritmi. L'importante valore aggiunto sta nella possibilità di condividere informazioni e/o documenti in diversi modi. È possibile creare liste, documenti, calendari e di "versionare" i documenti che, essendo salvati su server godono del vantaggio della collaborazione. Due utenti infatti, possono collegarsi da due posti differenti e visionare o lavorare sullo stesso documento. In questa sezione verranno descritti i principali sistemi di gestione documentale Open Source e Closed Source Sistemi di gestione documentale Closed Source I pacchetti Closed Source di gestione documentale piu' diffusi nel mercato come SharePoint (Microsoft) e Documentum (IBM) offrono svariate 7

12 funzionalità che vanno dall'acquisizione alla memorizzazione fisica dei documenti fino alla gestione dei flussi di lavoro correlati ai documenti stessi. I costi cambiano in base al tipo di prodotti, per esempio oltre al costo di per licenza d'uso esistono anche i costi di personalizzazione. Le funzionalità sono presso a poco comuni a tutti, funzionalità che vanno dai Siti, Community, gestione dei contenuti e gestione del flussi di lavoro. Microsoft SharePoint, è un programma lato server che permette la creazione di particolari siti web principalmente ad uso aziendale (Intranet) ma che possono anche essere messi in rete e quindi essere disponibili e utilizzati come normali siti web. È possibile creare liste, repository documentali con versionamento, calendari sincronizzati con outlook e molto altro ancora. SharePoint è completamente integrato con il pacchetto Office e Documentum IBM è un sistema di gestione di documenti con funzionalità che vanno dal check-in, check-out, gestione flusso di lavoro, gestione delle versioni. Il prodotto è un sistema client-server basato su database relazionale Sistemi di gestione documentale Open Source I pacchetti Open Source di gestione documentale piu' diffusi nel mercato come Alfresco, Nuxeo, di cui ci occuperemo piu' avanti offrono svariate funzionalità come per i software corrispondenti di tipo Closed Source ma con il vantaggio di poter personalizzare il progetto, perché il programma viene distribuito con il suo codice sorgente. In questa sezione verrano illustrati Alfresco, Nuxeo, OpenKM e KnowledgeTree, i principali Sistemi di gestione documentale Open Source presenti sul mercato. Alfresco è un sistema per la gestione documentale, Il suo design è orientato 8

13 verso gli utenti che richiedono un elevato grado di modularità e prestazioni scalabili. Alfresco comprende un repository di contenuti, un "out-of-the-box" portale web per la gestione e l'utilizzo standard del contenuto del portale, una CIFS interfaccia di file che fornisce la compatibilità del sistema in Microsoft Windows e Unix, un sistema di gestione dei contenuti è in grado di virtualizzare applicazioni web e siti statici tramite Apache Tomcat, il motore di ricerca Lucene e jbpm flusso di lavoro. Alfresco è stato sviluppato utilizzando tecnologie come Java, JSP e JavaScript. Nuxeo EP è un sistema per la gestione documentale, come Alfresco, è multipiattaforma, è basato su Java EE e tecnologie come (OSGi, Apache, Jackrabbit, EJB3, Jboss, Eclipse Platform). Nuxeo EP è rilasciato sotto licenza LGPL. Nuxeo permette sia la pubblicazione che la condivisione di contenuti all'interno di una azienda, tra le funzionalità ci sono, Repository con controllo di versione, Image Management, jbpm flusso di lavoro, supporto clustering. Maggiori dettagli su Nuxeo sono disponibili nel Capitolo 3. OpenKM è un sistema per la gestione documentale gestito attraverso un'interfaccia Web. Include contenuti gestiti in repository, indicizzazioni Lucene, e workflow jbpm, sviluppato usando Java. Finanziato da un fondo Statale Spagnolo attraverso un fondo no profit il suo primo rilascio risale alla fine del Sun fondo non Profit. OpenKM usa la licenza GNU, anche OpenKM è multipiattaforma e le tecnologie usate sono JBoss, Java J2EE, Apache Jackrabbit, GWT (Google Web Toolkit). KnowledgeTree è un sistema per la gestione documentale. Le funzionalità di KnowledgeTree includo il flusso dei documenti, i document alerts e la gestione delle versioni, disegnato per gestire il processo Business basato sui documenti, fornisce inoltre la funzionalità di condivisione dei documenti in un team di lavoro. Le tecnologie utilizzate sono PHP, Ajax, supporta HTML5 drag and drop, è multipiattaforma ed è disegnato per essere integrato in 9

14 prodotti Microsoft Office. Riesce ad interfacciarsi con altre applicazioni attraverso le interfacce REST e SOAP. Presente sul mercato in varie versione tra le quali la community edition con licenza GPL. 10

15 Capitolo Il Sistema di Enterprise Content Management Nuxeo 3 3 Il Sistema di Enterprise Content Management Nuxeo In questo capitolo si descriverà Nuxeo, uno dei più recenti software per la gestione dei contenuti. Si inizierà con un una descrizione delle soluzioni attualmente presenti nel mercato per poi andare ad esplorare la piattaforma EP, studiandone il Core, l'architettura sia dei Bundle che dei Plug-In, per concludere con una descrizione delle API. 3.1 Introduzione a Nuxeo Nuxeo è una piattaforma Open Source per ECM (Enterprice Content Managament) che abilita gli sviluppatori e progettisti di software a creare, installare ed eseguire una delle migliori piattaforme per la gestione dei contenuti. Fondata nel 2000, con due sedi principali a Parigi e a Boston, Nuxeo è una compagnia internazionale che gestisce in maniera ottimale diverse aziende che hanno la necessità di gestire contenuti sotto-forma di documenti elettronici. Fornisce inoltre una piattaforma modulare ed estensibile di sviluppo 11

16 java-based per la gestione documentale digitalizzata. Offre inoltre un set di pacchetti applicativi per il Document Management, per il digital asset management ed il case management. Disegnato da programmatori per programmatori, la piattaforma Nuxeo è stata creata per rendere la costruzione di applicazioni di contenuti facile ed efficiente. La cosa importante da sapere è che le applicazioni implementate attraverso la piattaforma Nuxeo sono robuste con la possibilità di crescita a lungo termine. Soltanto studiando i casi di implementazione presso gli utenti si potrà capire come Nuxeo può gestire diversi e numerosi casi. Le principali distribuzioni di Nuxeo sono tre: Nuxeo DM, Nuxeo Document Management product, Nuxeo DAM, Digital Asset Management software Nuxeo CMF, Nuxeo, Case Management Framework. Le distribuzioni sono disponibili nei seguenti formati: in standalone con Jboss; in standalone con Tomcat; in formato EAR per Jboss; in formato.deb per le installazioni Debian/Ubuntu; C'è anche la possibilità di avere una versione in VM (Virtual Machine) cosi da poter essere lanciato attraverso Vmware o VirtualBox. 3.2 Sistema di gestione documentale - Nuxeo DM Nuxeo DM è un'applicazione Open Source per la gestione documentale, la gestione del lavoro di gruppo e la distribuzione dei contenuti. 12

17 Il concetto generale è il seguente: i documenti sono creati, modificati con la possibilità di essere approvati in un'area di lavoro. Alla fine del processo sono pubblicati in una sessione. Quando diventano obsoleti, vengono rimossi dalla sessione. Le azioni che gli utenti possono eseguire sono determinate dai diritti di accesso rilasciati dal gestore degli spazi di lavoro. Per incoraggiare il lavoro in team e la condivisione delle informazioni, Nuxeo DM propone diversi servizi quali forums, blogs e siti web. Il lavoro di gruppo inizia nelle aree di lavoro, dove gli utenti possono creare e modificare documenti. Le aree di lavoro sono disegnate per catturare, condividere e modificare documenti in modo facile usando le funzionalità integrate offerte dal desktop tra i quali commenti e annotazioni. Principalmente, l'history dei documenti, il Versioning, le relazioni, il flusso di lavoro e gli Alerts danno la possibilità all'utente di costruire una struttura di gestione di documenti coerente e sicura. Per aiutare gli utenti a creare le aree di lavoro nelle quali gli stessi dovranno lavorare, è possibile creare dei Template di aree di lavoro e preparare la struttura che sarà applicata all'area di lavoro. Quando il documento è completo, sarà possibile pubblicarlo in sessione. La sessione è dedicata alla distribuzione dei contenuti, alla comunicazione ed alla consultazione degli stessi, per questo motivo l'utente non sarà più in grado di modificare documenti in sessione: i documenti in sessione sono una versione congelata dei documenti dell'area di lavoro. La pubblicazione dei documenti viene gestita usando il flusso di lavoro, una richiesta di pubblicazione deve essere approvata affinché il documento possa essere visibile in sessione. Sessioni, aree di lavoro e Template sono raggruppati in domini. Un 13

18 dominio può essere considerato come una mini applicazione in Nuxeo o una directory dell'applicazione. Generalmente è possibile usare domini per aprire applicazioni per 2 o più gruppi di utenti. Per esempio, è possibile avere un dominio intranet e un dominio extranet. I domini possono essere totalmente indipendenti o no, dipende dai diritti di accesso configurati su ogni dominio. L'accesso ai documenti e le azioni permesse sono determinate attraverso i diritti di accesso. Per esempio diversi utenti possono solo leggere il documento, mentre altri possono modificare documenti. I diritti di accesso di Nuxeo sono: lettura, scrittura, gestione di diritti, rimozione di diritti, commentare, moderare. I diritti acquisiti in uno spazio di lavoro sono ereditati direttamente dalle sotto-aree di lavoro. Per rendere i diritti di accesso più facili da gestire, è possibile creare gruppi di utenti. Sono utili quando è necessario dare o negare diritti di accesso ad un gruppo di utenti infatti è possibile eseguire l'operazione una sola volta per diversi utenti usando i gruppi di lavoro. I gruppi di lavoro di default sono: Amministratore: gli utenti di questo gruppo sono amministratori dell'applicazione. Hanno il compito di gestire l'applicazione e possono accedere all'admin center, modificare il vocabolario dell'applicazione, gestire gli utenti e i gruppi di utenti, e gestire i temi implementati all'applicazione. Membri: gli utenti di questi gruppi non sono amministratori dell'applicazione e hanno diritti limitati. 3.3 Sistemi di Gestione Contenuti Multimediali - Nuxeo DAM Nuxeo DAM (Nuxeo Digital Asset Management), Figura 3.2, basato sulla piattaforma Nuxeo Open Source ECM, fornisce le funzionalità necessarie per gestire file multimediali, dalla cattura alla distribuzione. 14

19 I tipi di risorse gestii da Nuxeo DAM sono file di immagini, video, e audio, anche se gestisce PDF e files Office. E' possibile inoltre installare ed usare sia Nuxeo DM e Nuxeo DAM, e condividere gli stessi dati, l' uso consigliato sarebbe quello di usare Nuxeo DM come strumento di backoffice, e Nuxeo DAM come piattaforma avanzata di consultazione, accedendo ai contenuti multimediali memorizzati nell' asset library di Nuxeo DM da Nuxeo DAM senza cambiare applicazione. Figura 3.2 Vista di Nuxeo DAM 3.4 Framework di Sviluppo - Nuxeo CMF Nuxeo CMF (Case Management Framework) è un Framework che consente di creare e distribuire entità case e rispettivi contenuti. Essendo un Framework, è possibile usare Nuxeo CMF come base tecnica per lo sviluppo di applicazione di entità case centralizzati come per esempio applicazioni di mailing o di gestione delle fatture. Nuxeo CMF include inoltre molte utilità per utenti finali che sono accessibili direttamente dal browser web. Una entità case è un semplice documento composto da un allegato opzionale o da un contenuto testuale o da metadata. 15

20 Un case potrebbe essere una cartella che contiene uno o più case. I case sono creati, modificati e distribuiti e memorizzati in cartelle chiamate mailboxes i quali possono appartenere a singole persone od a entità quali mailboxes generiche. Per aiutare l'utente ad organizzare un processo di case, esiste il classificatore delle cartelle, dove l'utente può organizzare case ricevuti dalla sua mailboxes. Generalmente utenti hanno accesso ad una o ad diverse mailboxes usate per trasferire o memorizzare entità cases. All'interno di una mailbox l'utente può modificare i case ricevuti inserendo i propri metadata, o aggiungendo nuovi case nello stesso case. Se necessario il case può essere distribuito ad altri utenti, che di contro possono ricevere il case nelle rispettive mailboxes. Per esempio in un'applicazione di corrispondenza il case è una busta che contiene uno o diversi documenti. Questa busta può essere trasferita a uno o diversi mailboxes in relazione a recipienti di s. Nel campo delle assicurazioni, un case può essere un sinistro automobilistico. Il case potrebbe riguardare un resoconto sul sinistro, il contratto di assicurazione delle persone coinvolte nell'incidente, le foto del sinistro e tutti gli altri dati riguardanti lo stesso. (Figura 3.3) Figura 3.3 Vista di Nuxeo CMF 16

21 3.5 Piattaforma Enterprise - Nuxeo EP Tutte le applicazioni ECM sono costruite al vertice di quello che viene conosciuto come Nuxeo EP (Nuxeo Piattaforma Enterprise). Nuxeo EP, non è un prodotto scaricabile ed eseguibile, ma è invece una piattaforma sottostante, java-based, che fornisce una infrastruttura tecnica ed un servizio ad alto livello necessario per la creazione di applicazioni ECM personalizzate. La figura serve a dare un'idea generale di come un'applicazione ECM è costruita utilizzando come piattaforma sottostante Nuxeo EP. Figura Architetture della piattaforma sottostante Nuxeo Ep. Come si può vedere (Figura 3.4) i componenti EP vengono usati come la base sottostante per le attuali distribuzioni installabili mediante la semplice aggiunta di specifici pacchetti. Quindi, tutta l'architettura di Nuxeo è basata su di un'infrastruttura che include: Una suite di sviluppo Java, come Oracle's Java 6 or OpenJDK 6; 17

22 Un application engine, come JBoss application server o Tomcat servlet engine; Un database certificato da Nuxeo EP, come PostgreSQL, Oracle o Microsoft SQL Server; I Sistemi operativi, come Linux, Windows or Mac OS X, che supportano Nuxeo e i programmi descritti precedentemente; In poche parole Nuxeo è completamente basato su Java, quindi grazie a questo risulta flessibile in termini di installazione. Oltre ai pacchetti eseguibili, esistono anche le versioni per gli sviluppatori che vogliono personalizzare il prodotto, che sono "Core Server" e la "Content Application Platform" (CAP). Nuxeo Core Server: Questo modulo contiene il servizio di repository base e il servizio di gestione di contenuti di Nuxeo EP, creato per gli sviluppatori Java.Questo pacchetto è l'ideale per gli sviluppatori interessati ad accedere a basso livello al contenuto del repository via APIs come REST o CMIS. Nuxeo Content Application Platform (CAP): Questa è una versione di pacchetti per sviluppatori java che sviluppano applicazioni di gestione di contenuti (vertical o horizzontal). Nuxeo CAP arriva da una versione pre-packaged con una interfaccia Web User implementabile che sta al di sopra della base del repository e dei servizi, è basata su tecnologia JSF (Java Server Faces). Nuxeo CAP è perfetto per quegli sviluppatori che vogliono migliorare l'interfaccia Utente e per costruire applicazioni personalizzate. Queste due versioni in distribuzione sono necessarie per gli sviluppatori che vogliono disegnare le loro applicazioni sfruttando come piattaforma sottostante Nuxeo.. Nuxeo EP, è suddiviso in diversi pacchetti, chiamati Bundles, che 18

23 sono archivi Jar che contengono: un file MANIFEST basato su tecnologia OSGI; Classi Java; Componenti XML; Risorse; un deployment descriptor; Il file MANIFEST, figura 3.4.2, è utilizzato per: definire un id univoco al bundle; definire le dipendenze dello stesso bundle con altri bundle già presenti in nuxeo, che offrono servizi necessari all'esecuzione del bundle stesso; una lista in formato XML dei componenti del Bundle; Figura Vista di un file MANIFEST. Un vantaggio della piattaforma Nuxeo è quello di fornire componenti e servizi che possono facilmente essere configurati ed estesi. Questa tecnica del sistema di punti di estensioni è ispirata alle piattaforme come Eclipse o Equinox. I punti di estensioni ti permettono di: configurare i comportamenti dei componenti (attraverso XML); estensione del comportamento dei componenti (attraverso codice Java 19

24 o scripting); Di base, all'interno di Nuxeo EP, il pattern è sempre lo stesso: i servizi sono forniti attraverso i componenti; componenti sono esposti attraverso i punti di estensione; Il sistema dei punti di estensione, figura 3.4.3, viene usato su tutta la piattaforma: all'interno Nuxeo Runtime; all'interno Nuxeo Core (configura ed estende il Document storage ); all'interno dello strato dei servizi di Nuxeo (configura ed estende i servizi ECM ); all'interno lo strato UI (Interfaccia Utente) (assembla costruendo blocchi, contribuisce nuovi bottoni o viste, configura la navigazione etc); Ogni componente java può dichiarare diversi punti di estensione. Questi possono essere usati per: fornire configurazioni, fornire codice addizionale come ad esempio i Plug-In.. Così molti servizi di Nuxeo sono configurabili e Pluggabili, attraverso i componenti sottostanti. 20

25 Figura Architettura a Bundle di Nuxeo con i punti di estensione. Il modello dei componenti e i servizi Nuxeo sono modelli POJO (Plain Old Java Objects), ma possono essere integrati in applicazioni JEE per incrementare i servizi forniti attraverso questo contenitore. Per questo scopo, i servizi Nuxeo possono essere gestiti dai componenti EJB3 Session Beans. Facendo così si fornisce: un servizio di accesso remoto (RMI); un supporto alle transazioni; una gestione di sicurezza attraverso JAAS; un Entity Manager access via injection; un pooling dei componenti EJB3; Il servizio di repository di Nuxeo (DocumentManager) è disegnato per gestire Session beans con stato, per la sessione core sottostante. Dal punto di vista del cliente, il servizio è sempre accessibile allo stesso modo: la runtime di Nuxeo, figura 3.4.4, gestisce la chiamata a JNDI cercando un EJB3 o un semplice POJO eseguendo le ricerche necessarie a dipendenza della configurazione e all'ambiente di deployment. 21

26 Figura Rappresentazione grafica della chiamata della runtime di Nuxeo L'architettura stratificata determina il modo di suddividere in pacchetti le nuove funzionalità (features) di Nuxeo. Il sistema dei pacchetti bundle consente di gestire più opzioni di deployment possibili e di permettere all'utente quali funzionalità scegliere e dove installarle. Generalmente questo significa che ogni funzionalità, figura 3.4.5, potrebbe essere composta da: API Bundle che contiene tutte le interfacce e gli oggetti remoti necessari per accedere ai servizi forniti; Core Bundle che contiene le implementazioni POJO per i componenti e i servizi; Facade Bundle che fornisce le funzionalità di bindings JEE per i servizi come ad esempio, JTA (Java Transaction Api), Remoting, JAAS (Java Authentication and Authorization Service); Core Contrib Bundle che contiene tutte i Contributions per il Repository di Nuxeo (tipi di documento, listeners, politiche di sicurezza...); Client bundles. 22

27 Figura Schema che rappresenta dove le funzionalità possono essere implementate. 3.6 Servizi e API - Nuxeo Api Nuxeo EP fornisce diversi tipi di servizi e di API, figura : Java local API Java remote API WebService (JAX-WS) API REST (JAX-RS) API (Representational Transfer State ) AMF (Flash) API Figura Schema dei servizi API di Nuxeo 23

28 Fin dalla nascita Nuxeo EP è stato implementato attraverso il linguaggio Java, questo significa che per estendere Nuxeo è necessario usare le API di Java. Allo stesso modo per accedere ai contenuti di Nuxeo EP è possibile farlo attraverso i protocolli standard gestiti attraverso Java. Nuxeo EP supporta, figura : CMIS (Common Management Information Service), WebDav, Windows Sharepoint Services protocol (solo il subset usato da MS Office e MS Explorer). In confronto alle APIs, questi protocolli non daranno l'accesso ai servizi ma solo direttamente ai contenuti. Figura Rappresentazione dei prodotti supportati da Nuxeo EP La possibilità di accedere ai contenuti di Nuxeo EP dipende molto dal protocollo scelto: 24

29 CMIS fornisce l'accesso a un grande set di dati gestiti da Nuxeo; WebDav e WSS (Web Service Security) principalmente mappano i contenuti di Nuxeo come fosse un file system (con tutte le limitazioni associate); Questi protocolli possono essere utilizzati in svariati modi: come desktop integration; per l'accesso ai contenuti di Nuxeo; 3.7 Connettori Nuxeo All'interno di Nuxeo EP, le directory sono usate per fornire un'astrazione a tutti i dati che vengono manipolati all'interno dell'applicazione. Questi dati possono essere: utenti; gruppi di utenti; liste fisse di valori (vocabolario); ruoli;... Di base Nuxeo cerca di mappare tutti i dati che possono essere gestiti come record via directory. Per questo, le directory forniscono un semplice CRUD API (operazioni di Create, Retrieve, Update, Delete) e un'astrazione dell'applicazione, figura Questo significa che la piattaforma dei servizi non deve preoccuparsi di dove e come i dati vengono memorizzati, ma deve soltanto accedere agli stessi via API. 25

30 Figura Astrazione dei dati gestiti da Nuxeo attraverso il concetto delle directory. Le directory vengono gestite attraverso: SQL Directory che possono mappare tabelle SQL; LDAP Directory che possono mappare server LDAP (Lightweight Directory Access Protocol); Multi-Directory che permetto di combinare diversi directory in una singola; Un'astrazione delle directory è la mappatura attraverso i Webservice o da applicazioni che gestiscono i dati centralizzati. Autenticazione e gestione utenti è anche un tipico caso d'uso d'integrazione tra Nuxeo EP e infrastrutture già esistenti attraverso : l'integrazione di un singola entità del sistema, l'integrazione di un'applicazione che gestisce utenti e profili, l'integrazione di un'applicazione che gestisce gruppi. Come visto prima, l'astrazione delle directory fornisce parti di queste soluzioni, ma per essere possibile integrare una quantità di differenti autenticazioni, il sistema di autenticazioni di Nuxeo EP è stato disegnato per essere estensibile. L' identificazione iniziale può essere fatta a livello Java via JAAS o a livello HTTP, utilizzando un filtro dedicato. Il filtro è 26

31 estensibile così che i modi per recuperare le credenziali possono essere adattati al sistema. Il modulo di login di JAAS è anche estensibile così che per l' utente sarà possibile definire come le credenziali vengano validate. Di default, le credenziali sono validate per le directory che usano LDAP, SQL o un'applicazione esterna, figura Figura Rappresentazione dell'autenticazione di Nuxeo Quando si rende necessario integrare delle funzionalità di un'applicazione esterna in Nuxeo o è necessario inserire dati da un'applicazione esterna, gli eventi di Nuxeo rappresentano solitamente una buona soluzione, figura Figura Integrazione di dati o applicazioni esterne a Nuxeo 27

32 3.8 Soluzioni Client - Nuxeo UI frameworks Nuxeo EP propone differenti tecnologie per il lato cliente di un'applicazione. La scelta di una tecnologia contro le altre dipende sia dal progetto che dal suo contesto. Le differenti tecnologie disponibili sono, figura 3.7: JSF (Java Server Faces) / JBoss Seam framework per applicazioni web 2.0; WebEngine, frameworks per applicazioni basate su JAX-RS; Flex Client, Open Source framework per costruire applicazioni web interattive; GWT Client, Open Source framework per costruire applicazioni web conn AJAX; Figura 3.7 Tecnologie utilizzate da Nuxeo dal lato cliente dell'applicazione 28

33 Capitolo Il Plug-in Nuxeo-Diff-Version 4 4 Il Plug-in Nuxeo-Diff-Version In questo capitolo verrà descritto il Plug-in Nuxeo-Diff-Version partendo dall'analisi di definizione dei requisiti fino al design ed allo sviluppo del Plug-in. Verranno mostrate le scelte tecnologiche ed architetturali usate per la creazione del Plug-in. Per motivi di spazio non saranno trattati in modo approfondito tutti i metodi delle classi che costituiscono il Plug-in ma soltanto i metodi che si è ritenuto diano un'idea generale della composizione del Plug-in. 4.1 Definizione dei requisiti I software per la visualizzazione di differenze nascono per l'esigenza di controllare le differenze tra due versioni diverse di uno stesso documento, infatti prodotti come Microsoft VisualSourceSafe, MKS, SVN (subversion) già presenti da molto tempo nel mercato servono a soddisfare quest'esigenza. Risulta essere molto importante potere disporre di questa funzionalità in un software ECM come Nuxeo, specialmente quando questo prevede flussi di lavoro che prevedono la modifica dello stesso documento da parte di diverse persone che rivestono diversi ruoli nell'organizzazione di un'azienda. Si vuole creare un Plug-in su piattaforma Nuxeo EP, che consente di 29

34 mostrare le differenze tra due versioni diverse dello stesso file. I tipi di file che il Plug-in deve essere in grado di gestire sono fondamentalmente quattro: File con estensione ODT (Open Office writer) File con estensione PDF (Acrobat) File con estesione Word (Microsoft Word) File con estensione TXT (normali file in ascii) Il Plug-in deve essere prodotto seguendo le specifiche tecniche per la creazione di un Plug-in di Nuxeo. Deve rispettare inoltre la caratteristica essenziale che i Plug-In hanno e cioè quella di essere installabile senza ricompilare il codice de Core del progetto ospitante. Un requisito fondamentale deve essere quello che il Plug-In deve essere in grado di accedere alle funzionalità Core di Nuxeo per poter avere a disposizione le versioni storicizzate dei file da analizzare. Un altro requisito molto importante è quello che il codice sorgente del Plug-In deve essere facilmente estensibile, questo per la caratteristica del servizio che il Plug-in si prefigge di soddisfare e cioè la visualizzazione di differenze tra due versioni dello stesso file. Quindi deve avere la capacità di inglobare facilmente un tipo di file non ancora gestito nel Plug-In con un impatto minimo sul codice Core dello stesso. 30

35 4.2 Piano di lavoro ID Attività 1 Obiettivi globali Durata Definizione degli obiettivi globali del progetto Definizione delle risorse 2 1 g 30/07/ g 31/07/ g 05/08/ g 13/08/2011 Analisi dei requisiti Bozza delle specifiche Verifica delle specifiche Definizione delle scadenze di consegna 5 1 g 29/07/2011 Formazione Studio architettura Nuxeo Studio di implementazione di un plug-in in Nuxeo Studio di JSF e Seam Objects 3 Inizio 3 g 17/08/ g 20/08/ g 25/08/2011 Sviluppo del codice DiffMatch.java DiffVersionActions.java DiffVersionActionsBean.java VersionsMapStrUsr.java GenericDoc.java ODTDoc.java PdfDoc.java 31 1g 1g 1g 1g 1g 1g 1g 31/08/ /09/ /09/ /09/ /09/ /09/ /09/2011

36 TxtDoc.java WordDoc.java TestDiffMatch.java TestDiffVersionActionsBean.ja va TestPdfBoxN.java TestTxtDoc.java TestWordDoc.java 6 10/09/ /09/ /09/ /09/ g 14/09/ g 19/09/ g 21/09/ g 23/09/ g 25/09/2011 Documentazione Stesura manuale per Nuxeo 9 1g 1g 1g 1g Testing Testing dei moduli Testing globale in base alle specifiche Identificazione di anomalie e modifiche Testing sui moduli corretti Testing globale 7 1 g 07/09/ g 08/09/ g 09/09/2011 Consegna 3 g 29/09/11 02/10/11 Figura Piano di lavoro 32

37 Durante la progettazione e implementazione del Plug-in non si sono verificati particolari problemi che hanno richiesto una analisi dei rischi e l'identificazione di strategie alternative per il raggiungimento degli obiettivi preposti. Le maggiori difficoltà incontrate sono state nell'implementazione, perché il Plug-In oggetto di questa tesi, non si limita ad utilizzare le extentions che Nuxeo offre agli aspiranti contributors di Nuxeo, ma va un po oltre utilizzando anche metodi disponibili soltanto dal lato Core del programma e per i quali esiste poca documentazione. 4.3 L'architettura di Nuxeo-Diff-Version Per massimizzare la modularità e la manutenibilità del Plug-In si è deciso di definire una architettura principale del Plug-in formata da tre principali pacchetti: org.nuxeo.diffversionpkg, che contiene le classi per l'implementazione del Seam JBoss, per la gestione diretta delle richieste fatte dall'utente tramite browser che racchiudono operazioni quali il controllo delle versioni selezionate, la visualizzazione delle differenze fra le due versioni e anche la gestione degli errori che l'utente potrebbe commettere (selezionando un sola versione e cliccando sul bottone confronta, selezione di tre versioni etc,. org.nuxeo.diffmatchpkg, contenente le classi che gestiscono il motore di ricerca delle differenze tra due file. org.nuxeo.typedocpkg, contiene un'interfaccia generica chiamata genericdoc che a sua volta viene implementata da 4 classi distinte ognuna per ogni tipo di documento che si vuole gestire. 33

38 Figura Architettura di Nuxeo-Diff-Version Progettazione del pacchetto org.nuxeo.diffversionpkg Questo pacchetto contiene un'interfaccia DiffVersionAction che viene implementata dalla classe DiffVersionActionBean. Quest' ultima classe gestisce tutte le richieste fatte dall'utente che vuole controllare le differenze tra due versioni diverse dello stesso file. La VersionMapStrUsr è la classe che gestisce la comunicazione con il Seam Bean per la gestione della operazioni di visualizzazione delle differenze tra due versioni dello stesso file, il metodo più importante da 34

39 descrivere è il metodo setsessionid, che gestisce l'accesso in mutua esclusione delle operazioni di visualizzazione di differenze. L'architettura di questo pacchetto fa uso del Design Pattern conosciuto con il nome Composite, che come vedremo più avanti viene implementato attraverso l'utilizzo di una classe di tipo Map. L'uso di questo tipo di architettura è stato necessario per la gestione dell'interazione tra il sistema e più utenti, perché, data la natura del lavoro, non è possibile fare uso direttamente di un database, infatti si è implemento un Plug-In quindi possiamo usare soltanto le funzionalità che ci offre il Core senza modificarne il codice ne tanto meno il modello dati sul quale questo è basato. org.nuxeo.diffversionpkg <<interface>> DiffVersionAction +setpagenr(paramstr: String) +setprevpagenr(sessionid: String) +setnextpagenr(sessionid: String) +setlastpagenr(sessionid: String) +setfirsttpagenr(sessionid: String) +clear(sessionid: String) +setversionitem(selectedversionstr String) +iscomparestate(sessionid String): Boolean +getitemversioninghistory(document DocumentModel, label: String): DocumentModel +getnrpages(): Integer +setnrpages(nrpages: Integer) +isfirstpage(): Boolean +islastpage(): Boolean +getpagenr(): Inteteger +setpage(inpagenr) +getstrfromfile(docversion: DocumentModel, Currentpage: Integer): String +compareres(document DocumentModel): String VersionMapStrUsr DiffVersionActionBean +setref(inref: String) +setversion(inversion: String) +setsessionid(insessionid: String) +setpage(inpage: Integer) +getref(): String +getversion(): String +getsessionid(): String +getpage(): Integer Figura Architettura di org.nuxeo.diffversionpkg 35

40 4.3.2 Progettazione del pacchetto org.nuxeo.diffmatchpkg Il pacchetto org.nuxeo.diffmatchpkg, come anticipato prima contiene le classi che gestiscono il motore di ricerca delle differenze tra due file passati come input. La classe che implementa questa funzionalità è la diffmatch, la cosa importante da notare è il Design Pattern utilizzato per l'implementazione di questo pacchetto e cioè il Design Pattern Composite, dove la classe DiffMatch è la classe principale e la classe Diff rappresenta l'insieme delle differenze che la classe DiffMatch sarà in grado di individuare. I metodi principali della classe DiffMatch sono la diff_main che crea la collezione di oggetti di tipo Diff, e il metodo diff_prettyhtml che restituisce un testo in formatto HTML che rappresenterà la pagina mostrata all'utente durante la fase di visualizzazione delle differenze tra due versioni dello stesso documento. org.nuxeo.diffmatchpkg Diff DiffMatch +operation: Operation +text: String +diff_main(text1: String, text2: String) +diff_prettyhtml(diffs: Diff): String +Diff(operation: Operation, text: String) Figura Architettura di org.nuxeo.diffmatchpkg 36

41 4.3.3 Progettazione del pacchetto org.nuxeo.diffmatchpkg L'architettura di questo pacchetto si basa sul Design Pattern Strategy, per il quale il comportamento di una oggetto istanziato attraverso una variabile di tipo interfaccia, è determinato dal tipo di classe d'istanza. Infatti questo tipo di Design Pattern suggerisce l'incapsulamento della logica di ogni particolare algoritmo relativo ad ogni tipo di documento gestito, in quattro specifiche classi. E' stato implementato questo tipo di Design Pattern anche per rendere modulare ed espandibile lo stesso Plug-In, in vista di una futura gestione di altri tipi di documento diversi da quelli gestiti in questa versione. L'interfaccia GenericDoc dichiara il metodo EstractStrFromDoc, che restituisce la stringa corrispondente alla pagina corrente del nome del documento passato come parametro di input, NrPages, che restituisce il numero di pagine del nome del documento passato come parametro di input ed infine il metodo setpage che posiziona la pagina come pagina corrente il numero di pagina passata come parametro di input. org.nuxeo.typedocpkg <<interface>> GenericDoc +ExtractStrFromDoc(fileName: String) +NrPages(fileName: String) +SetPage(page: Integer) WordDoc ODTDoc PdfDoc TxtDoc Figura Architettura di org.nuxeo.typedocpkg 37

42 4.4 Implementazione del Plug-in In questo paragrafo verrà descritto il Plug-In e in modo particolare, i tre pacchetti che sono stati implementati, la descrizione delle funzioni JavaScript per gestire l'interazione con l'utente riguardanti la comparazione di due versioni, la struttura di vari file, che come vedremo più avanti risulteranno determinanti per l'implementazione del Plug-In. Prima di iniziare è importante sapere che le tecnologie utilizzate per implementare Nuxeo-Diff-Version sono le seguenti: JSF (JavaServer Faces), un Web framework per generare pagine HTML e gestire il flusso di navigazione JavaScript, linguaggio di scripting molto popolare e compatibile con la maggior parte dei browser presenti in internet, solitamente viene usato per rendere le pagine Internet interattive. Maven, un tool molto utile per la costruzione e gestione di progetti, infatti verrà usato per precompilare il Plug-In e per lanciare i test. Seam JBoss che è una potente application framework per Java Enterprise, che può essere integrato con AJAX (Asincronous JavaScript and XML), JSF, EJB (Enterprise Java Bean) Visione d'insieme dell'albero della cartelle Nella figura viene mostrato come è organizzata la struttura principale dell'albero della cartelle di Nuxeo-Diff-Version, la cartella che andremo a descrivere in particolare sarà quella che rappresenta la cartella 38

43 principale dei sorgenti del Plug-In, e cioè la src. Figura Struttura delle cartelle di Nuxeo-Diff-Version le cartelle principali di src sono: main, che contiene la cartella java e resource, nelle quali sono implementate rispettivamente il codice dei tre pacchetti visti precedentemente e le risorse quali template JSF, files per la gestione della multilingua, e i file di configurazione del Plug-In in formato XML; test: che contiene il codice java di test delle classi che implementano i pacchetti Il file deployment-fragment.xml Il file necessario durante la fase di deployment-fragment.xml, descrive le attività necessarie che devono essere eseguite per l'installazione del componente (figura 4.4.2): 1) il primo elemento di questo file con l'attributo application#module sta ad indicare che Nuxeo-Diff-Version, 39

44 è un modulo che fa parte del sistema Nuxeo EP, in questo modo il Core di Nuxeo EP sarà in grado di individuare il Plug-In come Bundle e quindi di inglobarlo nel sistema. 2) il secondo elemento serve a decomprimere e copiare tutti i file del Plug-In che si trovano nella sotto-cartella web/nuxeo.war (che sono le icone e i templates) nella cartella corrispondente in Nuxeo. 3) il terzo elemento serve a creare una cartella temporanea lesson110n.tmp, utilizzata per copiare i files che contengono le traduzioni di tutti i controlli gestiti dal Plug-In e anche dei messaggi di errore a video mostrati quando l'utente esegue un'operazione non corretta. 4) il quarto elemento esegue un'operazione di append attraverso la quale aggiungerà le traduzioni del Plug-In a quelle già esistenti in Nuxeo. 40

45 Figura Struttura delle cartelle di Nuxeo-Diff-Version Il file POM Il POM (Project Object Model) è un file XML che contiene informazioni inerenti il progetto del Plug-In e i dettagli di configurazione per la compilazione con Maven. In figura viene mostrata la parte iniziale del file nella quale vengono descritti i seguenti elementi: modelversion, il valore 4.4.0, indica da quale versione di Maven il progetto viene supportato. groupid che rappresenta la struttura delle cartelle del Plug-In. artifactid che rappresenta il nome del Plug-In. name descritto come il Conversional name rappresenta un nome aggiuntivo a quello attribuito dall'elemento artifactid. version rappresenta la versione del Plug-In. description rappresenta un descrizione aggiuntiva per dare l'idea della funzionalità per il quale il Plug-In è stato creato. packaging rappresenta la modalità di compressione dell'intero progetto. parent rappresenta il progetto bundled dal quale Nuxeo-DiffVersion eredita le funzionalità. 41

46 Figura Prima parte del file POM Nella seconda parte del file, mostrata nella figura , c'è l'elemento build che gestisce il building del Plug-In, nel quale vengono inclusi i seguenti elementi: maven-jar-plugin, che è un Plug-In per il building del progetto in formato jar, la cosa importante da notare in questa sezione è la gestione del file MANIFEST.MF, che verrà trattato nella prossima sessione, che viene implementato attraverso gli elementi archive e manifest di questo file. maver-compiler-plugin dove viene dichiarata la versione di java attraverso gli elementi source e target. 42

47 Figura Seconda parte del file POM Nella terza parte del file mostrata nella figura , vengono inseriti gli elementi che rappresentano le liste delle dipendenze, una funzionalità che rappresenta la punta di diamante del compilatore Maven perchè rende il progetto modulare. Infatti attraverso questa funzionalità, è possibile ereditare funzionalità da altri componenti evitandone cosi l'implementazione diretta delle stesse all'interno del Plug-In. Nella lista di dipendenze troviamo: 43

48 jdom api Open-Source, libreria sviluppata per fornire una strumento per la gestione di documenti XML, quindi per leggere anche i documenti ODT, che è una funzionalità richiesta da NuxeoDiff-Version. nuxeo-platform-webapp-base fornisce le funzionalità di navigazione sul web jboss-seam e jboss-seam-remoting dipendenze per l'uso dei componenti Seam JBoss. pdfbox fornisce le funzionalità per la gestione dei file PDF. Figura Terza parte del file POM 44 fornisce le

49 4.4.4 Il file MANIFEST.MF Il MANIFEST.MF è un file speciale che contiene informazioni sui files compressi in formato Jar. In questo file sarà possibile trovare molte informazioni importanti tra le quali il Created-By che indica chi ha creato il Plug-In, la versione del JDK (Java Development Kit) utilizzata, l' applicazione di archiviazione che in questo caso è la Plexus Archiver, anche questo un progetto Open-Source, la versione del Plug-In e il nome dello stesso. Un informazione forse fuori standard rispetto a progetti di questo tipo, implementata dalla Nuxeo, è la Nuxeo-Require che ne delinea le dipendenze, infatti come si può osservare dalla figura le dipendenze elencate sono sostanzialmente tre : org.nuxeo.ecm.core è il bundle core di nuxeo che contiene il codice java che gestisce il versioning dei files. org.nuxeo.ecm.core.schema è il bundle Core di Nuxeo che contiene il codice che gestisce lo schema di varie funzionalità dell'applicazione. org.nuxeo.ecm.webapp.core è il bundle Core di Nuxeo che contiene il codice java per la gestione della navigazione all'interno di nuxeo. 45

50 Figura Vista del file MANIFEST.MF I file messages.properties Un file che merita attenzione, perché fornisce la funzionalità multilingua, che risultano cruciali per un ECM di questo tipo, in vista del fenomeno di globalizzazione che tutti stiamo vivendo. Come è possibile intuire osservando la figura ad ogni lingua viene creato un file corrispondente che contiene le traduzioni che verranno usate nel Plug-In. Figura I file messages.properties in diverse lingue Inoltre le traduzioni sono complessivamente 5 (figura ): 46

51 command.button.compare etichetta del bottone confronta. command.button.back etichetta del bottone indietro. command.combo.label.pages etichetta del controllo combo box error.message.onlytwocheckbox messaggio di errore mostrato all'utente che ha erroneamente scelto una sola versione da confrontare. error.message.atleasttwocheckbox messaggio di errore mostrato all'utente che ha erroneamente scelto più di due versioni da confrontare. Figura Effetti del file messages.properties 47

52 4.4.6 File seam.properties e JavaScript Il seam.properties è un file necessario per l'utilizzo dei componenti Seam JBoss. Questo file viene posto nella cartella di deploy del Plug-In (figura 4.4.6). Si potrebbe ritenere che non sia un design ottimale per un Framework, perché senza questo file, che risulta essere praticamente vuoto, il comportamento del componente, soprattutto se usato in codice JavaScript non risulta essere corretto, comunque questo file rappresenta un workaround adottato a causa di una limitazione della JVM (Java Virtual Machine). Se non venisse adottato questo meccanismo la migliore opzione sarebbe quella di elencare esplicitamente in un file ciascun componente, proprio come fanno gli altri framework attraverso un file con nome components.xml. Figura Vista su dove si trova il seam.properties Implementazione del pacchetto diffversionepkg Nella figura viene mostrato il codice dell'interfaccia DiffVersionActions, come si può notare dall'immagine le cose importante da rilevare è la parte import del file java, infatti l'inclusione del file 48

53 DocumentModel, che appartenete ad un pacchetto del Core di Nuxeo, risulta essere basilare per poter manipolare il documento stesso. Nella figura è stato riportato per motivi di spazio solo una parte dell'interfaccia, nella quale è possibile individuare la dichiarazione di metodi che poi verranno usati dai template per gestire interazione con l'utente. Figura Vista del file DiffVersionActions.java Nella figura DiffVersionActionBean viene mostrata la parte iniziale il che implementa l'interfaccia DiffVersioneAction, come si può notare dall'immagine la cosa importante da rilevare è la presenza del VersionModel, che è il file che codifica la classe che da accesso alle versioni del documento. Appena sopra il DocumentModel, c'è anche il file CoreSession.java, che serve a recuperare la sessione dell'utente che sta effettuando la richiesta. La sessione viene utilizzata per gestire 49

54 separatamente l'accesso alla comparazione di versioni di un documento. Infine troviamo anche l'inclusione dei file che contengono le classi per la gestione dei Log, importanti per il monitoraggio degli errori. Figura Vista del file DiffVersionActionsBeans.java Nella figura vengono mostrate due annotazioni richieste per Seam JBoss e : Definisce il nome del componente Seam per una classe, nome che viene usato nei template Jsf per accedere ai metodi del : Definisce il contesto di default del componente che in questo caso è di conversazione, che è un modo diverso di gestire le sessioni HTTP usato da Seam JBoss. 50

55 Figura Annotazioni di Seam JBoss Nella figura viene mostrato un metodo evidenziare come viene implementato l'accesso ai metodi delle classi gestite dal Core di Nuxeo. Figura Vista di un metodo che accede al core di Nuxeo Implementazione del pacchetto org.nuxeo.typedocpkg Le classi di questo pacchetto sono state progettate per essere utilizzate dal DiffVersionActionBean. Come si può notare dalla figura ci sono quattro classi diverse che implementano tutte la stessa interfaccia che è GenericDoc.java. Dai nomi dei file è possibile determinare quali tipi di documento queste classi gestiscono, la ODTDoc.java implementa i metodi di GenericDoc per documenti di tipo 51

56 OpenOffice, la PdfDoc per i documenti PDF e cosi via. Figura Vista dell'albero delle classi del package org.nuxeo.typedocpkg Nella figura viene mostrata l'interfaccia GenericDoc con i tre metodi da implementare: ExtractStrFromDoc : mostra la pagina corrente in formato testo del documento in passato come parametro di input. NrPages : ritorna il numero di pagine del documento passato come parametro di input. SetPage : posiziona la pagina corrente del documento con il numero di pagina passato come parametro di input. Figura L'interfaccia GenericDoc 52

57 4.4.9 Implementazione del pacchetto org.nuxeo.diffmatch In questo pacchetto la classe sulla quale concentrare l'attenzione è la Diff, che rappresenta la differenza individuata tra due stringhe di testo, questa viene utilizzata dalla classe DiffMatch, infatti questa classe ha come metodo diff_main che date in input due oggetti di tipo String ritorna un oggetto di tipo LinkedList di tipo Diff, praticamente una collezione di oggetti di tipo Diff. (figura ) Figura L'interfaccia GenericDoc da come si può notare dalla figura una proprietà della classe Diff è operation e cioè il tipo di differenza che può essere uno dei seguenti tipi: INSERT : la differenza rispetto alla versione precedente è un'aggiunta di testo. DELETE : la differenza rispetto alla versione precedente è di rimozione di testo. EQUAL : nessuna differenza tra le due versioni di testo. 53

58 Figura La classe Diff Per quando riguarda ancora la classe DiffMatch, ha come metodo diff_prettyhtml (figura ) che dato come input una collezione di tipo Diff ritorna come risultato una stringa in formato Html, utilizzabile direttamente come risultato della comparazione di due files. Questo metodo viene utilizzato dal metodo compareres di DiffVersionActionsBean che a sua volta viene utilizzato nel codice JavaScript del template che gestisce le versioni storicizzate del documento secondo l'architettura JSF / Seam JBoss. 54

59 Figura Il Metodo diff_prettzhtml I template JSF e JavaScript Nella figura viene mostrato l'albero della cartelle che contiene i template JSF dove: document_result_compare.xhtml: template che crea una pagina HTML che mostra il risultato della comparazione; document_versions_buttons.xhtml: utilizzato da document_versions_template.xhtml aggiunge i controlli che servono a selezionare le versioni da comparare. document_versions_template.xhtml: template che crea la pagina HTML che mostra le versioni del documento. document_versions.xhtml : template che crea la pagina HTML che ingloba le pagine create dai template visti prima. 55

60 Figura vista della cartella dei template JSF Nella figura viene mostrato l'uso di codice Javascript unitamente alla tecnologia Seam JBoss, infatti come si può notare nella funzione setpagenr viene invocato il metodo setpagenr del componente compareversionactions che rappresenta il valore della classe DiffVersionActionsBeans vista prima. Figura chiamata di componente Seam JBoss da javascript Nella figura viene mostrato come viene implementata la chiamata dal template JSF verso il componente Seam JBoss nell'evento onclick del componente visuale di tipo selectbooleancheckbox. Figura chiamata di componente Seam JBoss da template 56

61 4.5 Casi d'uso In questo paragrafo verranno eseguiti i Casi d'uso che saranno utili a vedere il funzionamento del Plug-In dal punto di vista utente. In figura viene mostrata la pagina del Document Management, dove sono elencati i documenti che sono a disposizione dell'utente Antonio nella sua area di lavoro, come si potrà notare sono stati inseriti volutamente tutti i tipi gestiti dal Plug-In più un tipo non gestito, perché sprovvisto di allegati, che è quello con il titolo nota vista della finestra Document Management 57

62 In figura sarà possibile vedere la scheda Archiviato versioni che rappresenta la scheda che contiene le versioni archiviate dello stesso documento. Per chi non conoscesse Nuxeo DM, la scheda standard è uguale a quella mostrata in figura con la differenza che non esistono i controlli di tipo selectbooleancheckbox e non esiste il bottone Confronta infatti questi nuovi controlli vengono resi disponibili soltanto dopo l'installazione del Plug-In vista della scheda delle versioni archiviate Il risultato della comparazione tra la versione 0.2 e la versione 0.3, come si può notare dalla figura 4.5.3, viene espressa usando per ogni tipo di differenza una formattazione visuale diversa, infatti in caso di aggiunta il testo visualizzato sarà con uno sfondo verde e sottolineato, invece in caso di cancellazione il testo sarà con sfondo rosa e sbarrato. Nella figura è stato preso come esempio il documento di questa tesi, infatti le due versioni sono 58

63 state memorizzate in due diverse fasi di lavorazione per le quali la più odierna è composta da più paragrafi e con la modifica di alcuni titoli risultato di un'operazione di comparazione tra due diverse vesioni del file pdf text 59

64 Un'altro aspetto fondamentale del Plug-In è l'interazione con l'utente, infatti quando l'utente selezionando una sola versione sceglie erroneamente il bottone confronta il sistema mostrerà un messaggio di errore nel quale avviserà lo stesso che è necessario selezionare due versioni (figura 4.5.4) messaggio di errore quando l'utente selezionando un sola versione sceglie il bottone confronta allo stesso modo quando l'utente cerca di selezionare più di due versioni l'utente verrà avvisato che è possibile scegliere soltanto due versioni (figura 4.5.5) messaggio di errore quando l'utente cerca di selezionare più di due versioni 60

65 nella figura viene mostrato l'aspetto della scheda Archiviato versioni di un documento che ha versioni storicizzate senza documenti allegati in questo caso il sistema non trovando nessun documento da comparare mostrerà la scheda senza i controlli che consentono la comparazione Archiviato versioni di un documento senza allegati. 61

66 Capitolo Conclusioni e sviluppi futuri 5 5 Conclusioni e sviluppi futuri Il lavoro svolto nel corso della tesi ha prodotto dei risultati conformi alle aspettative ed agli obiettivi prefissati. Attraverso la progettazione del Plug-in Nuxeo-Diff-Version, si è potuto venire a contatto con uno strumento ECM estremamente potente come Nuxeo DM, che permette di gestire in modo ottimale e semplice non solo i documenti ma anche il loro workflow quindi molto intuitivo e di facile comprensione anche ad utenti meno esperti. Lavorando a stretto contatto, attraverso mailing list, con il team di sviluppatori di Nuxeo, si è potuti venire a conoscenza delle loro esigenze per quanto riguarda la struttura e i contenuti del Plug-In stesso. Basandoci quindi sulle richieste degli sviluppatori stessi sono stati messi a punto dei requisiti da sviluppare, relativi a nuove funzionalità da implementare ma anche alla correzione di possibili imperfezioni rilevate. L enfasi di questo lavoro è stata posta sull implementazione sia delle funzionalità che sull aspetto della presentazione all utente. Il Plug-In è stato inoltre presentato al Nuxeo Wold 2011, dove ha riscosso un discreto successo soprattutto da parte della community di Nuxeo. Uno degli sviluppi futuri di questo lavoro potrebbe essere quindi il supporto di altri tipi di formato di documenti da comparare lo sviluppo grafico per offrire agli utenti finali ma potrebbe essere anche un modo alternativo di presentazione della comparazione come ad esempio con finestre separate. 62

67 Appendice A Appendice A Questa appendice ha il compito di illustrare come installare NuxeoDiff-Version in Nuxeo DM attraverso una procedura automatica che Nuxeo mette a disposizione agli utenti finali. La prima cosa da fare è quella di connettersi con un utente che ha i diritti di installazione di un Plug-In di terze parti, questo tipo di utente è Administrator (figura 6.1).u e Figura 6.1. connessione con diritti di amministratore 63

68 dopo posizionarsi sulla scheda Admin Center (1), menu' Update Center (2) ed infine pacchetti locali (3) come mostrato in figura 6.2. Figura 6.2. finestra di installazione di un Plug-In. selezionare il Plug-In attraverso il bottone sfoglia (figura 6.3), di solito il Plug-In è memorizzato sul disco sottoforma di file compresso zip, questo formato rispetta lo standard richiesto dalla Nuxeo. Nel nostro esempio il Plug-in si trova su disco ma prossimamente sarà possibile scaricarlo dall'apposito sito. Figura 6.3. caricamento del Plug-In. 64

Whorkshop luglio 2015

Whorkshop luglio 2015 Whorkshop luglio 2015 Argomenti dell evento Privacy e dematerializzazione 1/21 www.ambrostudio.it Perché la Privacy e la dematerializzazione? Cambia l atteggiamento nella gestione dei documenti E più un

Dettagli

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni)

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni) Progettazione di Sistemi Interattivi Struttura e supporti all implementazione di applicazioni in rete (cenni) Docente: Daniela Fogli Gli strati e la rete Stratificazione da un altro punto di vista: i calcolatori

Dettagli

Titolo Perché scegliere Alfresco. Titolo1 ECM Alfresco

Titolo Perché scegliere Alfresco. Titolo1 ECM Alfresco Titolo Perché scegliere Alfresco Titolo1 ECM Alfresco 1 «1» Agenda Presentazione ECM Alfresco; Gli Strumenti di Alfresco; Le funzionalità messe a disposizione; Le caratteristiche Tecniche. 2 «2» ECM Alfresco

Dettagli

Kirey Re.Search 2.0. Piattaforma di ricerca Open Source

Kirey Re.Search 2.0. Piattaforma di ricerca Open Source Kirey Re.Search 2.0 Piattaforma di ricerca Open Source Le esigenze Quando si parla di motori di ricerca si tende a pensare istintivamente solo a quelli utilizzati per effettuare ricerche in Internet, come

Dettagli

Architetture per le applicazioni web-based. Mario Cannataro

Architetture per le applicazioni web-based. Mario Cannataro Architetture per le applicazioni web-based Mario Cannataro 1 Sommario Internet e le applicazioni web-based Caratteristiche delle applicazioni web-based Soluzioni per l architettura three-tier Livello utente

Dettagli

Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni

Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni White paper Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni Panoramica Questo documento analizza il supporto alla programmabilità nell'infrastruttura ACI (Application Centric

Dettagli

Corso di Web programming Modulo T3 A2 - Web server

Corso di Web programming Modulo T3 A2 - Web server Corso di Web programming Modulo T3 A2 - Web server 1 Prerequisiti Pagine statiche e dinamiche Pagine HTML Server e client Cenni ai database e all SQL 2 1 Introduzione In questa Unità si illustra il concetto

Dettagli

Candidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013

Candidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013 e di e di Candidato: Luca Russo Docente: Corso di laurea in Informatica Applicata Facoltá di Scienze e Tecnologie Programmazione su Reti 27 Marzo 2013 Traccia d esame Sviluppare multitier con disaccoppiamento

Dettagli

Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali

Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali Riusabilità del software - Catalogo delle applicazioni: Applicativo verticale Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali Amministrazione: Regione Piemonte - Direzione Innovazione,

Dettagli

Thea PDM. Cos è Thea PDM? Il PDM (Product Data Management)

Thea PDM. Cos è Thea PDM? Il PDM (Product Data Management) Thea PDM Il PDM (Product Data Management) Nell'industria manifatturiera il PDM è un software per la raccolta ed organizzazione dei file nelle divere fasi di ideazione, progettazione, produzione ed obsolescenza

Dettagli

White Paper 1. INTRODUZIONE...2 2. TECNOLOGIE SOFTWARE IMPIEGATE...2 3. APPROCCIO PROGETTUALE...10 3. RISULTATI...10

White Paper 1. INTRODUZIONE...2 2. TECNOLOGIE SOFTWARE IMPIEGATE...2 3. APPROCCIO PROGETTUALE...10 3. RISULTATI...10 Soluzioni software di EDM "Electronic Document Management" Gestione dell archiviazione, indicizzazione, consultazione e modifica dei documenti elettronici. Un approccio innovativo basato su tecnologie

Dettagli

tesi di laurea Anno Accademico 2005/2006 relatore Ch.mo prof. Porfirio Tramontana candidato Manganiello Felice Matr. 534/001569

tesi di laurea Anno Accademico 2005/2006 relatore Ch.mo prof. Porfirio Tramontana candidato Manganiello Felice Matr. 534/001569 tesi di laurea CONFRONTO TRA SOLUZIONI COMMERCIALI PER LA REALIZZAZIONE Anno Accademico 2005/2006 relatore Ch.mo prof. Porfirio Tramontana candidato Manganiello Felice Matr. 534/001569 CONFRONTO TRA SOLUZIONI

Dettagli

Politecnico di Milano

Politecnico di Milano 1 Politecnico di Milano Facoltà di Ingegneria dell Informazione Progetto di Ingegneria del Software 2: SWIMv2 Prof.ssa Mirandola Raffaella A.A 2012/2013 SWIMv2: Small World hypotesis Machine v2 Realizzato

Dettagli

SWIM v2 Design Document

SWIM v2 Design Document PROGETTO DI INGEGNERIA DEL SOFTWARE 2 SWIM v2 DD Design Document Matteo Danelli Daniel Cantoni 22 Dicembre 2012 1 Indice Progettazione concettuale Modello ER Entità e relazioni nel dettaglio User Feedback

Dettagli

Applicazione: Share - Sistema per la gestione strutturata di documenti

Applicazione: Share - Sistema per la gestione strutturata di documenti Riusabilità del software - Catalogo delle applicazioni: Gestione Documentale Applicazione: Share - Sistema per la gestione strutturata di documenti Amministrazione: Regione Piemonte - Direzione Innovazione,

Dettagli

Appendice D. D. Web Services

Appendice D. D. Web Services D. D.1 : cosa sono I cosiddetti sono diventati uno degli argomenti più attuali nel panorama dello sviluppo in ambiente Internet. Posti al centro delle più recenti strategie di aziende del calibro di IBM,

Dettagli

DEL SENDER GUIDA INTEGRATIVA ALL INSTALLAZIONE. Versione N.1.0. Data 11/05/2009. Sender - Guida integrativa alla installazione

DEL SENDER GUIDA INTEGRATIVA ALL INSTALLAZIONE. Versione N.1.0. Data 11/05/2009. Sender - Guida integrativa alla installazione GUIDA INTEGRATIVA ALL INSTALLAZIONE DEL SENDER Versione N.1.0 Data 11/05/2009 Versione 1.0, Data emissione 11/05/2009 Pag. 1 di 15 Revisione Capitolo Modifica Data 1.0 Prima Emissione 11/05/2009 Versione

Dettagli

Applicazione: GAS - Gestione AcceSsi

Applicazione: GAS - Gestione AcceSsi Riusabilità del software - Catalogo delle applicazioni Gestione ICT Applicazione: GAS - Gestione AcceSsi Amministrazione: Consiglio Nazionale delle Ricerche (CNR) Responsabile dei sistemi informativi Nome

Dettagli

REGIONE BASILICATA UFFICIO S. I. R. Standard Tecnologici dei Sistemi Informativi

REGIONE BASILICATA UFFICIO S. I. R. Standard Tecnologici dei Sistemi Informativi UFFICIO S. I. R. Standard Tecnologici dei Sistemi Informativi Autori: Dott.ssa Domenica Nardelli (P.O.C. Area Applicativa Ufficio SIR) Data di creazione: 03 Ottobre 2005 Ultimo aggiornamento: 03 Ottobre

Dettagli

2010 Antonio Musarra s Blog. Sessione introduttiva sui CMS (versione 1.0 16/03/2010)

2010 Antonio Musarra s Blog. Sessione introduttiva sui CMS (versione 1.0 16/03/2010) 2010 Antonio Musarra s Blog 1 Sessione introduttiva sui CMS (versione 1.0 16/03/2010) CMS Content Management System 2 Un Content Management System, in acronimo CMS, letteralmente "sistema di gestione dei

Dettagli

N.E.A.T. ( Neutral Environment Application Tools )

N.E.A.T. ( Neutral Environment Application Tools ) N.E.A.T. ( Neutral Environment Application Tools ) SCOPO : Ambiente per lo sviluppo di applicazioni WEB multimediali basate su Data Base Relazionale e strutturate secondo il modello a tre livelli: Presentazione

Dettagli

Progettazione: Tecnologie e ambienti di sviluppo

Progettazione: Tecnologie e ambienti di sviluppo Contratto per l acquisizione di servizi di Assistenza specialistica per la gestione e l evoluzione del patrimonio software della Regione Basilicata. Repertorio n. 11016 del 25/09/2009 Progettazione: Tecnologie

Dettagli

Progettazione di interfacce web indipendenti dal dispositivo

Progettazione di interfacce web indipendenti dal dispositivo Progettazione di interfacce web indipendenti dal dispositivo Candidato Izzo Giovanni, Matr. 41/1305 Relatore Prof. Porfirio Tramontana 1 Panoramica su contesto ed obiettivi Il contesto della tesi è legato

Dettagli

Novell ZENworks Configuration Management in ambiente Microsoft * Windows *

Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Guida GESTIONE SISTEMI www.novell.com Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Novell ZENworks Configuration Management in ambiente Microsoft Windows Indice: 2..... Benvenuti

Dettagli

EyesDGTV. Your digital terrestrial television. Soluzioni Informatiche

EyesDGTV. Your digital terrestrial television. Soluzioni Informatiche EyesDGTV Your digital terrestrial television Soluzioni Informatiche Cos è EyesDGTV è la soluzione che Betacom propone per la televisione digitale terrestre. Basata su tecnologie consolidate, quali J2EE

Dettagli

Realizzazione di uno strumento web-based per la simulazione remota di reti di sensori senza filo

Realizzazione di uno strumento web-based per la simulazione remota di reti di sensori senza filo tesi di laurea Realizzazione di uno strumento web-based per la simulazione remota di reti di sensori senza filo Anno Accademico 2009/2010 relatore Ch.mo prof. Marcello Cinque correlatore Ing. Catello di

Dettagli

Novità di Crystal Reports XI

Novità di Crystal Reports XI Introduzione Introduzione Questa sezione offre una panoramica di dettagliata dei componenti, delle funzioni e dei vantaggi forniti dalla versione più recente di Crystal Reports. Alcuni tra i più importanti

Dettagli

Protocolli e architetture per WIS

Protocolli e architetture per WIS Protocolli e architetture per WIS Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di informazioni e servizi Le architetture moderne dei WIS

Dettagli

MEGA Advisor Architecture Overview MEGA 2009 SP5

MEGA Advisor Architecture Overview MEGA 2009 SP5 Revisione: August 22, 2012 Creazione: March 31, 2010 Autore: Jérôme Horber Contenuto Riepilogo Il documento descrive i requisiti sistema e le architetture di implementazione possibili per MEGA Advisor.

Dettagli

Alfresco ECM. La gestione documentale on-demand

Alfresco ECM. La gestione documentale on-demand Alfresco ECM La gestione documentale on-demand Alfresco 3.2 La gestione documentale on-demand Oltre alla possibilità di agire sull efficienza dei processi, riducendone i costi, è oggi universalmente conosciuto

Dettagli

Presentazione e dimostrazione di utilizzo

Presentazione e dimostrazione di utilizzo L AMBIENTE OPEN SOURCE A SUPPORTO DELLE BEST PRACTICE DI ITIL un progetto open source per la gestione dei processi ICT Presentazione e dimostrazione di utilizzo Fabio Bottega f.bottega@tecnoteca.it MILANO,

Dettagli

La realizzazione di WebGis con strumenti "Open Source".

La realizzazione di WebGis con strumenti Open Source. La realizzazione di WebGis con strumenti "Open Source". Esempi di impiego di strumenti a sorgente aperto per la realizzazione di un Gis con interfaccia Web Cos'è un Web Gis? Da wikipedia: Sono detti WebGIS

Dettagli

REGIONE TOSCANA GERTIC. Documentazione di progetto. Viale Montegrappa 278/E 59100 Prato (Italy) Telefono +39.0574.514180 Fax +39.0574.

REGIONE TOSCANA GERTIC. Documentazione di progetto. Viale Montegrappa 278/E 59100 Prato (Italy) Telefono +39.0574.514180 Fax +39.0574. REGIONE TOSCANA GERTIC Documentazione di progetto Viale Montegrappa 278/E 59100 Prato (Italy) Telefono +39.0574.514180 Fax +39.0574.551195 www.netstudio.it INFORMAZIONI DOCUMENTO PROGETTO GeRTIC Gestione

Dettagli

Manuale di riferimento di HP Web Jetadmin Database Connector Plug-in

Manuale di riferimento di HP Web Jetadmin Database Connector Plug-in Manuale di riferimento di HP Web Jetadmin Database Connector Plug-in Informazioni sul copyright 2004 Copyright Hewlett-Packard Development Company, L.P. Sono vietati la riproduzione, l'adattamento e la

Dettagli

Sviluppo di un applicazione mobile per la gestione degli interventi tecnici tramite geolocalizzazione

Sviluppo di un applicazione mobile per la gestione degli interventi tecnici tramite geolocalizzazione UNIVERSITA DEGLI STUDI DI FERRARA Corso di Laurea in informatica Anno Accademico 2011-2012 Sviluppo di un applicazione mobile per la gestione degli interventi tecnici tramite geolocalizzazione Relatore:

Dettagli

Altre due categorie non rientrano né nel software di sistema, né in quello applicativo pur contenendo elementi tipici di entrambi sono:

Altre due categorie non rientrano né nel software di sistema, né in quello applicativo pur contenendo elementi tipici di entrambi sono: 3. Il Software TIPI DI SOFTWARE La macchina come insieme di componenti hardware di per sé non è in grado di funzionare. Sono necessari dei programmi progettati dall uomo che indicano la sequenza di istruzioni

Dettagli

Architettura Tecnica i. Architettura Tecnica

Architettura Tecnica i. Architettura Tecnica i Architettura Tecnica ii Copyright 2005-2011 Link.it s.r.l. iii Indice 1 Scopo del documento 1 1.1 Abbreviazioni..................................................... 1 2 Overview 1 2.1 La PdD........................................................

Dettagli

Messa in esercizio, assistenza e aggiornamento di una Piattaform Open Source Liferay plug-in per ARPA

Messa in esercizio, assistenza e aggiornamento di una Piattaform Open Source Liferay plug-in per ARPA Messa in esercizio, assistenza e aggiornamento di una Piattaform Open Source Liferay plug-in per ARPA Pag. 1 di 16 Redatto da F. Fornasari, C. Simonelli, E. Croci (TAI) Rivisto da E.Mattei (TAI) Approvato

Dettagli

Breve introduzione allo sviluppo WEB. a cura di Ciro Attanasio - ciro.attanasio@email.cz

Breve introduzione allo sviluppo WEB. a cura di Ciro Attanasio - ciro.attanasio@email.cz Breve introduzione allo sviluppo WEB a cura di Ciro Attanasio - ciro.attanasio@email.cz Partiamo (1 di 1) Come funziona il WEB e quali tecnologie lo compongono Cos è un Client (1 di 2) Un client, in informatica,

Dettagli

DD - Design Document

DD - Design Document Politecnico di Milano Progetto di Ingegneria del Software 2 DD - Design Document Autori: Claudia Foglieni Giovanni Matteo Fumarola Massimo Maggi Professori: Elisabetta Di Nitto Raffaela Mirandola 1 gennaio

Dettagli

Architettura e tecnologie per lo sviluppo del Setup-Dashboard. Setup Srl Information Technologies

Architettura e tecnologie per lo sviluppo del Setup-Dashboard. Setup Srl Information Technologies Architettura e tecnologie per lo sviluppo del Setup-Dashboard Setup Srl Information Technologies 1 Introduzione INTRODUZIONE In seguito a diverse richieste, Setup ha deciso di sviluppare un modulo denominato

Dettagli

Curriculum Vitae INFORMAZIONI PERSONALI COGNOME NOME

Curriculum Vitae INFORMAZIONI PERSONALI COGNOME NOME INFORMAZIONI PERSONALI COGNOME NOME Curriculum Vitae GIOVANNETTI ANTONIO INDIRIZZO Via della Riserva Nuova, 73 00132 Roma TELEFONO +39 328 8990184 EMAIL antonio.giovannetti@gmail.com GVNNTN74H05I838O Italiana

Dettagli

Silk Learning Content Management. Collaboration, content, people, innovation.

Silk Learning Content Management. Collaboration, content, people, innovation. Collaboration, content, people, innovation. The Need for a Learning Content Management System In un mercato in continua evoluzione, dominato da un crescente bisogno di efficienza, il capitale intellettuale

Dettagli

Informazioni generali sul corso

Informazioni generali sul corso abaroni@yahoo.com Informazioni generali sul corso Introduzione a BusinessObjects Enterprise XI - Release 2 Chi sono. Io? Adolfo Baroni E-mail: abaroni@yahoo.com 2 Pagina 1 Obiettivi del corso hamministrazione

Dettagli

Application Server per sviluppare applicazioni Java Enterprise

Application Server per sviluppare applicazioni Java Enterprise Application Server per sviluppare applicazioni Java Enterprise Con il termine Application Server si fa riferimento ad un contenitore, composto da diversi moduli, che offre alle applicazioni Web un ambiente

Dettagli

Novità di Visual Studio 2008

Novità di Visual Studio 2008 Guida al prodotto Novità di Visual Studio 2008 Introduzione al sistema di sviluppo di Visual Studio Visual Studio Team System 2008 Visual Studio Team System 2008 Team Foundation Server Visual Studio Team

Dettagli

F O R M A T O E U R O P E O

F O R M A T O E U R O P E O F O R M A T O E U R O P E O P E R I L C U R R I C U L U M V I T A E Informazioni personali Nome e Cognome Caruso Indirizzo Via Casale dei Greci 1bis 95031 Adrano (Catania) Telefono 3288850975 E-mail andrealuca.caruso@gmail.com

Dettagli

Mash Up applicativo con l'opensource per l'accesso ai servizi aziendali

Mash Up applicativo con l'opensource per l'accesso ai servizi aziendali Mash Up applicativo con l'opensource per l'accesso ai servizi aziendali Marco Celotti m.celotti@tecnoteca.com Davide Pavan - d.pavan@tecnoteca.com 2 Mashup applicativo Una esigenza aziendale sempre più

Dettagli

Introduzione al linguaggio Java: Servlet e JSP

Introduzione al linguaggio Java: Servlet e JSP Introduzione al linguaggio Java: Servlet e JSP Corso di Gestione della Conoscenza d Impresa A. A. 2006/2007 Dipartimento di Informatica Università degli Studi di Bari 1 Servlet e JSP: il contesto Un applicazione

Dettagli

Applicazione: OIL Online Interactive helpdesk

Applicazione: OIL Online Interactive helpdesk Riusabilità del software - Catalogo delle applicazioni: Gestione ICT Applicazione: OIL Online Interactive helpdesk Amministrazione: Consiglio Nazionale delle Ricerche (CNR) Responsabile dei sistemi informativi

Dettagli

Concetti base. Impianti Informatici. Web application

Concetti base. Impianti Informatici. Web application Concetti base Web application La diffusione del World Wide Web 2 Supporto ai ricercatori Organizzazione documentazione Condivisione informazioni Scambio di informazioni di qualsiasi natura Chat Forum Intranet

Dettagli

Sistemi per la produzione, gestione e conservazione di contenuti digitali CMS. L12 - Comunicazione e archiviazione digitale A.A 2015-2016.

Sistemi per la produzione, gestione e conservazione di contenuti digitali CMS. L12 - Comunicazione e archiviazione digitale A.A 2015-2016. Sistemi per la produzione, gestione e conservazione di contenuti digitali L12 - Comunicazione e archiviazione digitale A.A 2015-2016 Carlo Savoretti carlo.savoretti@unimc.it Produzione Contenuti prodotti

Dettagli

Le scelte tecnologiche di RUP System

Le scelte tecnologiche di RUP System Cremona 22 novembre 2007 Le scelte tecnologiche di System - Metarete Linguaggio di programmazione Linguaggio di programmazione: Java Semplice e robusto Orientato agli oggetti Indipendente dalla piattaforma

Dettagli

DoQui Progetto gestione documentale

DoQui Progetto gestione documentale Migrazione a Sistemi Open Source: Problematiche e Soluzioni in PA e Aziende Lugano, 06/02/2009 DoQui Progetto gestione documentale Domenico Lucà Direzione Piattaforme CSI-Piemonte Il CSI-Piemonte (Consorzio

Dettagli

FileMaker 12. Guida ODBC e JDBC

FileMaker 12. Guida ODBC e JDBC FileMaker 12 Guida ODBC e JDBC 2004 2012 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker e Bento sono marchi di FileMaker, Inc.

Dettagli

Applicazione: Piattaforma di Comunicazione Unificata

Applicazione: Piattaforma di Comunicazione Unificata Riusabilità del software - Catalogo delle applicazioni: Amministrativi/Contabile Applicazione: Piattaforma di Comunicazione Unificata Amministrazione: Regione Piemonte - Direzione Innovazione, Ricerca

Dettagli

excellent organice Archiviazione e Gestione Documentale

excellent organice Archiviazione e Gestione Documentale excellent organice Archiviazione e Gestione Documentale excellent organice è la soluzione per archiviare i documenti, reperirli, consultarli, e gestirne la movimentazione, con facilità ed in modo controllato.

Dettagli

Presentazione della famiglia openshare 2.2. 4/30/2003 Infosquare.com 1

Presentazione della famiglia openshare 2.2. 4/30/2003 Infosquare.com 1 Presentazione della famiglia 2.2 4/30/2003 Infosquare.com 1 La piattaforma Un ambiente completo e versatile per la costruzione di portali aziendali Una piattaforma integrata di content management per raccogliere,

Dettagli

MetaMAG METAMAG 1 IL PRODOTTO

MetaMAG METAMAG 1 IL PRODOTTO METAMAG 1 IL PRODOTTO Metamag è un prodotto che permette l acquisizione, l importazione, l analisi e la catalogazione di oggetti digitali per materiale documentale (quali immagini oppure file di testo

Dettagli

WEB TECHNOLOGY. Il web connette. LE persone. E-book n 2 - Copyright Reserved

WEB TECHNOLOGY. Il web connette. LE persone. E-book n 2 - Copyright Reserved WEB TECHNOLOGY Il web connette LE persone Indice «Il Web non si limita a collegare macchine, ma connette delle persone» Il Www, Client e Web Server pagina 3-4 - 5 CMS e template pagina 6-7-8 Tim Berners-Lee

Dettagli

Content Management Systems

Content Management Systems Content Management Systems L o Guido Porruvecchio Tecnologia e Applicazioni della Rete Internet Definizione Un Content Management System (CMS) è letteralmente un sistema per la gestione dei contenuti Definisce

Dettagli

Enrico Fagnoni BOTK IN A NUTSHELL

Enrico Fagnoni <e.fagnoni@e-artspace.com> BOTK IN A NUTSHELL Enrico Fagnoni BOTK IN A NUTSHELL 20/01/2011 1 Business Ontology ToolKit Business Ontology Toolkit (BOTK) è un insieme estensibile di strumenti per realizzare applicazioni basate

Dettagli

Centro Nazionale per l Informatica nella Pubblica Amministrazione. Gara a procedura aperta n. 1/2007. per l appalto dei

Centro Nazionale per l Informatica nella Pubblica Amministrazione. Gara a procedura aperta n. 1/2007. per l appalto dei Centro Nazionale per l Informatica nella Pubblica Amministrazione Gara a procedura aperta n. 1/2007 per l appalto dei Servizi di rilevazione e valutazione sullo stato di attuazione della normativa vigente

Dettagli

Il CMS Moka. Giovanni Ciardi Regione Emilia Romagna

Il CMS Moka. Giovanni Ciardi Regione Emilia Romagna Il CMS Moka Giovanni Ciardi Regione Emilia Romagna Moka è uno strumento per creare applicazioni GIS utilizzando oggetti (cartografie, temi, legende, database, funzioni) organizzati in un catalogo condiviso.

Dettagli

Il Web, HTML e Java Corso di Laurea in Ingegneria Informatica Progetto S.C.E.L.T.E.

Il Web, HTML e Java Corso di Laurea in Ingegneria Informatica Progetto S.C.E.L.T.E. Il Web, HTML e Java Corso di Laurea in Ingegneria Informatica Progetto S.C.E.L.T.E. Università di Bologna Facoltà di Ingegneria Bologna, 08/02/2010 Outline Da applicazioni concentrate a distribuite Modello

Dettagli

Guida introduttiva a BusinessObjects XI Release 2 Service Pack 2/Productivity Pack

Guida introduttiva a BusinessObjects XI Release 2 Service Pack 2/Productivity Pack Guida introduttiva a BusinessObjects XI Release 2 Service Pack 2/Productivity Pack Informazioni sul manuale Informazioni sul manuale In questo manuale sono contenute informazioni introduttive sull'utilizzo

Dettagli

LBINT. http://www.liveboxcloud.com

LBINT. http://www.liveboxcloud.com 2014 LBINT http://www.liveboxcloud.com LiveBox Srl non rilascia dichiarazioni o garanzie in merito al contenuto o uso di questa documentazione e declina qualsiasi garanzia espressa o implicita di commerciabilità

Dettagli

Ottimizzazione dello sviluppo software con Microsoft Visual Studio 2008

Ottimizzazione dello sviluppo software con Microsoft Visual Studio 2008 Ottimizzazione dello sviluppo software con Microsoft Visual Studio 2008 White paper Novembre 2007 Per informazioni aggiornate, visitare l indirizzo www.microsoft.com/italy/vstudio È possibile che a questo

Dettagli

Da Settembre 2010 Oggi. Go Project srl via Alessandria 88, Roma. Inail Istituto Nazionale Infortuni sul Lavoro

Da Settembre 2010 Oggi. Go Project srl via Alessandria 88, Roma. Inail Istituto Nazionale Infortuni sul Lavoro F O R M A T O E U R O P E O P E R I L C U R R I C U L U M V I T A E Qualifica: INFORMAZIONI PERSONALI Nome Nazionalità italiana Data di nascita 08/10/1974 ESPERIENZA LAVORATIVA Date (da a) Da Settembre

Dettagli

Analisi e utilizzo di un framework per lo sviluppo di applicazioni web

Analisi e utilizzo di un framework per lo sviluppo di applicazioni web tesi di laurea Anno Accademico 2011/2012 relatore Ch.mo prof. Marcello Cinque correlatore Ing. Fabio De Paolis candidato Michele Basile Matr. 534/3239 Web Development Frameworks Nella realizzazione di

Dettagli

Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET)

Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET) Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET) Ipotesi di partenza: concetti di base del networking Le ipotesi di partenza indispensabili per poter parlare di tecniche di accesso

Dettagli

Cos'è Plone: l'esperienza di Mo-Net, la Rete Civica del Comune di Modena

Cos'è Plone: l'esperienza di Mo-Net, la Rete Civica del Comune di Modena Cos'è Plone: l'esperienza di Mo-Net, la Rete Civica del Comune di Modena La PA e la condivisione del software libero: PloneGov, dall'europa all'italia Claudio Forghieri Comune di Modena Ferrara, 16 settembre

Dettagli

Programmazione Java Avanzata

Programmazione Java Avanzata Programmazione Java Avanzata Introduzione a Servlet e Struts 2 Ing. Giuseppe D'Aquì 1 Testi Consigliati Java Enterprise in a nutshell, 3 rd edition (O'Reilly) Struts 2 in Action Brown, Davis, Stanlick

Dettagli

Sviluppo di applicazioni Internet: l'uso integrato di XML e Java

Sviluppo di applicazioni Internet: l'uso integrato di XML e Java UNIVERSITA' DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria - Sede di Modena Corso di Laurea in Ingegneria Infomatica Sviluppo di applicazioni Internet: l'uso integrato di XML e Java realizzata

Dettagli

Primi passi con Apache Tomcat. L application server dell Apache group

Primi passi con Apache Tomcat. L application server dell Apache group Primi passi con Apache Tomcat L application server dell Apache group 2 J2EE Direttive Sun Microsystem Che cos è un application server EJB Maggiori application server open source 3 Tomcat Open Source e

Dettagli

Passaggio dei dati tra HTML e PHP : array superglobali $_GET e $_POST

Passaggio dei dati tra HTML e PHP : array superglobali $_GET e $_POST Passaggio dei dati tra HTML e PHP : array superglobali $_GET e $_POST I valori inviati da un modulo (con metodo post o get), sono automaticamente memorizzati da PHP sia in variabili di ambiente associate

Dettagli

Port Community System del Porto di Ravenna CONFIGURAZIONE

Port Community System del Porto di Ravenna CONFIGURAZIONE Port Community System del Porto di Ravenna CONFIGURAZIONE SOMMARIO Indicazioni generali... 3 Dipendenze software... 4 Lato server... 4 Lato client... 4 Organizzazione del sistema... 5 Struttura delle directory...

Dettagli

Software per la gestione di musei di arte contemporanea1

Software per la gestione di musei di arte contemporanea1 Software per la gestione di musei di arte contemporanea1 Identificativo del progetto: CA Nome documento: System Design(SD) Identificativo del documento: 6 CA_SD_E1_R1 Data del documento: 21/05/2012 Prima

Dettagli

ENTERPRISE KNOWLEDGE MANAGEMENT

ENTERPRISE KNOWLEDGE MANAGEMENT ENTERPRISE KNOWLEDGE MANAGEMENT COMPANY PROFILE Profilo ed organizzazione i.know srl (nata come divisione operativa nel corso del 2007 ed incubata all interno del Politecnico di Milano) è uno spin-off

Dettagli

JUG Ancona Italy Spring Framework

JUG Ancona Italy Spring Framework JUG Ancona Italy Spring Framework Andrea Del Bene Jug Marche Spring: perché e nato e perché lo voglio imparare? Quando si decide di investire in un nuova tecnologia è indispensabile capire il valore aggiunto

Dettagli

Framework di Middleware. per Architetture Enterprise

Framework di Middleware. per Architetture Enterprise Framework di Middleware per Architetture Enterprise Corso di Ingegneria del Software A.A.2011-2012 Un po di storia 1998: Sun Microsystem comprende l importanza del World Wide Web come possibile interfaccia

Dettagli

Architetture Software

Architetture Software Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Ingegneria del Software Architetture Software Giulio Destri Ing. del Sw: Architettura - 1 Scopo del modulo

Dettagli

LPIC-1 Junior Level Linux Certification

LPIC-1 Junior Level Linux Certification Corso 2012/2013 Introduzione a GNU/Linux Obiettivi Il percorso formativo ha l obiettivo di fornire ai partecipanti le competenze basilari necessarie per installare, configurare e gestire un server/workstation

Dettagli

Confronto tra VMware Zimbra e le principali piattaforme di posta elettronica e collaborazione

Confronto tra VMware Zimbra e le principali piattaforme di posta elettronica e collaborazione Confronto tra VMware Zimbra e le principali piattaforme di posta elettronica e collaborazione W H I T E PA P E R : Z I M B R A E L A C O N C O R R E N Z A Introduzione La posta elettronica è un'applicazione

Dettagli

Suite OpenOffice. Introduzione a

Suite OpenOffice. Introduzione a Suite OpenOffice Introduzione a Cosa è OpenOffice.org? OpenOffice.org è una suite per ufficio composta da: elaboratore di testi foglio di calcolo creatore di presentazioni gestore di basi di dati Writer

Dettagli

Archiviazione Documentale

Archiviazione Documentale Archiviazione Documentale Il Progetto OPEN SOURCE tutto Italiano per la Gestione Elettronica della documentazione, firma digitale, conservazione sostitutiva, fatturazione elettronica e protocollo informatico.

Dettagli

Applicazione: SIPER Servizi In linea per il PERsonale

Applicazione: SIPER Servizi In linea per il PERsonale Riusabilità del software - Catalogo delle applicazioni Gestione Personale Applicazione: SIPER Servizi In linea per il PERsonale Amministrazione: Consiglio Nazionale delle Ricerche (CNR) Responsabile dei

Dettagli

principalmente un programma per la gestione di bibliografie: dalla raccolta dei riferimenti alla formattazione delle citazioni

principalmente un programma per la gestione di bibliografie: dalla raccolta dei riferimenti alla formattazione delle citazioni COS È? principalmente un programma per la gestione di bibliografie: dalla raccolta dei riferimenti alla formattazione delle citazioni un programma gratuito: la versione base offre 300 MB di spazio disco

Dettagli

Requisiti tecnici di BusinessObjects Planning XI Release 2

Requisiti tecnici di BusinessObjects Planning XI Release 2 Requisiti tecnici di BusinessObjects Planning XI Release 2 Copyright 2007 Business Objects. Tutti i diritti riservati. Business Objects possiede i seguenti brevetti negli Stati Uniti, che possono coprire

Dettagli

CMDBuild Significato di una soluzione open source per la gestione del CMDB

CMDBuild Significato di una soluzione open source per la gestione del CMDB ITIL e PMBOK Service management and project management a confronto CMDBuild Significato di una soluzione open source per la gestione del CMDB Firenze 1 luglio 2009 Il sistema CMDBuild è una applicazione

Dettagli

Facoltà di Ingegneria

Facoltà di Ingegneria Facoltà di Ingegneria Corso di laurea in Ingegneria dell Informazione FONDAMENTI DI INFORMATICA PRIMA PARTE Manuale di Installazione dell ECMs SharePoint PROFESSORE: STUDENTE: Prof. Mario Bochicchio Paiano

Dettagli

Organization Intelligence: Approccio e Tecnologia

Organization Intelligence: Approccio e Tecnologia Organization Intelligence: Approccio e Tecnologia [Knowledge] «In organizations it often becomes embedded not only in documents or repositories but also in organizational routines, processes, practices

Dettagli

GESTIONE DOCUMENTALE. Informazioni generali

GESTIONE DOCUMENTALE. Informazioni generali GESTIONE DOCUMENTALE Informazioni generali KNOS GESTIONE DOCUMENTALE Knos 2001-2011 Nasce nel 2001 in Versione Bancaria Sviluppo Versione Aziendale nel 2006/2007 Lancio Nuova Versione 4.0 a fine 2007 Integrazione

Dettagli

Presentazione del prodotto

Presentazione del prodotto Presentazione del prodotto Documentale (modulo base): archiviazione e gestione Documentale OCR integrato per il prelievo automatico delle chiavi di ricerca Funziona su rete windows o internet / intranet

Dettagli

Programmazione Server Side e Database in rete

Programmazione Server Side e Database in rete Programmazione Server Side e Database in rete Prof. Massimo PALOMBO -IIS A. MEUCCI Casarano La programmazione Stand-Alone consente di costruire applicazioni, più o meno complesse, ma utilizzabili esclusivamente

Dettagli

SEWEB PRIVATE CLOUD SERVICE SISTEMA CLOUD AZIENDALE

SEWEB PRIVATE CLOUD SERVICE SISTEMA CLOUD AZIENDALE SEWEB PRIVATE CLOUD SERVICE SISTEMA CLOUD AZIENDALE Sommario TIPOLOGIE DI CLOUD... 4 PRIVATE CLOUD... 4 COMMUNITY CLOUD... 4 PUBLIC CLOUD... 4 HYBRID CLOUD... 4 CARATTERISTICHE DEL SERVIZIO OFFERTO...

Dettagli

Università di Padova - Corso di Laurea in Governo delle Amministrazioni - Informatica per ufficio

Università di Padova - Corso di Laurea in Governo delle Amministrazioni - Informatica per ufficio Il lavoro d ufficio La posta elettronica Intranet e Internet Browser OpenSource Mail server Utente 1 Utente 2 Apparato Rete Mail Server Server di posta POP3: (Post Office Protocol) protocollo per gestire

Dettagli

Business Intelligence. strumento per gli Open Data

Business Intelligence. strumento per gli Open Data Business Intelligence strumento per gli Open Data Progetti di innovazione Progetti di innovazione negli Enti Locali Perchè? Forte cultura dell'adempimento Minore sensibilità per la verifica dei servizi

Dettagli

Manuale d'uso del Microsoft Apps for Symbian

Manuale d'uso del Microsoft Apps for Symbian Manuale d'uso del Microsoft Apps for Symbian Edizione 1.0 2 Informazioni su Microsoft Apps Informazioni su Microsoft Apps Microsoft Apps incorpora le applicazioni aziendali di Microsoft nel telefono Nokia

Dettagli

Nuvola It Data Space

Nuvola It Data Space MANUALE UTENTE INDICE 1. Descrizione servizio... 3 1.1. Informazioni sul servizio di Telecom Italia... 3 1.2. Ruoli e Autenticazione per il servizio di Telecom Italia... 3 1.3. Strumenti... 5 1.4. Documentazione...

Dettagli