La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Argomenti Trattati MODULO 1: Introduzione  Presentazione Generale della Piattaforma Document Management Record Management Web Content Management  L’Architettura.

Presentazioni simili


Presentazione sul tema: "Argomenti Trattati MODULO 1: Introduzione  Presentazione Generale della Piattaforma Document Management Record Management Web Content Management  L’Architettura."— Transcript della presentazione:

1

2 Argomenti Trattati MODULO 1: Introduzione  Presentazione Generale della Piattaforma Document Management Record Management Web Content Management  L’Architettura I Componenti Open Source I Protocolli e gli Standard Supportati MODULO 2: Gestione degli Utenti MODULO 3: Gestione delle Cartelle MODULO 4: Gestione dei Documenti MODULO 5: Uso dei Driver di rete per la gestione dei Contenuti MODULO 6: Migrazione dei Documenti MODULO 7: Integrazione con il Mail Server Exchange MODULO 8: Modellazione dei Contenuti MODULO 9: Comunicare con il Repository  Standard JSR-170  Estendere il Modello dei Contenuti Custom Content Model Esempi  Conclusioni

3 Cosa è Alfresco  Piattaforma di Enterprise Content Management Open Source  E’ estendibile Modello dei Dati:Custom Content Model Servizi: Web Script, Web Service  Licenza GPL (General Public License)  Il Modello Open Source consente di utilizzare i più recenti contributi della comunità: Hibernate/iBatis Open Office Lucene/Solr Spring

4 La Nascita  Alfresco è stata fondata nel 2005 da un gruppo di persone provenienti dall’ECM Documentum®  I progettisti di Alfresco hanno alle spalle più di 15 anni di esperienza nel settore degli ECM.  I finanziatori sono aziende leader nel settore degli investimenti SAP Ventures.

5 L’Obiettivo  Fornire una soluzione Open Source di ECM  Superare soluzioni commerciali: Documentum® Microsoft® SharePoint®  In Termini di Caratteristiche Funzionalità Vantaggi per gli utenti

6 La Storia  Gennaio 2005 – il team di Documentum inizia a sviluppare Alfresco.  Ottobre 2005 – lancio del prodotto Alfresco.  Maggio 2006 - Alfresco Enterprise è Open Source al 100%.  Settembre 2006 - Alfresco lancia le soluzioni: WCM e RM.  Novembre 2006 - Alfresco, MySQL e Red Hat realizzano il primo benchmark open source JSR-170.  Dicembre 2006 - Alfresco annuncia il primo sistema ECM incorporato.  Febbraio 2007 - Alfresco è rilasciato con licenza GPL.  Febbraio 2007 – viene rilasciato Alfresco 2.0.  Luglio 2007 - Alfresco diventa licenziataria di Open Invention Network  Dicembre 2007 – Alfresco annuncia la prima piattaforma Open Source di Social Computing di classe Enterprice.  Dicembre 2007 - Alfresco vince il premio “Red Herring 100 Global 2007 Award”  Gennaio 2008 – il benchmark sui Repository Open Source JSR-170 Compliant supera i 100 milioni di oggetti.

7 I Vantaggi  E’ una soluzione Open Source (GPL)  Utilizza Standard Aperti: E’ basato sul JSR-170  Si arricchisce frequentemente dei contributi della Comunità  Offre soluzioni innovative anche rispetto alle soluzioni commerciali

8 I Clienti nel Mondo Government UK MOD Financial Services

9 I Clienti nel Mondo Professional Services Manufacturing Publishing & Media Education & NFP

10 I Partner Tecnologici  JBoss - www.jboss.com JBoss  LifeRay - www.liferay.com LifeRay  MySQL - www.mysql.com MySQL  Novell - www.novell.com Novell  SugarCRM - www.sugarcrm.com SugarCRM

11 Content Repository Image Management Document Management Records Management Web Content Management La Piattaforma ALFRESCO

12 Il Gestore Documentale Il Modulo permette di gestire il flusso documentale dell’Organizzazione attraverso politiche Centralizzate e Personalizzabili Processi Documentali unificati Digitalizzazione dei Documenti Check in/out Versioning Convesioni tra formati Profilazione utenti e gruppi Ricerca Full-Text Workflow documentale

13 Il Gestore Documentale  Usare Tool di Authoring dei contenuti famigliari  Facilità di Integrazione con i Tool di Authoring usati quotidianamente (es. Microsoft Office, Open Office)  Politiche di sicurezza centralizzate  Librerie di Servizi(Check-in/out, Versioning)  Gestione del Workflow documentale  Scalabilità: rispetto ai contenuti e agli utenti  Personalizzare la UI:Web Client personalizzabile I Bisogni dell’Utente

14 Libreria di Servizi  Sono servizi nativi forniti dal repository al Gestore Documentale per gestire la storia di un documento (Versioning) e la modifica in parallelo dei documenti da parte di un gruppo di lavoro (Check in/out)  Check-out (lock): blocca temporaneamente un documento per permettere l’Editing da parte di un solo utente alla volta.  Check-in(unlock): sostituisce il documento originale bloccato con la “Working Copy”, che può essere editata, e dopo rilascia il blocco.  Versioning: è la possibilità di mantenere traccia delle modifiche effettuate su un documento editato da diversi Autori

15 Il Gestore Documentale Sicurezza e Autenticazione  Gestione dell’Autorizzazione e Autenticazione degli Utenti (Login, Ruoli, Permessi)  Gestione di Gruppi, Sotto-gruppi e Utenti  Autenticazione eseguita negli Entry Point: CIFS FTP WebDAV Web Service  Supporto all’Integrazione con sistemi esterni: NTLM (Windows NT LAN Manager) LDAP (Lightweight Directory Access Protocol) Active Directory Single Sign-on CAS (Central Authentication Service)

16 Il Gestore Documentale Autorizzazione RuoliPermessi Consumer Può leggere Cartelle e contenuti. Editor Consumer + può editare Cartelle e Contenuti esistenti. Contributor Consumer + può aggiungere nuovi contenuti. CollaboratorEditor + Contributor CoordinatorControllo Completo Alfresco permette di assegnare dei Ruoli ad Utenti e/o a Gruppi su un determinato Spazio e/o Contenuto I Ruoli sono collezioni di permessi assegnati ad Utenti e/o a Gruppi e Sottogruppi in uno Spazio Alfresco supporta una serie di ruoli Predefiniti I Sotto-Spazi ereditano le autorizzazioni dalla spazio Padre

