Sei sulla pagina 1di 121

Alfresco ECM

Corso avanzato

Edoardo Fraioli IT Area Manager

PROGRAMMA

1/2 giornata di introduzione allarchitettura di Alfresco 1/2 giornata Demo Alfresco live 1 giorno di approfondimenti alla customizzazione di Alfresco / utilizzo delle API

PROGRAMMA: architettura
1/2 giornata di introduzione allarchitettura di Alfresco

Larchitettura generale
I componenti open source utilizzati Gli standard e i protocolli utilizzati

PROGRAMMA: live
1/2 giornata Demo Alfresco live Le business rule

Lauditing
Il recupero di file Gestione sicurezza /ruoli ricerca

PROGRAMMA: customizzazioni
1 giorno di approfondimenti alla customizzazione di Alfresco / utilizzo delle API
configurazioni avanzate Image magick, come configurare e usare la full text search e indicizzazione, reportistica, cache,

configurazioni base indicizzazione, database, mail,

trasformazioni,
tuning JVM, configurare il Versioning,

sistema di archivio,
JMX Console log file, backup e restore

CHI E ALFRESCO il team


Alfresco sviluppato da una squadra composta da membri di punta di

Documentum e Interwoven con 15 anni di esperienza nella gestione dei contenuti


aziendali (ECM, Enterprise Content Management), incluso il co-fondatore di Documentum. John Newton co-fondatore di Documentum John Powell gi Direttore operativo di Business Objects Dr. Ian Howells gi Vicepresidente marketing di SeeBeyond

Matt Asay fondatore e organizzatore della Open Source Business Conference


Tecnici e dipendenti, in precedenza, di Documentum, FileNet, OpenText,

Interwoven e Vignette.

I Contenuti
Alfresco Wiki Informazioni tecniche su configurazione, amministrazione e personalizzazioni http://wiki.alfresco.com/wiki/Document_Management

Alfresco Forums Post dalla Community e dallo staff di Alfresco http://forums.alfresco.com/en/ Alfresco Forge Contributi software dalla community http://forge.alfresco.com http://wiki.alfresco.com/wiki/Developer_Guide

RISORSE: libri
Alfresco Enterprise Content Management Implementation
by Munwar Shariff, Packt Publishing

Alfresco Developer Guide


By Jeff Potts, Packt Publishing

COSA CE SOTTO 1/4


I maggiori componenti Open Source usati per costruire Alfresco sono:

Apache Lucene (http://lucene.apache.org/ )


Full-text and metadata search

Hibernate 3.0 (http://www.hibernate.org/) Database persistence

Apache MyFaces 1.0.9 (http://myfaces.apache.org/)

JSF components in the web client

FreeMarker (http://freemarker.org/) Web script framework views, custom views in the web client, web client dashlets, email templates

COSA CE SOTTO 2/4


I maggiori componenti Open Source usati per costruire Alfresco sono:

Mozilla Rhino JavaScript Engine (http://www.mozilla.org/rhino/)


Web script framework controllers, Server-side JavaScript, Actions

OpenSymphony Quartz (http://www.opensymphony.com/quartz/) Scheduling of asynchronous processes

Spring ACEGI (http://www.acegisecurity.org/)

Security (authorization), roles, and permissions

Apache Axis (http://ws.apache.org/axis/) Web services

COSA CE SOTTO 3/4


I maggiori componenti Open Source usati per costruire Alfresco sono:

OpenOffice.org (http://www.openoffice.org/)
Conversion of office documents into PDF

Apache FOP (http://xmlgraphics.apache.org/fop/) Transformation of XSL:FO into PDF

Apache POI (http://poi.apache.org/)

Metadata extraction from Microsoft Office files

JBoss jBPM (http://www.jboss.com/products/jbpm) Advanced workflow

COSA CE SOTTO 4/4


I maggiori componenti Open Source usati per costruire Alfresco sono:

ImageMagick (http://www.imagemagick.org)
Image file manipulation

Chiba (http://chiba.sourceforge.net/) Web form generation based on Xforms

Questo non significa che bisogna essere esperti di tutti questi prodotti per

utilizzare o customizzare Alfresco.

STANDARD 1/4
I maggiori standard e protocolli supportati da Alfresco:
FTP E possibile accedere ai contenuti del repository via FTP. Secure FTP non ancora supportato.

WebDAV WebDAV un protocollo HTTP-based comunemente supportato dai Content

Management vendors. E un modo per rappresentare il repository come un file


system.

CIFS (Common Internet File System) CIFS permette al repository di essere montato come un drive condiviso da altre macchine. A differenza di WebDAV, non c differenza tra un repository montato come uno shared drive attraverso CIFS e un file server tradizionale.

STANDARD 2/4
I maggiori standard e protocolli supportati da Alfresco:

JSR-170 JCR una Java API per il mantenimento e laccesso ai contenuti. Alfresco un

JCR-compliant repository di livello 1. E vicino al Level 2 compliant.

Portlet API (JSR-168) Il Web Script Framework permette di definire RESTful API verso il repository. Web Scripts possono restituire XML, HTML, JSON, e JSR-168 portlets. Nellattuale release, richiesto che il portal e Alfresco girino sulla stessa JVM.

SOAP
API Web Services usano SOAP-based web services.

STANDARD 3/4
OpenSearch (http://www.opensearch.org) Alfresco repository pu essere configurato come una sorgente dati di tipo OpenSearch che permette ad Alfresco di partecipare a ricerche federate. OpenSearch una collezione di tecnologie che permettono di pubblicare I

risultati di una ricerca in un formato disponibile per syndication e aggregation.


E un modo per siti web e search engine di pubblicare risultati di ricerca in un formato standard e accessibile attraverso I seguanti componenti:
OpenSearch Description files: XML files che identificano e descrivono un search engine. OpenSearch Query Syntax: descrive dove recuperare i risultati dela ricerca OpenSearch RSS (in OpenSearch 1.0) o OpenSearch Response (in OpenSearch 1.1): formato per fornire gli open search results. OpenSearch Aggregators: Siti che possono visualizzare OpenSearch results. OpenSearch "Auto-discovery" per segnalare la presenza di un searchplugin link allutente e link embedded nell header odelle pagine HTML

STANDARD 4/4
XForms, XML Schema I form web sono definiti usando XML Schema. Non tutti i widgets XForms widgets sono supportati.

XSLT, XSL:FO
I dati delle form web possono essere trasforamti usando XSL 1.0.

LDAP Pu esser usato LDAP directory o un Microsoft Active Directory server.

ECM
Alfresco un piattaforma per lEnterprise Content Management che include:

Document Management (DM): cattura, organizazione, e condivisione di

filetipicamente prodotti da software per loffice automation.

Web Content Management (WCM): gestione files e contenuto utilizzabili dal


Digital Asset Management (DAM): gestione di oggetti grafici, video e audio. E

web.

un DM con funzionalit specifiche ai bisogni di lavorare con rich media, thumbnailing, transcoding, e editing.

Records Management (RM): gstione dei contenuti come legal record.

Retention policies, records plans, e audit trails.

Imaging: cattura, tagging, e routing delle immagini dei documenti dagli

scanners.

Architettura

Architettura - spring
Ogni parte del Repository di Alfresco un componente o un servizio.

Un component una implementazione black box che fornisce una specifica caratteristica o capacit

Un service una interfaccia.

Questo approccio permette di modificare i componenti esistenti con nuove

implementazioni, e nuovi componenti di esser aggiunti con facilit.


Permette ai cliet di connettersi e usare I servizi senza conoscere come sono implementati.

Alfresco ha fatto di Spring il core della sua architettura.

Architettura - spring

Architettura aspetti fondamentali


Alfresco responsabile per lo storage e il recupero del contenuto. Questa responsabilit soddisfatta con i seguenti Servizi fondamentali:

Nodes, che forniscono metadati e struttura al contenuto. Un nodo pu


supportare propriet (e.g. author) e essere in relazione con altri nodi (e.g. represent folder hierarchies or annotations). Content, linformazione che viene salvata es. un Word document o un XML fragment. Meta-dati e contenuto possono essere strutturati secondo le regole definite nel Content Model. Per esempio, il Document Management si basa su

un modello di Folders e Files.


Search Service indicizzazione dellinformazione pemettere il recupero di metadati.

Architettura : data storage


Per default, Alfresco ha scelto di immagazzinare i metadati nel database e il contenuto nel file system.

Usando un database si ottengono immediatamente I benefici tipice del database quali il supporto alle transazionie, scalabilit e capacit di aministrazione.

Il Contenuto immagazzinato nel file system per permettere per grandi quantit di contenuti, accesso random, streaming,

Hibernate e Lucene.

Architettura: data storage

Architettura: protocolli
Un repository non viene usato se il contenuto gestito non pu essere acceduto. Alfresco supporta diversi protocolli di accesso: CIFS (Common Internet File System) WebDAV

FTP
Tutti questi protocolli espongono il paradigma delle Folders di Files. In Windows, con CIFS, possibile usare la sincronizzazone Offline e la caratteristica delle cartelle per lavorare offline. IMPORTANTE Alfresco non supporta ad oggi Offline Synchronization per MS Vista.

Architettura: protocolli

Architettura

PROGRAMMA: live
1/2 giornata Demo Alfresco live Le business rule

Lauditing
Il recupero di file Gestione sicurezza /ruoli ricerca

Best Practices

Le categorie possono essere editate solo dallamministratore

Se hai bisogno di uno stesso documento in pi parti, non inserirlo pi volte,


ma usa il link. Attenzione a manutenere i link. Creare link al contenuto

Definisci le regole di sicurezza e accesso per Gruppi e non per individui

Creare link al contenuto

Se loggetto di un link viene rimosso, tutti I link diventano orfani. Inversamente, rimuovendo un link, non si hanno effetit sul documento target.

Identifica il documento target e click sula action Copy.

Il documento sar posto nella clipboard (visualizzazione shelf).

Posizionati nello space dove ti piacerebbe creare il link al contenuto.

Click su Paste Content as Link icon nella clipboard per creare il link.
Utilit: con lutilizzo dei link (doc o space) possibile creare una struttura ad albero linkata, effettuando salti di livello, permettendo di accedere a spaces, anche se il parent non accessibile. Ai link possibile associare diritti.

Security Model

Users e Group

Permissions e Ruoli

Authentication

Come la Security imposta Alfresco ?

Security Model
Users sono membri individuali, mentre i gruppi sono categorizzazioni logiche di utenti.

Permessi definiscono i diritti di accesso agli space e al content. Un gruppo di permessi un conveniente raggruppamento di permessi, ognuno dei quali applicabile agli space, space properties, sub-space, content,

content properties, e business rules.


Tipici gruppi di permessi sono: Read Edit Add Delete

Security Model
I ruoi sono collezioni di permessi assegnati ad un utente Ogni ruolo comprende un set di permessi. Alfresco fornisce out-of-the-box supporto per i seguenti ruoli, configurabili da file: Consumer pu leggere un contenuto

Editor pu leggere ed editare un contenuto


Contributor pu leggere ed aggiungere un contenuto Collaborator pu leggere, editare e aggiungere un contenuto Coordinator pu leggere, editare , aggiungere e cancellare un contenuto(full access)

Security Model: autenticazione


Alfresco impone autenticazione usando user name e password. Web client CIFS FTP WebDAV

Web Services
Spring beans esposti come servizi pubblici in Java

Security Model: utenti


In Alfresco ogni utente pu avere il proprio space individuale.

La location e il nome dello space pu essere specificato mentre si crea laccount utente. Lutente per il quale viene creato uno space diventa lowner di quello space Come owner, lutente pu avere full access al suo space

Permessi di default 1/2


Alfresco supporta di default i seguenti permessi per gli spaces: ReadProperties Read space properties ReadChildren Read the content within a space WriteProperties Update properties such as title their description DeleteNode Delete space

DeleteChildren Delete content and sub-spaces within a space


CreateChildren Create content within a space

Permessi di default 1/2


Permessi per gli items: ReadContent Read file WriteContent Update file ReadProperties Read file propertie WriteProperties Update file properties such as title, description,

etc.
DeleteNode Delete file ExecuteContent Execute file SetOwner Set ownership on a content item

A complete list of default permissions and roles is provided in the Alfresco configuration file <config>\model\permissionDefinitions.xml.

Permessi di default 1/2


<!-- --> <!-- Global permissions apply regardless of any particular node context. --> <!-- They can not be denied by the permissions set on any node. --> <!-- --> <!-- Admin can do anything to any ndoe --> <globalPermission permission="FullControl authority="ROLE_ADMINISTRATOR"/> <!-- For now, owners can always see, find and manipulate their stuff --> <globalPermission permission="FullControl" authority="ROLE_OWNER"/> <!-- Unlock is granted to the lock owner --> <globalPermission permission="Unlock" authority="ROLE_LOCK_OWNER"/> <!-- Check in is granted to the lock owner --> <globalPermission permission="CheckIn" authority="ROLE_LOCK_OWNER"/> <!-- Cancel check out is granted to the locak owner --> <globalPermission permission="CancelCheckOut" authority="ROLE_LOCK_OWNER"/>

Invitare gli utenti


Si possono dare permessi agli utenti a fare specifiche attivit nel proprio space.

Per fare questo si possono invitare gli utenti nel proprio space.

Ogni ruolo viene applicato solo allo spazio in cui assegnato.

Per esempio, potresti invitare un utente (o gruppo) a uno dei tuoi spaces come un editor. Potresti invitare lo stesso utente (or group) a differenti spaces come un collaborator.

Lo stesso utente (o group) potrebbe essere invitato da qualcun altro come un coordinator.

Sicurezza per i gruppi


Scenario 1: Utente 1 in grado di contribuire nello space "X, ed editore degli space "Y e "Z". Se cancelliamo lutente 1 dal sistema, necessario cancellarlo manualmente dagli space X, Y e Z. Alfresco non fornisce nessun report che indichi tutti gli space ai quali un particlare utente pu accedere. Scenario 2: Due utenti che appartengono allarea vendite sono aggiunti con contributori agli space "Sales" e "Finance" e qualche altro space. Se una nuova persona viene assunta nellarea vendite, necessario aggiungerla agli stessi space e questo un grosso lavoro di manteinance. Invece, fornendo al gruppo sales accesso a questi space, laggiunta e la cancellazione di membri del gruppo vendite, assumer automaticamente le stesse regole di sicurezza e collaborazione richieste dal sistema Raggruppare sempre gli utenti. Un utente pu appartenere a pi di un gruppo. Usare I gruppi per definire sicurezza sugli space.

Maintenance Best Practice


Quando viene cancellato un item (contenuto o space) in Alfresco, litem non sar cancellato dal server, ma sar spostato in una cartella temporanea chiamata archive space store. Questo da una opportunit di recover il contenuto cancellato

Gli item cancellati (nella cartella temporanea, consumano spazio, quindi buona pratica pulire periodicamente la cartella.

Questi item non potranno pi essere recuperati. E raccomandabile un backup regolare dei propri dati.

Recuperare un item cancellato


Un item cancellato sar presente nella cartella temporanea per sempre o fino a che si decide di recuperarlo o rimuoverlo. Questa caratteristica disponibile per gli amministratori attraverso lazione Manage Deleted Item.

ATTENZIONE: Sui manuali viene indicato che questa funzione presente tra le More Action.
INVECE si trova nello User Profile. Effettuare il log in come amministratore, crea un paio di files in Alfresco e cancellali. In any space, click More Actions | Manage Deleted Items. The Manage Deleted Items pane appears Nello User Profile presente una voce di management che porta alla ricerca di tutti I file cancellati con la possibilit di effettuare il restore o la cancellazione definitiva. Quando si effettua il restore si pu scegliere una cartella diversa da quella originaria, che altrimenti viene usata.

Data Dictionary e Space Template


La Company Home space la root space che contiene sub-spaces quali

Data Dictionary,
Guest Home, Users Home The Data Dictionary space contiene tutte le definizioni gestite dallutente; Guest Home lo spazio creato per lutente creato di default Guest; E buona pratica creare un singolo space che contiene spaces per tutti gli utenti individuali. Creare uno space NomeCognome il cui padre User Homes.

Username e password devono essere tra 3 e 32 caratteri di lunghezza.

Data Dictionary
Data Dictionary una shared resource. Tutti gli script e i template presenti in data dictionary possono essere definiti dallamministratore e usati dagli utenti. Email Templates: contiene I templates per la notifica via mail di un invito ad uno space, documento, o da una regola o azione. Email templates sono scritti in FreeMarker template language e hanno lestensione .ftl. Presentation Templates: templete di presentazione, usati per la visualizzazione del contenuto in deversi modi. Presentation templates sono scritti in FreeMarker template language e hanno lestensione .ftl. RSS Templates: usati per fornire RSS feeds degli space. Saved Searches: pre-built queries, salvate da un utente per la generazione di report. Ogni utente avr il proprio spazio privato di ricerche salvate. Inoltre qesto space conterr tutte le ricerche salvate e sharate come pubbliche. Scripts: JavaScript files, usati per effettuare certe operazioni sul contenuto

Space Templates
Space Templates: contiene le strutture degli space che possono esser usate come templae per creare nuovi space.

Ogni space pu essere salvato come un template per un riuso futuro dela

struttura e dei dati.

Invece di creare ripetutamente la stessa struttura per ogni progetto, si pu mantenere un Project template e replicarlo per ogni progetto.

Tutto il lavoro fatto manualmente potrebbe essere fatto in pochi secondi semplicemente usando un template.

Implementare Business Rules


Organizzare automaticamente i documenti in spaces specifici quando si fa un caricamento massivo di documenti Definire la sequenza di business rules su uno space Run time-consuming business rules in background

Cotrollo automatico delle versioni dei documenti su specifici documenti in


specifici spaces Categorizzazione Automatica dei documenti basata sui nomi Inviare notifiche basate su uno specifico evento su un documento Trasformare documenti da un formato ad un altro Aggiungere dinamicamente propriet custom ai documenti basato sulla location

Configurare business rules come azioni schedulate per eseguire


periodicamente Estendere business rules usando JavaScript files customizzati

Organizzare automaticamente i documenti


Si possono ottenere tutti I documenti come un upload massivo in uno space

Drop Zone (space mappato come network folder).

Se il nome del documento include Check -> *Check* (es. Client1Check_7003.jpg), allora la regola spostarlo nel Customer Checks space.

Se il nome include Invoice -> *Invoice* (es. Vendor2Invoice_20060815.pdf),

allora la regola impostata spostarlo nel Vendor Invoices space.

Tutti gli altri documenti nello space Contracts e Other Documents.

Applicazione regole
Inbound significa che la regola richiamata quando un documento creato
(tramite Web Client) o copiato o spostato (da qualche altro space) o aggiunto (usando le Web Services API) o rimosso (usando drag-and-drop di CIFS, WebDAV, or FTP) nello space Drop Zone Outbound significa che la regola richiamata quando un documento cancellato o tagliato dallo space Drop Zone. Update significa che la regola richiamata quando un documento

updatato. Manual updating nel Web Client, update attraverso network drives
(CIFS, FTP, o WebDAV), update attraverso Web Services API.

Run Rules in Background per migliorare le performance


Es. Una business rule che transforma 25 megabytes di un documento
Microsoft Word in PDF. Considera che la regola sia applicata a centinaia di file di questo tipo. Se si effettua lupload di un grande file word via web, potresti dover aspettare finch la business rule non termini.

Ugualmente, pensa ad una business rule che invia email a centinaia di utenti.

Queste regole prendono un significativo ammontare di tempo e risorse per


essere eseguite. Per migliorare le performance del sistema, la best practice eseguire queste business rules in background. I risultati possono non apparire immediatamente.

Aggiungere dinamicamente propriet ad un documento


Ci potrebbero essere situazioni in cui necessario aggiungere propriet a tutti I
documenti in un particolare space.

Si possono definire business rule su uno space per assegnare prorpiet aggiuntive dinamicamente a tutti o a certi insiemi di documenti.

Supponiamo di dover tracciare la data di decorrenza e expiration per tutti i

documenti in determinati sub-spaces.

Esiste un built-in aspect chiamato Effectivity che aggiunge due propriet ad un documento effective date and expiration date

Versioning automatico 1/2


In Alfresco, il versionamento disabilitato per default
E possibile abilitare il versioning per ogni documento, ma un lavoro pesante per grandi quantit.

Si pu customizzare il content model per abilitare il versioning per ogni documento. Ma questo approccio potrebbe essere inefficiente se non si

vogliono versionare tutti i documenti

Versioning automatico 2/2


Customer Checks space contiene immagini scannerizzate e il versioning non
ha senso, si avr una sola immagine per ogni scannerizzazione.

Lo stesso vale per lo spazio contenente le fatture

I documenti in Contracts e Other Documents space richiedono invece supporto al versioning.

Quindi ha senso inserire il versioning solo per questa cartella, aggiungendo una regole, selezionando un Versionable aspect , per ogni documento aggiunto.

Mail di notifica
Notifiche quando vengono aggiunti documenti a public space

Notifiche quando vengono effettuati cambi ad alcuni importanti documenti in determinati spaces.

Inviare email a tutte le persone che appartengono ad un gruppo.

Seleziona Actions e seleziona Send an email to specified users e scegliere i


valori: - Soggetto - Uso del template - messaggio

Regole delle Rules 1/2


Le Inbound rules non saranno applicate ai documenti che gi sono presenti nello space prima della creazione della regola.

Le Inbound rules saranno applicate solo ai documenti che sono aggiunti dopo

che la regola creata.

Se uno space ha pi di una regola, tutte le regole saranno eseguite in sequenza.

Regole delle Rules 1/2


Le regole definite negli space padre (con lopzione applica la regola ai subspaces) saranno anche eseguite nello space corrente.

Un documento pu essere uploadato in uno space in modi differenti usando Web Client o FTP o WebDAV o CIFS.

La Inbound rule in uno space sar avviata quando un documento uploadato


nello space, a prescindere da come viene uploadato.

Aspect Oriented programming


Il framework Alfresco supporta Aspect-Oriented Programming, che una
tecnologia usata per cambiare il comportamento del server dinamicamente senza cambi al codice.

Si devono definire 1. La condizione per applicare la regola 2. Lazione

3. Il tipo di evento che fa scatenare lazione (inbound, outbound, update)

you can also define your own aspects as per your business requirements. More details about changing the data model and defining custom aspects are covered in Chapter 7 di Alfresco Enterprise Content Management Implementation.

Condizioni
1. Specifico name pattern?
2. E in una categoria particolare? 3. E di uno tipo specifico o formato?

4. Una propriet del contenuto ha un particolare valore?

Aggiungendo un numero maggiore di condizioni un item deve soddisfare tutte le condizioni per essere selezionato

Built in ations
1. 2. 3. 4. 5. 6. 7. Add aspect to item: aggiunge propriet e comportamenti al documento Add simple workflow: aggiunge approve e reject workflow Check in content: Check in del documento Check out content: Check out del documento Copy item to a specific space: Copia il documento in uno space Execute a script: esegue un JavaScript come una action Extract common metadata fields from content: Extract document metadata 8. Import Alfresco content package: Import come content package 9. Link item to category: Link document ad una categoria esistente 10. Move item to a specific space: Sposta il documetno in uno space 11. Remove an aspect from an item: Rimuove property o set di properties 12. Send an email to specific users: Send email notifications a utenti o gruppi 13. Specialize the type of an item: Definisce il content type di un documento 14. Transform and copy content to a specific space: Trasformazione del contenuto e sposta il file risultato in uno space specifico 15. Transform and copy image to a specific space: Trasformazione e resize di una immagine da un formato ad un altro formato e sposta il file risultato in uno space specifico

1- Aspetti
Ogni aspetto ha differente significato: Classifiable: abilita la categorizzazione cos che le categorie possono essere linkate al documento Complianceable: aggiunge una propriet di conformit chiamata Remove after to the document. Dublin Core: aggiunge metadati Dublin core al documento. Publisher, Contributor, Subject, and Rights. Effectivity: aggiunge la propriet di validit. Effective From and Effective To to the document. Emailed: aggiunge un insieme di propriet. Email Data to the document, usata per cattuare le informazioni della mail, se il documento un attachment di email. Localizable: aggiunge la propriet Locale Summarizable: aggiunge la propriet Summary. Templatable: Enable template view. Translatable: aggiunge la propriet Translations al documento. Versionable: abilita il versioning.

6- Built in JS as Action
E possibile eseguire un file JavaScript selezionando Execute a script as an
action in the Rules Wizard. I files JavaScript gi presenti sono: backup.js append copyright.js backup and log.js

Ad esempio backup.js script crea un backup di un file copiandolo in uno space di


backup.

La lista di tutti i JavaScript riguarda tutti quelli disponibili in Company Home | Data Dictionary | Scripts space

6- Costruire JavaScript as Action


Supponiamo di ricevere un contratto con lammontare come una delle propriet.
Si pu eseguire un JavaScript che aggiorna un sistema finanziario esterno con le informazione estratte dal documento. Luso delle azioni di controllo della validit di un documento sono spesso usate per gestire i contenuti da tenere In un ambiente di produzione da quelli expired, qundi archiviati: The Staging space stages the transformed and approved content The Production space contains the effective content The Archived space contains the expired content

6- Custom JavaScript
Creare un file JavaScript, .js, con il seguente codice. Lo script verifca il contenuto nello space Staging e sposta il contenuto, la cui propriet di decorrenza ha un valore minore alla data di oggi, allo space di produzione
var stagingFolder = companyhome.childByNamePath("Intranet/Marketing Communications/Website Documents/Staging"); var productionFolder = companyhome.childByNamePath("Intranet/Marketing Communications/Website Documents/Production"); if(stagingFolder != null) { var i=0; var today = new Date(); stagingChildren = stagingFolder.children; stagingTotal = stagingChildren.length; for(i=0; i<stagingTotal;i++) { child = stagingChildren[i]; if(child.properties["cm:from"] <= today) { child.move(productionFolder); } } }

6- Eseguire Custom JavaScript


Creando una business rule su uno space. Un altro modo eseguire la business rule manualmente come un comando Run Action sullo space.

Usando le Java Script API si possono trovare i nodi (via XPath), navigare la gerarchia dei nodi, effettuare ricerche (incluse Lucene full-text searches), esaminare e modificare le propriet dei nodi, e modificare gli aspetti applicati ai nodi.

In aggiunta, scripts possono creare nuovi files e cartelle e copy/move/delete nodi.

Applicare tutta la security e ACL permissions tipiche di Alfresco.

Una descrizione dettagliata circa le API JavaScript di Alfresco: http://wiki.alfresco.com/wiki/JavaScript_API

Execute Custom JavaScript


Il secondo modo usare direttamente lindirizzamento URL per una chiamata stile REST. Il web client di Alfresco una servlet chepermette lesecuzione di script direttamente via URL

Questa caratteristica permette di accedere agli script e I risultati degli script sono
ritornati come stream html nella respone.

Scripting usage
I seguenti oggetti sono disponibili agli scripts per default in root scope: Named object Description companyhome userhome person space The Company Home node

Current user's Home Space node

Node representing the current user's Person object The current space node (if any); note that for a script executing from a rule, the

space object will be the space that the rule resides in document script search people The current document

The node representing the script itself A host object providing access to Lucene and Saved Search results A host object providing access to people and groups in Alfresco

session Session-related information (session.ticket for the authentication ticket) Classification . Read access to classifications and root categories

Scripting Esempi
// test accesso alle proprieta di un documento e modifica var docname = document.name.substring(0, document.name.lastIndexOf('.')); document.properties.name = "12345 " + document.properties.name; document.save();

/ modifcare il contenuto appendendo una stringa alla fine document.content = content + "\r\nHere is another line added from a script!

// creare una cartella nello stesso space var folderNode = space.createFolder(docname + " - added by script");

// copia il doc in una nuova cartella nodo creata var copy = document.copy(folderNode);

// spoasa la folder node in companyhome folderNode.move(companyhome);

// aggiungere una aspetto copy.addAspect("cm:translatable");

Auditing
Content versioning . Accesso a versioni precedenti Ripubblicarle come sono o con cambiamenti. Recuperare contenuti cancellati.

Full audit di tutte le attivit degli utenti. Mentre il contenuto pu essere rimosso dal sito, laudit sar sempre recuperabile. . In Alfresco, lauditing fornito a livello dei servizi del repository, quindi disponibile agli utenti e ad applicazioni.

Date, time, user, comments, e i cambi al contenuto sono immagazzinati e

accessibili dagli utenti.

Auditing
Auditing disabilitato per default. Per abilitare la configurazione di default bisogna cambiare lattributo enabled. Per abilitare lauditing tramite un metodo deve essere abilitato on unset sul metodo, abilitato o disabilitato sul service e abilitato al livello pi alto dellelemento da controlalre. Se lelemento marcato enabled="false" dovunnque nello stack lauditing sar disabled. Laudit configuration file <configRoot>\auditConfig.xml.

Auditing
<Audit xmlns="http://www.alfresco.org/model/audit/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" enabled="false" auditInternal="false" mode="all"> <!-- The File/Folder Service --> <Service name="FileFolderService" mode="none"> <Method name="rename" mode="all"/> <Method name="move" mode="all"/> <Method name="copy" mode="all" auditInternal="true"/> <Method name="create" mode="all"/> <Method name="delete" mode="all"/> <Method name="makeFolders" mode="all"/> <Method name="getWriter" mode="all"/> </Service> <Service name="NodeService" mode="none"> <Method name="createStore" mode="all"/>

<Method name="createNode" mode="all"/>


<Method name="moveNode" mode="all"/> <Method name="setChildAssociationIndex" mode="all"/> <Method name="setType" mode="all"/> <Method name="addAspect" mode="all"/> .. <Method name="restoreNode" mode="all"/> </Service>

Auditing
<Service name="PersonService" mode="none"> <Method name="setCreateMissingPeople" mode="all"/> <Method name="setPersonProperties" mode="all"/> <Method name="createPerson" mode="all"/> <Method name="deletePerson" mode="all"/> </Service> <Service name="VersionService" mode="none"> <Method name="createVersion" mode="all"/> <Method name="revert" mode="all"/> <Method name="restore" mode="all"/> <Method name="deleteVersionHistory" mode="all"/> </Service> </Audit>

Per abilitare lauditing, aprire il file <configRoot>\auditConfig.xml e cambiare il valore dellattributo enabled a true.

Auditing
Edita un documento e per lo stesso documento usa il Preview in Template e seleziona show_audit.ftl template dalla lista.

Verranno visualizzate le informazioni di audit.

La colonna Method nel report, riguarda le azioni eseguite sul documento.

In Company Home | Data Dictionary | Presentation Templates space si pu esaminare il codice del file show_audit.ftl. E un semplice audit template fornito per visualizzare le informazioni di audit.

Workflow
Alfresco ha due opzioni per implementare I workflow: simple workflow o advanced workflow. Con I simple workflows gli utenti finali possono configurarli direttamente senza avere skill tecninci. "add a simple workflow" ad un document quando inserito in una cartella Quando un ocumento ha un simple workflow significa che ha un "forward step e un "backward step ad esempio "Approve e "Reject". Quando uno step invocato il contenuto pu esser copiato o spostato in una altra cartella. Per esempio ci potrebbero essere cartelle chiamate "Draft",In Review", e

"Approved". Lo stato del documento determinato dalla cartella in cui si trova.

Workflow
Simple workflows hanno delle limitazioni: Possono essere solo dei processi seriali. Il contenuto pu essere spostato avanti o indietro, uno step alla volta Un contenuto pu essere in un processo ad una orario dato Contenuto deve cambiare location fiisca per riflettere il cambio di stato. Non possibile catturare o agire sui metadati relativi al processo Tasks non possono essere assegnati a persone o gruppi Oltre che aggiungere regole o azioni delle regole non c modo di aggiungere altra logica

Customizzazione base
Se la customizzazione consiste nella configurazione di files o properties webclient-config-custom.xml or webclient.properties, si possono porre I file di customizzazione nella extension folder
Tomcat: <alfresco>/tomcat/shared/classes/alfresco/extension

Quando Alfresco parte, legge tutti I file di default di configurazione e dopo legge gli item customizzati (nella extension folder). Quindi la customizzazione o estende o sovrascrive litem di configurazione.

Server Configuration
http://wiki.alfresco.com/wiki/Server_Configuration

CORE:

EXTENDED CONFIGURATION:

Repository Configuration Repository Cache Configuration Uso dello spazio Log Disabilitare larchivio Documenti

ImageMagick Configuration Full-Text Search Configuration Transformations Configuration Metadata Extraction Configuration Aggiungere un Mime Type Versioning JMX

Server Configuration
http://wiki.alfresco.com/wiki/Server_Configuration

CORE:

EXTENDED CONFIGURATION:

Repository Configuration Repository Cache Configuration Uso dello spazio Log Disabilitare larchivio Documenti

ImageMagick Configuration Full-Text Search Configuration Transformations Configuration Metadata Extraction Configuration Aggiungere un Mime Type Versioning JMX

Repository Configuration
repository.properties
Alfresco\tomcat\webapps\alfresco\WEB-INF\classes\alfresco

Lucene configuration: path dei file degli indici path dove il contenuto binario immagazzinato

Database configuration: database connection properties

Mail configuration

Admin username

Repository cache Configuration


Le cache in Alfresco sono implementate usando Ehcache library, transazionale e clusterizzabile

La cache migliora le performance del repository di Alfresco ma pu consumare

considerevole Java heap memory.


I settings usati dipendono dalluso e dalla memoria disponibile sul server.

Il file di default ehcache.xml adeguato alla maggior parte dei sistemi ed impostato per approssimativi 512MB di cache heap memory questo il default raccomandato per una Java heap size di1GB

Tuning - uso dello spazio


La dimensione del repository di Alfresco pari alla quantit di spazio disco necessario. Il contenuto in Alfresco per default immagazzinato direttamente sul disco, quinid per mantenere 1000 documenti di 1MB ci sar bisogno di 1000MB di

spazio disco.
Considerare lo spazio per I file temporanei e le versioni ogni versione di un file immagazzianto sul disco come copia separata del file. E altamente raccomandato luso di SCSI RAID disk array.

Configurazione posta
Inviare emails da un SMTP server. Non supporta secure SMTP servers. 1. file: <configRoot>/alfresco/repository.properties. 2. email properties:
# Email configuration

mail.host= <the name of your SMTP host>


mail.port=25 <the port that your SMTP service runs on (the default is 25)> mail.username=anonymous <the account you want e-mail to be sent from > mail.password= <password>

3. Crea un nuovo file nella <extension> directory.


4. Copia il blocco email properties in questo file. 5. Modifica le propriet 6. Salvare il file con un nome significativo che finisce con .properties.

Configurazione posta
From Email Address Per modificare il from email address quando gli utenti sono invitati a uno space, aggiungere al web-client-config-custom.xml file nella extension folder:
<config>
<client> <from-email-address>someone@your-domain.com </from-email-address>

</client>
</config>

Configurazione log files


I files di log sono posizionati nella <install_folder> . Impostare una cartella di log modificando la property inserendo un path
log4j.appender.File.File=alfresco.log in tutti I file log4j.properties.

Tomcat application server crea un file di log al giorno. Il log corrente alfresco.log e alla fine del giorno viene fatto il backup come alfresco.log.YYYY-MM-DD (for example, alfresco.log.2006-09-18).

Si pu configurare il file di log modificando il file


Alfresco\tomcat\webapps\alfresco\WEB-INF\classes\log4j.properties.

Si pu impostare il livello di logging come info or debug or error in base allammontare delle informazioni desiderate (For example, log4j.logger.org.alfresco.web=info).

Disabilitare larchivio Documenti


Per default tutti i documenti e le cartelle che non sono taggate con laspetto sys:temporary saranno archiviti al momento della cancellazione Se questa funzionalit non richiesta, pu essere disabilitata nel file togliendo la riga in rosso:

Node-services-context.xml
<!-- Map stores to archive stores --> <bean id="storeArchiveMap" class="org.alfresco.repo.node.StoreArchiveMap">

<property name="archiveMap">
<map> <entry key="workspace://SpacesStore"><value>archive://SpacesStore</value></entry>

</map>
</property> </bean>

Server Configuration
http://wiki.alfresco.com/wiki/Server_Configuration

EXTENDED CONFIGURATION:

ImageMagick Configuration Full-Text Search Configuration Transformations Configuration Metadata Extraction Configuration Aggiungere un Mime Type Versioning JMX

ImageMagick Configuration

Installare ImageMagick Puntare ImageMagick binaries nel path di sistema rinominare leseguibile convert in imconvert per evitare un conflitto con Windows

convert.exe

ImageMagick una suite di programmi liberi per la modifica di immagini. distribuita con una licenza compatibile con la GPL, ed disponibile su tutti i principali sistemi operativi. Le funzioni di ImageMagick includono la creazione, la visualizzazione, la conversione da un formato all'altro, e le pi svariate operazioni di modifica.

Full-Text Search Configuration 1/2


dir.indexes=${dir.root}/lucene-indexes dir.indexes.lock=${dir.indexes}/locks

The number of terms from a document that will be indexed # lucene.indexer.maxFieldLength=10000

Atomic="true" true allora la propriet indicizzata nella transazione altrimenti in background. Lindicizzazione del contenuto che richiede una trasformazione prima di essereindicizzato (pdf) non osserva il true, viene sempre in background. Tokenised="true" Se true, il valore viene tokenizzato prima di essere indicizzato; se false, indicizzato "as is" come una singola stringa.

Il tokenizer determinato dal property type nel data dictionary (Italiano, inglese)

Full-Text Search
Per default il contenuto in Alfresco ricercabile in modalit full-text. Ogni contenuto dei seguenti tipologie sar convertito internamente in testo, indicizzato e ricercabile:

Microsoft Office documents: MS Word, Excel, PowerPoint


Open Office documents XML/HTML PDF Emails Content in foreign languages

Full-Text Search
Fare una ricerca su Alfresco facile. Semplicemente inserire nel campo di ricerca i termini che descrivono linformazione che si desidera, e premere enter.

Si pu usare la sintassi Google-style:

Customer:

ritorna tutti i documenti che contengono il testo Customer" (come


file name o contenuto nel file)

-Customer: ritorna tutti i documenti che non contengono il testo "Customer" Customer Alfresco: ritorna tutti i documenti che contengono "Customer" o

"Alfresco". Equivale a scrivere Customer +Alfresco Customer Alfresco: ritorna tutti I documenti che contengono "Customer" e non contengono "Alfresco"

*inter*:

ritorna tutti i documenti che contengono "inter" come porzione


qualsiasi di una parola come International. Wild card search.

Search
E pi veloce cercare il contenuto tramite il nome di un file se si conosce il file name o porzione di esso.

Ci sono diverse opzioni di ricerca:

All Items: cerca lintero contenuto e tutte le propriet


File names and contents: cerca lintero contenuto e il nome del file File names only: cerca solo il nome del file Space names only: cerca solo il nome dello space

Limitare i risultati del Search


Ti ricordi di aver mai cliccato fino alla pagina 10 di una pagina risultato di una ricerca? Si possono limitare i risultati della ricerca customizzando il web-client-configcustom.xml nella extension folder
(<alfresco_install_folder>\tomcat\shared\classes\alfresco\extension) .

Aggiungere dopo la prima linea <alfresco-config>.


<config> <client> <!-- Override the from email address --> <from-email-address>munwar@cignex.com</from-email-address> <!-- the minimum number of characters required for a valid earch string --> <search-minimum>3</search-minimum> <!-- set this value to true to enable AND text terms for simple/advanced search by default --> <search-and-terms>false</search-and-terms> <!-- Limit search results. -1 for unlimited. --> <search-max-results>100</search-max-results> </client> </config>

Limitare i risultati del Search


Best Practices

Lopzione di ricerca booleana AND disabilitata di default per migliorare le ricerche. Restart Alfresco per rendere effettivi I cambi.

Lucene queries

Lucene queries
Roster Questa ricerca non ritorna risultati per default, quando usando la ricerca per nodi, solo la full text effettuata e sebbene il nome e la descrizione includono roster, il documento non contiene la stringa.

Sample whitepaper

Questa ricerca ritorna tutti e 3 I documenti perch questa query la stessa


cosa di "sample OR whitepaper".

Sample AND whitepaper Ritorna solo sample-a.pdf e sample-b.pdf. E la stessa cosa di usare il pi ("+") come in +sample +whitepaper. Loperatore + richiede che un termine sia nel documento per esser eincluso

Lucene queries
-sample whitepaper Ritorna solo class roster. Il meno ("-") specifica che il risultato non deve includere la parola "sample". M?urice Ab* Lauren~ Riotrnano tutte class roster. ("?") un carattere jolly. Lasterisco ("*") un wildcard. Tilde ("~") denota una fuzzy searchcerca parole similari. In questo caso "Lauren" to "Loren". sample effective whitepaper sample^10 effective whitepaper Compara queste due ricerche.ritornano sample PDFs e class roster. Nella prima ricerca, class-roster.txt mostrata al top della lista dei risultati. Nella seconda, il ("^") carattere usato per incrementare il peso del terminedi un fattore 10. Questo rende i PDFs pi pesanti. Cos si trovano al top della lista

Ricerca Properties
So far you've searched the full text of the sample documents, but what if you wanted to search against a specific property? To do that, use the at ("@") symbol followed by the namepsace and property name, and then the search phrase. @cm\:description:read This search returns both sample PDFs because both contain the word read in their description fields. @cm\:description:(whitepaper -sample) This search shows a combination of a field-based search with the minus operator to return only the documents that have whitepaper, but not sample in their description property. In this case, the search returns only classroster.txt. @sc\:isActive:true Searches for custom properties work as well. This one returns documents where the SomeCo isActive property is set to true.

Ricerca per prossimit


Proximity Search If you need to find documents where two words appear within certain proximity of each other, you can use a proximity search. @cm\:description:"wonderful absorb"~12

Ricerca per range


Properties can also be searched by range. @cm\:created:[2008-07-01T00:00:00 TO 2008-07-22T00:00:00] returns the sample PDFs, but not the class roster. This is because at least for this particular sample set, the class roster was created on July 24, 2008.

@cm\:name:([clam TO dog]) Range searches work on strings as well. This search returns class-roster.txt, but neither of the sample Whitepapers.

Report
Usare le ricerche salvate come report Spesso c la necessit di ripetere una ricerca che soddisfi gli stessi criteri di ricerca.

Invece di ripetere la selezione delle opzioni ogni volta possibile salvare I criteri
per riusare la ricerca cos impostata.

Si crea cos un report personalizzato. Questo pu essere condiviso con altri rendendo la ricerca salvata come pubblica. Altri report, possono essere considerati privati e saranno inseriti nella lista come

report privati solo per lowner

Report best practices


Tutti i report (ricerche salvate) possono essere loclizzate in Company Home | Data Dictionary | Saved Searches space.

Si possono riusare I criteri di ricerca salvati, selezionadoli dalla form Advanced

Search.

Trasformations Configuration 1/3


Alfresco permette la trasformazione di documenti tra diversi formati usando librerie di terze parti, come pdfbox e applicazioni come OpenOffice (running in modalit server-side).

I default Content transformers sono dichiarati ed inizializzati in


<configRoot>/alfresco/content-services-context.xml, ma le estensioni dovrebbero essere aggiunte come file extension <extension>/alfresco/extension/mytransformers-context.xml.

Default transformers sono dichiarati nel package org.alfresco.repo.content.transform

Usare javadocs per vedere gli effetti delle diverse impostazioni.

Trasformations Configuration 2/3


Se richiesta una trasformazione da mimetype X->Z ma sono disponibili solo XY e Y-Z, il transformation registry non assumer automaticamente di effettuare le trasformazioni come catena di operazioni da fare. Le trasformazioni possono essere linkate, dichiarate manualmente usando

ComplexContentTransformer.

Trasformations Configuration 3/3


Estrarre il testo da PowerPoint non possibile direttamente. Open Office pu esportare PowerPoint come un PDF, e poi PDFBox project permette la conversione da PDF a text.
<bean id="transformer.complex.OpenOffice.PdfBox" class="org.alfresco.repo.content.transform.ComplexContentTransformer" parent="baseContentTransformer" > <property name="transformers"> <list> <ref bean="transformer.OpenOffice" />

<ref bean="transformer.PdfBox" />


</list> </property> <property name="intermediateMimetypes"> <list> <value>application/pdf</value> </list> </property> </bean>

Aggiungere un Mime Type


Ci sono due file che contengono le definizionie dei mimetype :

mimetype-map.xml mimetype-map-openoffice.xml

Sono contenuti allinterno del alfresco.war->repository.jar e non dovrebbero


essere editati direttamente.

Invece, si pu fare un override del mimetypeConfigService bean in un extension file, quale <extension>/alfresco/extension/custom-services-context.xml.

Configurazione del Versioning


Out-of-the-box: il contenuto in Alfresco non versionabile. Il contenuto deve essere specificatamente marcato come versionabile via web e cos viene creata la version history contenente uno shap-shot.

Se si vogliono tutti I contenuti versionabili dal momento della creazione necessario modificare la definizione del dizionario del tipo di contenuto per includere il mandatory aspect Versionable.
<mandatory-aspects> <aspect> cm:versionable </aspect> </mandatory-aspects>

Si pu anche controllare quali tipi di contenuto versionare automaticamente e a quali no, applicando laspetto versinable a custom sub-type del cm:content.

Auto Versioning
Per default tutto il contenuto versionabile ha lAUTO-Version attivo. Questo vuol dire che una nuova versione creata nella history quando il contenuto uploadato.

LAuto-Versioning segue le seguenti regole:


La initialVersion indica che quando laspetto versionabile applicato allora uno snapshot iniziale del nodo preso a quel punto. autoVersion indica che quando avviene un cambio al contenuto del nodo, una nuova versiona sar creata Questo pu essere impostato a on o off per ottenere il comportamento desiderato. La caratteristica dellauto-version pu essere impostata a off anche per uno

specifico contenuto agendo sulla propriet via UI.

Auto Versioning: contentModel.xml


<aspect name="cm:versionable"> <title>Versionable</title> <properties> <property name="cm:versionLabel"> <title>Version Label</title> <type>d:text</type> <protected>true</protected> </property> <property name="cm:initialVersion"> <title>Initial Version</title>

<type>d:boolean</type>
<default>false</default> </property> <property name="cm:autoVersion"> <title>Auto Version</title> <type>d:boolean</type> <default>false</default> </property> </properties> </aspect>

JMX Console
Per default, i System Administrators possono riconfigurarre Alfresco spegnendo il server, editando I file cdi configurazione o proprerties quindi riaviando il server.

Certe operazioni di supporto dovrebbero poter essere effettuate on demand a

runtime senza la necessit di riavviare il server.

Per esempio dovrebbe essere possibile cambiare temporaneamente il livelli dei log per debuggare il sistema.

JMX Console
http://wiki.alfresco.com/wiki/JMX

JSR-160 support cambiare log levels (eg. turn debug on/off)

enable/disable file servers (FTP/CIFS/NFS)


server read-only mode server single-user mode server max user limit - including ability to prevent further logins user session/ticket count user session/ticket invalidation

JMX Console
Ogni cambio fatto con linterfaccia JMX sono transitorie, ad esempio si pu cambiare il livello dei log temporaneamente. Quindi tutti questi cambi andarnno persi quando il server riparte. Se alcuni di questi cambi dinamici necessitano di essere persistenti (cos da sopravvivere al restar del server) allora dovrebbero essere applicati ai file di configurazione. Per esempio: log level change - edit log4j.properties on the classpath max users - edit custom repository properties file (server.maxusers property) singe-user mode - edit custom repository properties file (server.singleuseronly.name property) read-only mode - edit custom transaction properties file (server.transaction.allow-writes property) disable/enable file servers (FTP/CIFS/NFS) - edit custom file servers config xml file

Altre Configurazioni
Altre configurazioni non incluse in questa presentazione

EXTENDED CONFIGURATION:

Cluster
Active Directory, LDAP High Availability JBPM Cambio delle porte di default

Backup
Il Backup di un repository Alfresco deve prevedere il backup delle directory puntate dalla dir.root e quelle che vengono usate dal database. Fare il backup dei uno senza gli altri fa si che il backup non potr essere restorato.

dir.root directory definita in <configRoot>/alfresco/extension/customrepository.properties.


Per default questa directory nominata alf_data ed locata nella directory di installazione di Alfresco.

Backup del database Backup degli indici Backup dei documenti Backup applicativo Sistema di configuration management

Backup
Per default, la dir.root contiene sia il contenuto che gli indici cos per un backup a freddo possibile effettuare il solo contenuto e fare una reindicizzazione quando il backup effettuato.

BestPractice: una completa rindicizzazione pu impiegare parecchio tempo ,


meglio includere gli indici nel backup:

Stop Alfresco. Backup il database a cui alfresco punta Alfresco, usando il tool del database. Backup Alfresco dir.root directory nella sua interezza Memorizza database e Alfresco dir.root backups insieme.

Start Alfresco.

Backup Best Practice


La possibilit di effettuare un backup a caldo dipende dalle capacit del database e dalla possibilit di questultimo con un tool che pu effettuare uno "snapshot consistente di Alfresco database (transactionally consistent copy of all of the tables in the Alfresco database) Non eseguire mai, il backup della sottodirectory degli indici di lucene mentre Alfresco Running. Fare questo causa della corruzione degli indici di Lucene.

Alfresco include un background job responsabile del backup degli indici che per default configurato per essere eseguito alle 3am di ogni notte. Lhot backup process must not run concurrently with this background job, so you should either ensure that the hot backup completes by 3am, or wait until the index backup job has completed before initiating a hot backup.

Restore
1.Stop Alfresco. 2.Copia la dir.root esistente in una cartella temporanea. 3.Restore dir.root.

4.If you are restoring from a hot backup, rename dir.root/backup_lucene_index to dir.root/lucene-indexes.
5.Restore the database from the database backups. 6.Start Alfresco.

Restore Best Practice


1. Alfresco per default controlla se gli indici sono datati ed effettua una reindicizzazione incrementale partendo dallultimo backup se il contenuto cambiato. Notevole risparmio di tempo su grandi repository, effettuando la

reindicizzazione parziali rispetto a quella totale.

2. Nota importante: per la reindicizzazione incrementale bisogna impostare la propriet index.recovery.mode a "AUTO" o lasciarlo al suo valore di default "VALIDATE".

3. Settare questa propriet a "FULL" forza una full reindex anche se

lincrementale fosse possibile.

Maintenance Best Practice


Quando viene cancellato un item (contenuto o space) in Alfresco, litem non sar cancellato dal server, ma sar spostato in una cartella temporanea chiamata archive space store. Questo da una opportunit di recover il contenuto cancellato

Gli item cancellati (nella cartella temporanea, consumano spazio, quindi buona pratica pulire periodicamente la cartella.

Questi item non potranno pi essere recuperati. E raccomandabile un backup regolare dei propri dati.

Web Services
Web scripts sono una delle pi interessanti aggiunte allarchitettura di Alfresco. Next Generation Internet (NGI) o Web 2.0 construita su servizi RESTful . La ragione che I servizi RESTFul sono tipicamente molto pi facili da lavorare usando linguaggi di scripting e toolkit Ajax piuttosto che servizi SOAP-based, perch sono invocati attraverso semplici URL.

Quando un repository ha una interfaccia Restful molto pi facile integrarlo in una soluzione NGI. Il Web Script framework, basato sul pattern Model- view Control (MVC) permette di costruire le API Restful al repository.

REST
REST sta per Representational State Transfer. Il Framework Web Script stato introdotto dalla versione 2.1

REST descrive uno stile architetturale per interazioni basate su semplpici URL-based richieste e risposte su HTTP.

Web scripts stanno diventando velocemente il metodo preferito di integrazione tra frontend e backend con Alfresco, particolarmente per portali o siti web dinamici.

REST
Vedremo come Scrivere web scripts che creano, leggono o cancellano dati nel repository di backend e ritornano risposte in HTML, XML, e JSON ( un modo per descrivere JavaScript objects come text invece del pi verboso XML)

Usare sia JavaScript e Java per scrivere la "controller" logic

Fare chiamate asynchronous JavaScript (AJAX) ai web scripts Storicamente cerano due approcci per interagire con Alfresco attraverso servizi: SOAP-based Web Services e REST. Alfresco ha avuto SOAP-based Web Services API disponibili per abbastanza tempo, ma i serivizi SOAP-based prendono troppo tempo per svilupparli e bisogna prevedere requisiti pesanti lato client rispetto ai servizi RESTful.

MVC
Il Framework Web Script rende facile seguire il pattern Model-View-Controller (MVC). Il controller JavaScript server-side, un Java Bean, o entrambi. Il controller cattura la request, effettua la business logic che necessaria, popola il modello con i dati, e quindi effettua il forward della request alla view.

La view costituita da uno o pi template FreeMarker responsabili di costruire una response nel formato appropriato. Il modello essenzialmente una struttura dati che viene passata dal controller alla view.

Il mapping della URL al controller fatto attraverso un XML descriptor, se lo script richiede una transazione o no, e i requisiti di autenticazione. Il descriptor opzionalmente descrive argomenti che possono essere passati allo scrip cos come i formati di risposta disponibili.

Costruire soluzioni con Web script


Si possono usare I web script per: Abilitare una applicazione di front end scritta in qualsiasi linguaggio che colloquia in http per ricevere dati dal repository in XML, JSON, o ogni altro formato Popolare JSR-168 portlets senza coding Java a differenza delle portlet API Catturare e salvare contenuto/dati firniti dagli utenti Interagire con business process (jBPM workflow) attraverso cliente con interfaccia non-web quali email Creare ATOM o RSS feeds per il contenuto Decomporre il web client esistente in pi piccoli componenti Alfresco 3.0 Share client interamente basato sui web scripts

Visita il nostro sito

http://www.4it.it