17 Records Management (RM)  Nuove leggi, regolamenti e norme causano cambiamenti nella gestione delle Registrazioni nei Sistemi Documentali (RM) all’interno di una Organizzazione.  ISO 15489:2001 definisce la gestione delle Registrazioni come “la pratica di identificazione, classificazione, archiviazione, conservazione e distruzione delle Registrazioni”  ISO definisce le Registrazioni: “informazioni create, ricevute e mantenute come elemento di prova e di informazione da parte di una organizzazione o una persona in virtù di obblighi di legge o di una transazione d’affari”. Cosa è

18 Records Management (RD)  Sistema di Approvazione nei Records Management tradizionali troppo difficile da usare per gli utenti  Informazioni incoerenti fra i diversi Sistemi Documentali (RM) presenti in una Organizzazione  Scarsa tempestività del trasferimento dei documenti da un sistema ad un’altro  Aumento dei costi per la gestione di molteplici Archivi Limiti dei Records Management Tradizionali

19 Records Management (RD)  Progettato per supportare lo standard US Department of Defense 5015.2 sulla gestione delle Registrazioni  Estrazione automatica e classificazione dei Metadati di un documento  Conversione automatica dai formati di office proprietari ai formati neutri di archiviazione di lungo termine come Open Document Format (ODF) e Portable Document Format (PDF)  Attraverso l’integrazione con Scanner e un software di OCR Alfresco fornisce una soluzione completa per archiviare, categorizzare, trasformare documenti e effettuare ricerche in modalità Full-Text sui Records dell’Organizzazione.  Anche le Mail sono considerate Documenti, Alfresco supporta il Drag e Drop delle Mail da Microsoft Outlook nel Repository, l’estrazione automatica dei metadati (Indirizzo di Provenienza, Destinazione) e indicizzazione Full-Text Alfresco Record Management

20 Web Content Management (WCM)  Il WCM è un modulo specializzato nella gestione dei contenuti destinati ad essere pubblicati in un Sito Web o in una Web Application.  Alfresco WCM si poggia sui servizi offerti dal repository e fornisce le funzionalità per creare, gestire, pubblicare contenuti web in un contesto di Multi-organizzazione  I tipi di contenuti gestiti includono: Testo HTML XML Immagini Contenuti multimediali (Audio, Video)  Il WCM permette al personale dell’organizzazione, non tecnico, di gestire i contenuti da pubblicare sul Portale o sulla Intranet Aziendale senza l’aiuto degli sviluppatori Cosa è

21 Web Content Management (WCM)  L’utente non tecnico può usufruire di Tool di Autoring integrati nella piattaforma per creare facilmente i contenuti: XML HTML Testo  Il WCM integra un motore di trasformazione dei contenuti (da XML in PDF o HTML, ri-definizione della risoluzione e del formato di una immagine)  La funzionalità di Drag-and-Drop del layout del Sito permette all’utente non tecnico di personalizzare l’aspetto grafico dei siti web  Alfresco WCM incorpora il motore di ricerca testuale (Lucene) che permette la ricerca attraverso i campi metadati caratterizzanti un contenuto Web  Alfresco WCM separa il contenuto dalla presentazione memorizzando il contenuto in un file XML che successivamente viene trasformato dal motore di trasformazione (XSLT, FreeMarker) nello specifico formato di presentazione dei contenuti (HTML, JSP, PDF).  Alfresco WCM supporta la gestione dei Contenuti Multilingua  Alfresco WCM supporta la gestione di Siti Multipli Le Funzionalità

22 Web Content Management (WCM)  I Web Form: permettono agli utenti non tecnici di produrre contenuti web che saranno memorizzati nel repository in file XML, validati da un XML Schema e trasformati, tramite FreeMarker e/o XSLT in HTML, PDF, JSP.  Sandboxes: ogni Editor di un sito ha accesso ad una copia del sito nella propria Sandbox, dove produce gli aggiornamenti  Preview: questa funzionalità permette all’autore dei contenuti di analizzare il contenuto prodotto prima di pubblicarlo nel live site.  Workflow: permette di implementare attraverso jBPM engine un processo di business attraverso cui sottomettere il contenuto creato.  Deployment: processo che permette di pubblicare il contenuto nel live site Funzionalità Hardware / OS Alfresco WCM Data Structures Application Framework Delivery

23 WCM Architettura Web Client DB Relazionale LDAP ALFRESCO Shared Drive CIFS Metadati Utenti e Gruppi Web Team HTTP/S XML CSS PDF PNG WWW Alfresco File Deployer WWW Alfresco File Deployer JSP Marketing Team XSD (Schema) XSLT FreeMarker HTML Validazione

24 L’ARCHITETTURA CIFS WebDAV FTP SMTP Web Application Foundation API JCR API JavaScript API FreeMarker API Web Service API REST API Web Client JBoss jBPM Apache Lucene Quartz Scheduler Rules e Actions Auditing Web Form SMTP Listener Rhino Javascript API Web Script Framework Extraction Trasformation Custom Servlet Container Macchina Fisica DB Relazionale LDAP Open Office Image Magick Contenuto Binario Lucene Index File System Storage

25 I Componenti Open Source Componenti Open Source Funzionalità implementata in Alfresco Java 1.5 Spring 1.2Aspect-Oriented Framework MyFaces JSF Implementation Implementazione delle specifiche JavaServer Faces (JSF) di Sun JBoss App Server 4.0Application Server JBoss Portal 2.0Portal PDFBox – Open Source Java PDF Library JBoss jBPM Workflow Avanzati

26 I Componenti Open Source Componenti Open Source Funzionalità implementata in Alfresco Apache LuceneText Search Engine Hibernate Persistenza del Database FreeMarker Presentation per il Framework Web Script, Views Mozilla Rhino JavaScript Engine JavaScript engine OpenSymphony Quartz Scheduling di processi asincroni. Apache Axis Web Service OpenOffice 2.0 Conversione di documenti office in PDF Apache FOP Trasformazione di XSL:FO in PDF Apache POI Java API per l’estrazione di Metadati da file di Microsoft Office ImageMagick Conversione di file di Immagini

27 Standards e Protocolli Supportati Standard/ProtocolliNote FTP Il Contenuto può essere caricato nel repository via FTP WebDAV Permette di leggere e scrivere via HTTP sul repository CIFS Permette al repository di essere montato come un disco condiviso JSR-170-Java Content Repository API Alfresco è un JCR-compliant repository JSR-168-Java Portlet Integration SOAP Alfresco Web Services usa SOAP-based web Services RESTful API LDAP LDAP Directory o Microsoft Active Directory server

28 Modulo 2: Gestione degli Utenti

29 Gestione degli Utenti e Gruppi  Creazione di un utente e dello spazio utente  Ricerca e modifica degli utenti  Creazione di Gruppi e Sottogruppi  Associazione di Utenti a gruppi  Rimozione di Utenti a gruppi  Esempi applicativi

30 Permessi e Ruoli  I Permessi definiscono i diritti di accesso degli utenti agli spazi e ai contenuti  I figli di un nodo, sub-folder o files ereditano di default i permessi dai loro parenti (es. il file in una cartella eredita i permessi dalla cartella)  I permessi sono applicabili a un nodo, spazio, proprietà, sub-space, contenuto, proprietà di contenuto e regole di business.  I gruppi di permessi sono: Read Edit Add Delete  I Ruoli utente sono delle collezioni di permessi assegnati ad un utente. Ogni ruolo comprende un set di permessi.  Alfresco comprende i seguenti ruoli di base: Consumer: può leggere i contenuti Editor: può leggere e editare i contenuti Cotributor: può leggere e aggiungere contenuti Collaborator: può leggere, editare, aggiungere i contenuti Coordinator: può leggere, editare, aggiungere e cancellare i contenuti

31 Estendere i Permessi e Ruoli  I seguenti sono i permessi che possono essere associati ad uno spazio: ReadProperties: Lettura delle proprietà dello spazio ReadChildren: Lettura dei Contenuti dentro lo spazio WriteProperties: Aggiornamento delle Proprietà (es. Titolo e Descrizione) DeleteNode: Cancella uno spazio DeleteChildren: Cancella il contenuto e i sotto spazi dentro uno spazio CreateChildren: Crea un contenuto dentro uno spazio  I Permessi associati ad un Contenuto sono: ReadContent: Leggi un file WriteContent: Aggiorna un file ReadProperties: leggi le proprietà WriteProperties: aggiorna le proprietà del file DeleteNode: cancella un file ExcuteContent: esegue un file SetOwner: set la proprietà di un contenuto  Una lista completa dei Permessi e dei Ruoli di Default si trovano nel file: \model\permissionDefinition.xml  I Permessi e i Ruoli di default possono essere estesi creando un nuovo custom role in PermissionDefinition.xml.

32 Creare un Custom Role Puoi aggiungere un nuovo custom Role “TestRole”conforme ai propri requisiti di business. Includere la definizione del Ruolo nel file permissionDefinition.xml in \model\ Dopo il restart di Alfresco il nuovo Ruolo sarà definito nel sistema.

33 Proteggere gli Spaces  Uno Spazio può essere protetto da accessi indesiderati assegnando un Ruolo a specifici Utenti o Gruppi di Utenti nello Spazio (Invito in uno spazio).  Un User Role determina che cosa un utente può fare e che cosa non può fare in uno Spazio. I Ruoli sono associati con i permessi.  La Tabella seguente rappresenta un elenco dei permessi associati ad ogni ruolo in uno spazio.

34 Proteggere i Contenuti  Un Contenuto può essere protetto da accessi indesiderati assegnando un Ruolo a specifici Utenti o Gruppi di Utenti (invita l’utente sul contenuto).  Un User Role determina che cosa un utente può fare e che cosa non può fare su un Contenuto. I Ruoli sono associati con i permessi.  La Tabella seguente rappresenta un elenco dei permessi associati ad ogni ruolo su un Contenuto.

35 Command-Line Scripts per caricare gli Utenti  Gli utenti possono essere caricati in Alfresco attraverso un command-line scripts.  E’ necessario creare un file XML (person.xml) contenente le informazioni sugli Utenti  Eseguire il Comando:

36 Alfresco Out-of-the-Box Membership System  Gli strumenti di gestione della sicurezza di default di Alfresco comprendono le seguenti funzionalità: Gestione degli Utenti Autenticazione degli Utenti Gestione dei Gruppi Assegnazione dei nodi (Spazi e Contenuti) dentro il repository Un Modello estendibile di Permessi e Ruoli Un Controllo degli accessi per restringere le chiamate ai servizi pubblici e all’autenticazione degli utenti.

37 Modulo 3: Gestione delle Cartelle

38 Gestione delle Cartelle  Creazione delle Cartelle e delle Sotto Cartelle  Creazione di nuove Categorie per taggare i documenti  Dettaglio dei Contenuti  Creazione di Cartelle da modello esistente  Cancellazione di Cartelle e Contenuti

39 Space come uno Smart Folder  Uno Spazio è un Folder dotato di attributi addizionali: Sicurezza: definizione della sicurezza a livello di spazi Regole di Business: definizione di Regole per la trasformazione del formato del contenuto (es. da.word a.pdf) Workflow: definizione e gestione di flussi di contenuti (workflow) in uno spazio. Per esempio può essere creato uno spazio per il contenuto che deve essere validato e uno spazio per il contenuto approvato. Alfresco gestisce la movimentazione fra gli spazi. Eventi: Alfresco trigga gli eventi quando un contenuto entra in uno spazio o quando il contenuto esce da uno spazio, o quando il contenuto viene modificato in uno spazio. Tali eventi possono essere catturati al livello di spazio in modo da avviare delle azioni (actions) che rispondano al verificarsi di tali eventi (es. inviare una notifica ad un utente)

40 Space come uno Smart Folder  …. : Aspetti: Gli aspetti sono proprietà addizionali e comportamenti che possono essere associati ad un contenuto. Per esempio può essere definita una regola che aggiunge un attributo ad un contratto di un cliente quando il documento entra nella cartella Sales. Search: la ricerca può essere limitata ad un singolo space. Syndication: il Contenuto di una Cartella può essere pubblicato attraverso un RSS feed. Content: i Contenuti in uno spazio possono essere versionati, locked, checked-in e checked-out e gestiti. Network folder: uno spazio può essere mappato in un network drive su una macchina locale. (es. interfaccia CIFS)

41 Modulo 4: Gestione dei Documenti

42 Gestione dei Documenti  Creazione di Contenuti di tipo Text, HTML e XML  Upload di File di tipo Word, PDF, Flash, Image e Media  Editing Inline di contenuti HTML, Text e XML con WYSIWYG Editor  Upload e aggiornamento di File Binary  Cancellazione di contenuti  Copia o Movimento di Contenuti fra Cartelle  Creazione di Shortcut di Contenuti per l’accesso veloce nella sezione scorciatoia della scrivania  Ricerca attraverso le proprietà dei contenuti (Titolo, Descrizione, Autore, Size e data di creazione)  Creazione di Regole customizzate in uno spazio

43 Content Properties  I Content Metadata sono dei dati strutturati che descrivono le caratteristiche di un contenuto.  Alfresco ha un build-in metadata extractors per i formati di documenti più diffusi.  Il motore di estrazione è applicato anche ai documenti che vengono caricati attraverso i le interfacce CIFS, FTP e WebDAV.  Modifica dei Metadati inseriti in precedenza  Aggiunta di nuove proprietà attraverso l’estensione del Data Model.  Aggiunta di nuove proprietà attaccando dinamicamente un aspetto.

44 Librerie di Servizi  La Libreria di Servizi è l’insieme di funzionalità per il document management.  Versioning: può essere attivato secondo i seguenti principi: Su un Contenuto Su una Cartella Su un Tipo di Contenuto – Globalmente su tutto lo store  Check-out: blocca il documento per l’editing  Check-in: rilascia il documento.

45 Categorizzazione dei Documenti  La Categorizzazione dei Documenti aiuta a classificare le informazioni in un numero differente di modi  Tutti i contenuti possono essere agganciati ad una o a più categorie  Le Categorie sono definite e gestite dall’amministratore  Alle Categorie possono essere associate delle sotto categorie  La ricerca avanzata in Alfresco permette la ricerca dei contenuti per categorie e sotto categorie

46 Modulo 5: Utilizzo dei Driver di Rete per la gestione dei Contenuti

47 Uso dei Network Driver  Il Repository può essere accessibile attraverso altri protocolli diversi dall’HTTP.  CIFS: si tratta di una versione del Microsoft Server Block (SMB). Si tratta dello standard che i computer usano per condividere file su intranet e su internet. Supporta le seguenti operazioni sui file:  FTP: FTP è usato per trasferire file da un file system locale ad un remote server.  WebDAV: è progettato per l’editing e la gestione dei file su un server web remoto

48 CIFS Driver  Il Repository può essere accessibile attraverso altri protocolli diversi dall’HTTP.  CIFS: si tratta di una versione del Microsoft Server Block (SMB). Si tratta dello standard che i computer usano per condividere file su intranet e su internet. Supporta le seguenti operazioni sui file: Open Close Read Write Look Unlocking  Map il Driven: use net Z: \\qbrservera\alfresco user: admin pass: admin\\qbrservera\alfresco  Drag and Drop i documenti nel repository  Check out e Check in dei Documenti in CIFS attraverso la configurazione del file file-server-custom.xml

49 FTP Driver  Usando un Client FTP puoi connetterti al repository di Alfresco  Tutte le regole e i permessi vengono applicati allo spazio

50 WebDAV Driver  Usando WebDAV puoi connetterti al repository di Alfresco  Tutte le regole e i permessi vengono applicati allo spazio

51 Data Dictionary e Space Template  Data Dictionary: contiene tutte le definizioni gestite dall’utente in opportuni sottospazi  Email Template: contiene il template dell’email usata per notificare agli utenti un invito ad uno spazio o la notifica di una azione. L’email template è scritta nel linguaggi di scripting FreeMarker.  Presentation Template: Contiene i template di presentazione che permettono di vedere il contenuto in differenti modi.  RSS Template: contengono gli RSS template che provvedono all’erogazione dei contenuti in forma di feed  Saved Search: contengono queries pubbliche condivise.  Scripts: Contengono JavaScript files usati per eseguire le operazioni sul contenuto  Space Template: Contengono la struttura degli spazi che può essere usata come un template per creare nuovi spazi.

52 Modulo 6: Migrazione dei Contenuti

53 Migrating Existing Content  I contenuti esistenti devono poter essere migrati nel repository di Alfresco.  Alfresco supporta diversi modi per migrare i contenuti esistenti: Drag and Drop dei contenuti da un disco locale nel repository usando i protocolli CIFS, FTP e WebDAV (only file) Usare i Web Service API per trasferire file e metadati ACP Generator BULK Upload Utility. Legge i Custom Content Models definiti nel repository. Una lista di variabili separate (CSV) rappresentano le proprietà e le categorie di valori di ogni contenuto. La procedura crea un file con estensione ACP (http://forge.alfresco.com/projects/acpgeneratr/)http://forge.alfresco.com/projects/acpgeneratr/ La sintassi è: acpGeneratr arg1 arg2 arg3 arg4 arg5  Arg1: il path e filename del Custom Model che viene usato  Arg2: il path della directory dove si trovano i contenuti che devono essere importati  Arg3: il path di destinazione  Arg4: il tipo di contenuto  Arg5: il file CSV che contiene le proprietà

54 Export e Import il Repository  L’amministratore di Alfresco può eseguire una completa esportazione e importazione del repository.  I Dati esportati includono: Dettagli dell’Utente (Nome, email ID, passwords) Gruppo di Utenti Categorie e Sotto-categorie Space Templates, Presentation Templates e email templates Tutti gli scripts – i JavaScripts files Tutti gli Spaces e Sub-spaces Tutti i Documenti – file, imagini, XML, file e i Custom Content Meta-data – aspetti Tutte le regole di business Security – gli inviti agli utenti sugli spazi e sui contenuti Process – informazioni circa i task pendenti e quelli completati Saved searches – ricerche salvate per uso futuro  Le funzionalità di esportazione – importazione possono essere usate per scopi di backup o per migrare in un’altra installazione.

55 Modulo 7: Integrazione con il Mail Server

56 Email archiving  Alfresco può essere utilizzato come piattaforma di archiviazione delle email aziendali  La soluzione adottata, utilizza il Proxy EEM messo a disposizione dalla società Inovox per il forwarding delle email  EMM effettua chiamate Web Service su Alfresco  Alfresco archivia le email sul proprio file system secondo lo standard RFC822.

57 Email archiving  L'utente invia una email ad un altro utente;  L'email viene intercettata da EEM Proxy che la salva in una cartella su file system;  L'email viene trasferita e archiviata in Alfresco tramite Web Services;  Il Proxy effettua il forwarding della email sul Server SMTP per l'invio al destinatario

58 Modulo 8: Modellazione dei Contenuti

59 Gestione Documentale Il Problema E’ necessario uno standard condiviso da tutti i Content repository per semplificare e uniformare la comunicazione con le applicazione esterne appartenenti al mondo Java. Oggi quasi ogni applicazione di Gestione dei Contenuti usa il proprio “Content Repository“ che estende un livello di storage tipicamente un Database Relazionale aggiungendo i vari Servizi tipici di una applicazione Content- Centric (Versioning, Check-in/out)… Questo strato di servizio è implementato in maniera diversa da ogni Vendors… Nasce il problema della comunicazione fra i diversi gestori dei contenuti prodotti dai diversi vendors, magari presenti nella stessa azienda adottati per rispondere a problematiche differenti. La Soluzione Esempio 1: nella specifica è completamente definito il servizio Versioning. In questo modo una applicazione conosce come accedere allo storico delle versioni di un documento. Esempio 2: il servizio di Query che permette ad un applicazione di cercare in un repository compliant è un modello standardizzato e non costituito da API proprietarie. JSR-170

60  JSR-170: Content Repository API per tecnologia JAVA: è una specifica Java Community Process (JCP) strutturata su più livelli che definisce una serie di interfacce per: Accesso Modifica Interrogazione Di un “Repository” contenente dati strutturati.  La JSR-170 può essere definita come il “JDBC” dei Content Repositories

61 JSR-170 Level 1: Definisce l’accesso ai contenuti in sola lettura e l’interrogazione mediante query XPath La JSR-170 Level 1 è destinata principalmente alla scrittura di semplici applicazioni CMS.

62 JSR-170 Level 2: Definisce l’accesso ai dati in modalità scrittura -lettura e le funzionalità per l’integrità referenziale dei dati.

63 JSR-170 Advanced Level: Definisce i metodi per il versionamento dei contenuti, la gestione delle transazioni, le funzionalità per interrogare il repository utilizzando SQL e le funzionalità per il locking dei dati

64 JSR-170  L'utilizzo della JSR-170 API consente di scrivere applicazioni di Enterprise Document Management in maniera totalmente indipendente dal vendor.  Esistono sul mercato implementazioni 100% open source di Content Repository Management JSR-170 Compliant  Esistono anche connectors per le piattaforme commerciali più diffuse (SAP, Oracle, FileNet, ed altri)  Questo significa che se anche un sistema non è stato progettato per supportare nativamente le specifiche JSR- 170 può disporre di un driver JSR-170 per comunicare con i sistemi JSR-170 compliant (sul modello JDBC) Standars CIMS.

65 Apache Jackrabbit  È la reference implementation Open Source della specifica JSR-170  Alle funzionalità JCR di 1° e 2° livello e Avanzate aggiunge: Integrazione con il motore di indicizzazione Full-Text Lucene Implementa Classi “Text Extractors” per l’indicizzazione dei documenti nei formati di file più comuni (PDF, MS Office, Open Office, XML, HTML) Supporta ricerche full text con XPath o SQL

66 Estendere il Modello dei Contenuti  Alfresco permette di personalizzare e estendere il modello dei contenti per soddisfare le diverse esigenze dell’Organizzazione  Il repository di Alfresco supporta un ricco Dizionario dei Dati in cui vengono dichiarati i tipi di contenuti  Il Dizionario dei Dati di default è pre-popolato con le definizioni che descrivono i contenuti con cui è inizialmente popolato il repository (Cartelle, Documenti, Nomi)  Il Dizionario dei Dati di Alfresco è estendibile, consente all’utente di dichiarare nuovi Tipi di Dati Personalizzati (Custom Content Type) che soddisfano i bisogni dell’Organizzazione.

67 Modello dei Dati di Base Tomcat: /webapps/alfresco/WEB-INF/classes  Il Content Model principale di Alfresco descrive come i dati sono memorizzati nel Repository  E’ una collezione di Tipi di Contenuti, di Aspetti e di Associazioni.  Il file di configurazione del Modello dei Dati è: ContentModel.xml  Questo file descrive il Content Domain Model di Alfresco: I Tipi di dati Fondmentali e come questi dati vengono memorizzati nel Data Base Relazionale sottostante (def. String, Date, Integer) I Tipi di dati di alto livello (Cartelle, Contenuti, Persone) Gli Aspetti di Default (Classificable, Versionable) Le Proprietà (Metadati), specifici per ogni Tipo di Contenuto Constraints. I vincoli che possono essere associati ad ogni tipo di proprietà Associazioni, le relazioni che esistono fra i Tipi di Contenuto

68 I Blocchi Elementari: Tipi e Proprietà Il Modello dei Dati di Alfresco può essere progettato partendo dai mattoni primari che la piattaforma fornisce all’utente: Tipo: il concetto di tipo è concettualmente simile al concetto di Classe dei linguaggi Object Oriented (es. Persona, Content, Folder). Il concetto di Tipo è usato per modellare i Business Object che hanno proprietà personalizzate. I Tipi ereditano le proprietà dai loro Padri. Proprietà: sono pezzi di Metadati che appartengono ad un determinato tipo (es. Nome_Persona, Telefono_Persona) Tipi di Proprietà: sono i tipi di dato fondamentali, descrivono i tipi di dati del Repository che saranno usati per memorizzare le proprietà definite (es. strings, dates, floats, boolean). Vincoli: i Constraints possono opzionalmente essere usati per restringere il valore che Alfresco può memorizzare nelle proprietà. Ci sono 4 tipi di vincoli di default disponibili dalla piattaforma: REGEX (espressioni regolari), LIST, MINMAX e LENGTH. Anche i vincoli possono essere estesi.

69 I Blocchi Elementari: Aspetti e Associazioni Il Modello dei Dati di Alfresco supporta i concetti: Aspetti: permettono di “incollare” delle Proprietà a Tipi di contenuto o anche a singole istanze di Contenuto quando e dove abbiamo bisogno. Associazioni: una associazione definisce relazioni fra Tipi. Alfresco supporta due diversi tipi di Associazioni:  Peer Associations: definisce una relazione “alla Pari” fra due oggetti nel repository, in cui nessuno dei due è subordinato all’altro.  Child Association: definisce una relazione “Padre-Figlio” fra due oggetti, ossia l’oggetto Target (Figlio) dell’associazione potrebbe non esistere mentre l’oggetto Source (Padre) esiste sicuramente (es. associazione fra il tipo “Folder” e il tipo “Content” instaurata nel repository di Alfresco).3

70 Estendere il Modello Tomcat: /shared/classes/alfresco/extension Il primo passo da compiere nel processo di progettazione di una applicazione di gestione dei contenuti personalizzata è quello di definire il Modello dei Dati che soddisfa i requisiti di Business del Cliente Il modello dei dati può essere esteso editando 3 file di configurazione XML: QBR-Model-content.xml: permette di dichiarare alla piattaforma un insieme di modelli di dati personalizzati che saranno resi disponibili all’interno di Alfresco QBRModel.xml: permette di implementare il Content Model definito, ossia dichiarare alla piattaforma Tipi, Aspetti, e Associazioni. Web-client-config-custom.xml: permette di dichiarare il modello creato all’interfaccia utente di Alfresco: “Web Client”.

71 Esempio: operare con gli Aspetti  Una organizzazione vuole gestire con l’ECM Alfresco: I documenti interni al ciclo produttivo dell’azienda I contenuti destinati ad essere pubblicati sul sito web  L’organizzazione vuole gestire tutti i documenti aziendali in maniera unificata, ma vuole poter tracciare tutti i Documenti prodotti per essere pubblicati sul sito Web Aziendale.  I Contenuti destinati ad essere pubblicati sul sito Web hanno bisogno di essere etichettati con 3 proprietà: isActive: indica se il Contenuto è pubblicabile; Data Inizio: indica la data in cui il sistema potrà pubblicare il contenuto sul sito Web Data Fine: indica la data di “scadenza” del il contenuto  Queste informazioni sono “trasversali” al Documento informativo proprio del contenuto, possono essere “incollate” al Documento indipendentemente dal suo Tipo

72 Esempio: operare con gli Aspetti  Queste informazioni sono “trasversali” al Documento Informativo proprio del Documento, possono essere “incollate” indipendentemente dalla sua classe di appartenenza  La Soluzione al problema potrebbe essere: 1. Definire un nuovo Tipo (Classe) di Documento chiamato “DocumentoxWeb” che eredita dal Tipo “Documento” 2. Estendere il Tipo “Documento” con le 3 proprietà (isActive, Data Inizio, Data Fine) 3. Definire un nuovo Aspetto “Pubblicabile” dotato di 3 proprietà (isActive, Data Inizio, Data Fine)  Le soluzioni comportano: 1. Conoscere in fase di progettazione del modello esattamente quale sono i documenti destinati ad essere pubblicati sul web 2. Snaturare le proprietà informative del Documento aggiungendo 3 campi 3. Gli Aspetti permettono una gestione trasversale delle proprietà 4. Gli Aspetti permettono di implementare una ereditarietà multipla

73 Esempio: operare con gli Aspetti +qbr: DataInizio: d: date +qbr:DataFine: d: date +qbr:isActive: d:boolean > qbr: Pubblicabile > cm: content +cm: content: d: content Import > qbr: Documento > qbr: Documento Offerta URI: http://www.qbr.it/model/content/1.0http://www.qbr.it/model/content/1.0 Prefisso: qbr File: QBRModel.xml A s s o ci a zi o n e Aspetto Doc Pubblicabile d:date d:date d:boolean false QBRModel.xml

74 Esempio:Operare con gli Aspetti Documento Pubblicabile d:date d:date d:boolean false QBRModel.xml Type:DocumentoType:Documento Type: Documento + Aspect: Pubblicabile A s p e c t : P u b b li c a b il e

75 Esempio: Estendere le Proprietà +qbr: DataInizio: d: date +qbr:DataFine: d: date +qbr:isActive: d:boolean > qbr: Pubblicabile > cm: content +cm: content: d: content Import > qbr: Documento > qbr: Documento Offerta +qbr: Agente: d: text +qbr: Protocollo: d: text +qbr: Settore: d: text +qbr: Approvata: d:boolean +qbr: DataApprovazione: d:date Agente d:text Protocollo d:text Settore d:text Approvata d:boolean DataApprovazione d:date QBRModel.xml Type: Documento Offerta

76 Esempio: Definire le Associazioni +qbr: DataInizio: d: date +qbr:DataFine: d: date +qbr:isActive: d:boolean > qbr: Pubblicabile > cm: content +cm: content: d: content Import > qbr: Documento > qbr: Documento Offerta > qbr: LogoCliente > qbr: OffertaPDF Associazione Documento-Logo qbr:LogoCliente false Associazione Documento-File qbr:OffertaPDF false QBRModel.xml Type: Documento Offerta

77 Esempio: Custom Template  Si vuole creare un Template di presentazione personalizzato che permetta all’utente di Alfresco di visionare attraverso l’interfaccia “Web Client”: Proprietà: le proprietà (Metadati) con cui è stato esteso il Tipo: Documento Offerta  Agente: nome dell’Agente che ha redatto una Offerta di Telefonia  Protocollo: numero di protocollo dell’offerta  Settore: offerta di Telefonia Fissa, Mobile o Convergente  Approvata: se l’offerta è stata accettata dal Cliente  Data Approvazione: Data di Approvazione dell’Offerta refatta Associazioni: le 2 associazioni di tipo “Peer” definite fra il Tipo “Documento Offerta” e i Tipi “LogoCliente” e “OffertaPDF”  Definito il Template (FreeMarker) per essere disponibile all’interno della Piattaforma deve essere caricato nel Dizionario dei Dati di Alfresco nella cartella “Presentation Template”  La funzionalità di “Prewiew in Template” fornita da Web Client permette di “Vedere” una istanza del Type “Documento Offerta” attraverso il template creato per osservare i metadati con cui l’oggetto è stato esteso e i contenuti a lui associati (Logo e PDF).

78 Esempio: Custom Template Acom_OffertaMB.pdf Logo_Acom.gif Acom_OffertaMB.html DocFastwebTemplate.ftl Template Associazione Type: Documento Offerta Type: Logo_Cliente Type: Offerta_PDF Presentation

79 Esempio: Custom Template Logo Acom SPA Documento HTML Offerta PDF Metadati Offerta Type: Logo_Cliente Type: Documento Offerta Type: Offerta_PDF

80 Modulo 9: Comunicare con il Repository

81 Comunicare con il Repository Alfresco fornisce diversi approcci per accedere ai servizi resi disponibili dalla piattaforma documentale: Embed the Repository: il R. può essere incorporato nell’applicazione, questo approccio garantisce il pieno controllo delle funzionalità del R. attraverso l’utilizzo delle API Alfresco Foundation Web Service: supporto ai Web Service SOAP, ma questi sono più pesanti dei loro cugini RESTful. JCR API: permettono l’accesso al repository in aderenza allo standard JSR-170 possono essere richiamate da remoto attraverso le Remote Method Invocation (RMI) di Java. URL Addressability: gli oggetti nel repository sono indirizzabili attraverso l’URL, rappresenta il precursore dei Web Script Web Script Framework: motore per la registrazione e l’esecuzione dei Web Script, pensati come un “pezzo di codice” mappato da un URL facilmente leggibile dall’uomo e dalle macchine

82 I Servizi Web RESTful  Un RESTful Web Service è un web service implementato usando HTTP e identifcato da un: URL: URI del Web Service Tipo Mime: il tipo di dati che il web service ritorna (XML, JSON, HTML) Operazioni: set di operazioni supportate usando i metodi HTTP (GET, POST, PUT, DELEDE)  Architettura client-server Stateless, dove ogni Risorsa è un Servizio Web  Representation State Transfert: è un sistema per identificare e descrivere una risorsa web attraverso un URL usando il protocollo HTTP come canale di scambio delle informazioni AZIONISQLHTTP CreateInsertPUT ReadSelectGET Update POST Delete DELETE

83 I Servizi Web RESTful  Tempo di risposta migliore: basato su HTTP  Riduzione del carico del server: grazie al supporto per la memorizzazione nella cache della rappresentazione delle risorse  Incremento della scalabilità:perché non necessita mantenere lo stato della sessione  Leggero sul lato Client: è necessario solo un Browser per accedere alle risorse I Benefici

84 Il Framework: Web Script  Applicazioni Content-Centric sono formate da molte componenti  Un singolo sistema monolitico responsabile di tutti gli aspetti della gestione dei contenuti è pesante  Più Sotto Sistemi debolmente connessi integrati per creare soluzioni agili.  Questo approccio richiede che il CMS abbia una interfaccia leggera e flessibile.  Il CMS è visto come un Componente che interagisce con il Front-End attraverso servizi REST.  Si parla di Content-as-a-Service  Il Framework pensa il Web Script come un pezzo di codice mappato da un URL  Il Web Script Framework è l’engine per la registrazione e l’esecuzione dei Web Script

85 Cosa è un Web Script  E’ un Servizio LEGATO ad un URI che risponde ad un Metodo HTTP (GET, POST, PUT, DELEDE).  Un Web Script permette di: Costruire Web Service accessibili attraverso HTTP e identificabile con un URI Trasformare l’Alfresco Repository in un gestore di contenuti come un Server HTTP Accedere facilmente e gestire i Contenuti Cross-Link attraverso API RESTful personalizzate

86 Alfresco fornisce due tipi di Web Script  Data Web Script: interfaccia del Repository Ritorna dati strutturati:  XML  JSON  CVS  Presentation Web Script: interfaccia Utente Ritorna codice HTML Può utilizzare Data web Script Supporta risposte di tipo:  HTML  Text  Atom  RSS  Portlet

87 Perché i Web Script ?  I Repository tradizionali hanno API di accesso proprietarie complicate che rendono difficile la condivisione dei documenti fra i diversi repository  I Repositori tradizionali sono accedibili tipicamente tramite chiamate RPC (Remote Procedure Call) che non facilitano l’accesso e la distribuzione uniforme dei contenuti (JCR API)  Alfresco Web Script fornisce un accesso RESTful ai contenuti nel repository che permette un semplice accesso alle risorse (documenti) tramite l’URI e un accesso uniforme alle risorse da parte di applicazioni client (es. Browser), come sul Web.

88 Il Flusso di Esecuzione di un Web Script  Il Client- Web Script richiede un URI  Autenticazione e esecuzione del Web Script  Attraverso JavaScript si accede ad una serie di servizi messi a disposizione da Alfresco (JavaScript API)  I Risultati sono resi attraverso un Template FreeMarker (HTML, JSON, XML)  Il Risultato dell’elaborazione ritorna al Client usando lo stesso protocollo della richiesta  Il Client Web-Script riceve la risposta nel formato richiesto

89 Il Pattern MVC nei Web Script Il Web Script Framework implementa il Pattern MVC (Model View Controller): Il Controller (opzionale): è implementato da un componente Server Side JavaScript, un Java Bean o da entrambi La Vista: è implementata da uno o più Template FreeMarker, responsabili della costruzione della risposta al Client nel formato specificato nella richiesta (HTML, XML, RSS, JSON) Il Modello: è rappresentato dalla Struttura dei Dati a cui il Controller accede e invia alla Vista.

90 I Componenti di un Web Script  Quale sono i componenti? Il Descrittore: file XML che contiene l’URL del servizio, informazioni sul metodo di autenticazione del client, gli argomenti che lo script accetta, e il formato della risposta La Logica JavaScript: esegue la logica di business, popola il modello con i dati Il Template FreeMarker: per mappare il formato della risposta usa una convenzione nel nome (es. nome.html.ftl indica un tipo di risposta HTML) Il Template ha accesso a tutti gli Argomenti della richiesta, agli oggetti costruiti dal controller e al repository.  Dove fare il Deploy Nella Cartella “Data Dictionary” Nel Classpath in “**/alfresco/extension/templates/webscripts”

91 Configurare un Web Script I parametri di configurazione di un Web Script: Il metodo HTTP usato per mandare la richiesta al Web Script: per la convenzione sui nomi utilizzata, il nome del file descrittore e il nome del template devono contenere il metodo utilizzato (HTTP) Questo approccio permette al Framework di mappare il template e il descrittore con il metodo HTTP usato fornendo la possibilità di definire più Web Script differenziati in base ai metodi  GET: richiede una rappresentanza della risorsa, la chiamata nondovrebbe avere effetti sul repository  POST: crea una nuova risoorsa nel repository  PUT: aggiorna una risorsa esistente nel repository  DELETE: Cancella una risorsa nel repository Il Metodo HTTP

92 Configurare un Web Script L’URL e gli Argomenti che il Web Script si aspetta http[s]:// : /[ /]/ [/ ][? ] Host: nome o indirizzo del server che ospita il Web Server Port: porta sulla quale il Web Script è pubblicato sul server ContexPath: path dole ‘applicazione è deploiata (Alfresco) servicePath: path dove il WS è mappato (service) scriptPath: path del Web Script definito nel file descrittore scriptArgs: argomenti del WS definiti nel file descrittore L’URL e gli Argomenti

93 Configurare un Web Script Il Formato della risposta che il Web Script supporta Il Framework usa la convenzione dei nomi per mappare il Template da utilizzare in base al formato della Risposta da inviare al Client Es. create.post.html.ftl: il Framework capisce che questo è il template che genera una risposta in formato HTML Grazie alla separazione permessa dal pattern MVC possono essere implementate Viste diverse per la stessa logica di business (controller) Il Client può specificare il formato della risposta desiderato attraverso l’URL (per default si assume HTTP)  es.1: …service/qr/helloword.xml?arg=1  Es.2: …service/qbr/helloword?arg=1&format=xml Il Formato della Risposta

94 Esempio Web Script API: il CRUD Nome del Web Script URLDescrizione Formato della Risposta Create/qbr/create Crea un nuovo Documento nel Repository HTML Update/qbr/update Aggiorna un Documento nel Repository HTML Delete/qbr/delete Cancella un elemento dal Repository HTML Read/qbr/readRitorna la lista dei documenti contenuti in un determinato Folder HTML

95 Esempio CRUD: il metodo Read Il Descrittore: read.get.desc.xml Lista Contenuti Ritorna l'elenco dei contenuti in un Folder /qbr/read/{path} argument guest none

96 Esempio CRUD: il metodo Read Il Controller: read.get.js // Lista della Cartella dal Path var folder = roothome.childByNamePath(url.extension); if (folder == undefined || !folder.isContainer) { status.code = 404; status.message = "Folder " + url.extension + " not found."; status.redirect = true; } model.folder = folder; URL: http://localhost:8080/alfresco/service/qbr/read/{path}

97 Esempio CRUD: il metodo Read Il Template: read.get.html.ftl Directory: ${folder.displayPath}/${folder.name} ">.. ">${child.name} <a href="${url.serviceContext}/api/node/content/${child.nodeRef.storeRef.protocol}/${child.nodeRef.storeRef.identifier}/$ {child.nodeRef.id}/${child.name?url}">${child.name}

98 Esempio CRUD: il metodo Read …/qbr/MyApplicazione/leggiFolder.html …/qbr/read/Company Home/Esempio/?path=&submit=ok

99 Il Modello Relazionale dei Dati ID BIGINT(20) VERSIN BIGINT(20) NS_ID BIGINT(20) LOCAL_NAME VARCHAR(200) ALF_QNAME Associazioni Padre-Figlio Associazioni Peer Gestione degli Attributi

100 Parallelismo fra Modello Relazionale - Documentale FunzionalitàRelazionale Documentale JSR-170 Entità FondamentaleTabella (Tupla)Documento Gestione di Associazioni tra entità Peer Si Contenuto Strutturato La Tabella è un contenuto strutturato (I Campi) Il Documento è un Contenuto Strutturato (le Proprietà) Supporto nativo alle Gerarchie Non lo supporta nativamente, deve essere implementato Si Supporto nativo al Versioning No, il versioning di un campo di una tabella deve essere progettato e implementato opportunamente Si Supporto nativo al Check-in/out Si, supporta il Lock delle Tabelle ma di breve durata Si Supporto nativo all’indicizzazione Full- Text Si, ma solo alcuni DBMS e non nativamente su tutte le tabelle del DB Si

101 2. Se il Sistema da progettare fa uso massivo di join (Report) allora il modello Documentale JSR-170 mostra i problemi di Performance Vantaggi-Svantaggi Modello Documentale 3. In un contesto non Content- Centric il modello Documentale diventa molto lento e pesante. 1. Il gestore documentale offre all’utente il supporto nativo per costruire nuove strutture documentali Custom Content Types, Versioning, Check-in/out, ricerca Full-Text, Categorizzazione dei Contenuti, Associazioni fra i Contentuti. 4. Associa nativamente il file binario alla tabella.

102 Bibliografia  http://wiki.alfresco.com/wiki/Main_Page http://wiki.alfresco.com/wiki/Main_Page  http://www.optaros.com http://www.optaros.com  http://ecmarchitect.com/ http://ecmarchitect.com/  www.alfresco.com www.alfresco.com  www.qbrservice.it/Wiki Qbr www.qbrservice.it/Wiki

103 Contatti Ing. Andrea Sponziello Ing. Mirco Leo QBR ENGINEERING mirco.leo@qbreng.it QBR web site: http://www.qbreng.it Grazie per l’Attenzione!


Scaricare ppt "Argomenti Trattati MODULO 1: Introduzione  Presentazione Generale della Piattaforma Document Management Record Management Web Content Management  L’Architettura."

Presentazioni simili


Annunci Google