SlideShare une entreprise Scribd logo
1  sur  121
Alfresco ECM Corso avanzato Edoardo Fraioli – IT Area Manager
PROGRAMMA 1/2 giornata di introduzione all’architettura di  Alfresco  1/2 giornata Demo Alfresco live 1 giorno di approfondimenti alla  customizzazione di Alfresco / utilizzo delle API
PROGRAMMA: architettura ,[object Object],[object Object],[object Object],[object Object]
PROGRAMMA: live ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PROGRAMMA: customizzazioni 1 giorno di approfondimenti alla  customizzazione di Alfresco / utilizzo delle API configurazioni base  indicizzazione,  database,  mail,  cache,  tuning JVM,  sistema di archivio,  log file,  backup e restore configurazioni avanzate  Image magick,  come configurare e usare la full text  search e indicizzazione,  reportistica,   trasformazioni,  configurare il Versioning,  JMX Console 
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],CHI E’ ALFRESCO – il team
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],I Contenuti
[object Object],[object Object],[object Object],[object Object],[object Object],RISORSE: libri
COSA C’E’ 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 C’E’ 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 C’E’ 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 C’E’ 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 l’accesso 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. Nell’attuale 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 all’utente 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 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
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 ,[object Object],[object Object],[object Object],[object Object],[object Object]
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 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Architettura: protocolli
Architettura
PROGRAMMA: live ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Best Practices ,[object Object],[object Object],[object Object],[object Object]
Creare link al contenuto ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Security Model ,[object Object],[object Object],[object Object],[object Object]
Security Model ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Security Model ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Security Model: autenticazione ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
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 l’account utente.  L’utente per il quale viene creato uno space diventa l’owner di quello space Come owner, l’utente può avere full access al suo space
Permessi di default 1/2 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Permessi di default 1/2 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
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=&quot;FullControl“ authority=&quot;ROLE_ADMINISTRATOR&quot;/> <!-- For now, owners can always see, find and manipulate their stuff --> <globalPermission permission=&quot;FullControl&quot; authority=&quot;ROLE_OWNER&quot;/> <!-- Unlock is granted to the lock owner --> <globalPermission permission=&quot;Unlock&quot; authority=&quot;ROLE_LOCK_OWNER&quot;/> <!-- Check in is granted to the lock owner --> <globalPermission permission=&quot;CheckIn&quot; authority=&quot;ROLE_LOCK_OWNER&quot;/> <!-- Cancel check out is granted to the locak owner --> <globalPermission permission=&quot;CancelCheckOut&quot; authority=&quot;ROLE_LOCK_OWNER&quot;/>
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 &quot;X“, ed è editore degli space &quot;Y“ e &quot;Z&quot;.  Se cancelliamo l’utente 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 all’area vendite sono aggiunti con contributori agli space &quot;Sales&quot; e &quot;Finance&quot; e qualche altro space.  Se una nuova persona viene assunta nell’area vendite, è necessario aggiungerla agli stessi space e questo è un  grosso lavoro di manteinance . Invece, fornendo al gruppo sales accesso a questi space, l’aggiunta 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, l’item 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
Data Dictionary e Space Template ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Data Dictionary Data Dictionary è una shared resource.  Tutti gli script e i template presenti in data dictionary possono essere definiti dall’amministratore 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 l’estensione .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 l’estensione .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 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Organizzare automaticamente i documenti ,[object Object],[object Object],[object Object],[object Object],[object Object]
Applicazione regole ,[object Object],[object Object],[object Object]
Run Rules in Background per  migliorare le performance ,[object Object],[object Object],[object Object],[object Object],[object Object]
Aggiungere dinamicamente proprietà ad un documento ,[object Object],[object Object],[object Object],[object Object]
Versioning automatico 1/2 ,[object Object],[object Object],[object Object]
Versioning automatico 2/2 ,[object Object],[object Object],[object Object],[object Object]
Mail di notifica ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
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 l’opzione “applica la regola ai sub-spaces) 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 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Condizioni  ,[object Object],[object Object],[object Object],[object Object],[object Object]
Built in ations ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
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 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
6- Costruire JavaScript as Action ,[object Object],[object Object],[object Object],[object Object],[object Object]
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(&quot;Intranet/Marketing Communications/Website Documents/Staging&quot;); var productionFolder = companyhome.childByNamePath(&quot;Intranet/Marketing Communications/Website Documents/Production&quot;); 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[&quot;cm:from&quot;] <= 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 l’indirizzamento URL per una chiamata stile REST. Il web client di Alfresco è una servlet chepermette l’esecuzione 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 The Company Home node userhome   Current user's Home Space node person   Node representing the current user's Person object space   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 The current document  script The node representing the script itself search A host object providing access to Lucene and Saved Search results people 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 = &quot;12345 &quot; + document.properties.name; document.save(); / modifcare il contenuto appendendo una stringa alla fine document.content = content + &quot;Here is another line added  from a script!“ // creare una cartella nello stesso space var folderNode = space.createFolder(docname + &quot; - added by script&quot;); // 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(&quot;cm:translatable&quot;);
Auditing ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Auditing Auditing è disabilitato per default.  Per abilitare la configurazione di default bisogna cambiare l’attributo enabled.  Per abilitare l’auditing tramite un metodo deve essere abilitato on “unset” sul metodo, abilitato o disabilitato sul service e abilitato al livello più alto dell’elemento da controlalre. Se l’elemento è marcato enabled=&quot;false&quot; dovunnque nello stack l’auditing sarà disabled.  L’audit configuration file è <configRoot>uditConfig.xml.
Auditing ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Auditing ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Auditing ,[object Object],[object Object],[object Object],[object Object],[object Object]
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. &quot;add a simple workflow&quot; ad un document quando è inserito in una cartella Quando un ocumento ha un simple workflow significa che ha un &quot;forward step“ e un &quot;backward step“ ad esempio &quot;Approve“ e &quot;Reject&quot;.  Quando uno step  è invocato il contenuto può esser copiato o spostato in una altra cartella.  Per esempio ci potrebbero essere cartelle chiamate &quot;Draft&quot;,”In Review&quot;, e &quot;Approved&quot;. Lo stato del documento è determinato dalla cartella in cui si trova.
Workflow ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Customizzazione base Se la customizzazione consiste nella configurazione di files o properties web-client-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 l’item di configurazione.
Server Configuration http://wiki.alfresco.com/wiki/Server_Configuration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Server Configuration http://wiki.alfresco.com/wiki/Server_Configuration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Repository Configuration repository.properties AlfrescoomcatebappslfrescoEB-INFlasseslfresco 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 dall’uso 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 l’uso  di SCSI RAID disk array.
Configurazione posta ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
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 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Disabilitare l’archivio Documenti Per default tutti i documenti e le cartelle che non sono taggate con l’aspetto  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=&quot;storeArchiveMap&quot; class=&quot;org.alfresco.repo.node.StoreArchiveMap&quot;> <property name=&quot;archiveMap&quot;> <map> <entry key=&quot;workspace://SpacesStore&quot;><value>archive://SpacesStore</value></entry> </map> </property> </bean>
Server Configuration http://wiki.alfresco.com/wiki/Server_Configuration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ImageMagick Configuration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Full-Text Search Configuration 1/2 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Full-Text Search ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Full-Text Search ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Search ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Limitare i risultati del Search ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Limitare i risultati del Search ,[object Object],[object Object],[object Object]
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 &quot;sample OR whitepaper&quot;. Sample AND whitepaper Ritorna solo sample-a.pdf e sample-b.pdf. E’ la stessa cosa di usare il più (&quot;+&quot;) come in +sample +whitepaper. L’operatore + richiede che un termine sia nel documento per esser eincluso
Lucene queries -sample whitepaper  Ritorna solo class roster. Il meno (&quot;-&quot;) specifica che il risultato non deve includere la parola  &quot;sample&quot;. M?urice Ab* Lauren~ Riotrnano tutte class roster. (&quot;?&quot;) è un carattere jolly. L’asterisco (&quot;*&quot;) è un  wildcard. Tilde (&quot;~&quot;) denota una fuzzy search—cerca parole similari. In questo caso &quot;Lauren&quot; to &quot;Loren&quot;. 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 (&quot;^&quot;) 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 (&quot;@&quot;) symbol followed by the namepsace and property name, and then the search phrase. @cmdescription:read This search returns both sample PDFs because both contain the word read in their description fields. @cmdescription:(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 class-roster.txt.  @scisActive: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. @cmdescription:&quot;wonderful absorb&quot;~12
Ricerca per range Properties can also be searched by range. @cmcreated:[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. @cmname:([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 l’owner
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/my-transformers-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 X-Y 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=&quot;transformer.complex.OpenOffice.PdfBox&quot;    class=&quot;org.alfresco.repo.content.transform.ComplexContentTransformer&quot;  parent=&quot;baseContentTransformer&quot; >  <property name=&quot;transformers&quot;>  <list>   <ref bean=&quot;transformer.OpenOffice&quot; />    <ref bean=&quot;transformer.PdfBox&quot; />  </list>  </property>  <property name=&quot;intermediateMimetypes&quot;>  <list>  <value>application/pdf</value>  </list>  </property>  </bean>
Aggiungere un Mime Type ,[object Object],[object Object],[object Object],[object Object],[object Object]
Configurazione del Versioning ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Auto Versioning Per default tutto il contenuto versionabile ha l’AUTO-Version attivo. Questo vuol dire che una nuova versione è creata nella history quando il contenuto è uploadato.  L’Auto-Versioning segue le seguenti regole:  La initialVersion indica che quando l’aspetto 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 dell’auto-version può essere impostata a off anche per uno specifico contenuto agendo sulla proprietà via UI.
Auto Versioning:  contentModel.xml <aspect name=&quot;cm:versionable&quot;>  <title>Versionable</title>  <properties>  <property name=&quot;cm:versionLabel&quot;>  <title>Version Label</title>  <type>d:text</type>  <protected>true</protected>  </property>  <property name=&quot;cm:initialVersion&quot;>  <title>Initial Version</title>  <type>d:boolean</type>  <default>false</default>  </property>  <property name=&quot;cm:autoVersion&quot;>  <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 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
JMX Console ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Altre Configurazioni ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
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/custom-repository.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 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Backup – Best Practice La possibilità di effettuare un backup a caldo dipende dalle capacità del database e dalla possibilità di quest’ultimo con un tool che può effettuare uno &quot;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. L’hot 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 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Restore – Best Practice ,[object Object],[object Object],[object Object],[object Object]
Maintenance – Best Practice Quando viene cancellato un item (contenuto o space) in Alfresco, l’item 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 ,[object Object],[object Object],[object Object],[object Object],[object Object]
REST ,[object Object],[object Object],[object Object],[object Object]
REST ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
MVC ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Costruire soluzioni con Web script ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object]

Contenu connexe

Tendances

Padrões de refatoração
Padrões de refatoraçãoPadrões de refatoração
Padrões de refatoraçãoThiago Pereira
 
Gestão de Decisões e Regras de Negócio
Gestão de Decisões e Regras de NegócioGestão de Decisões e Regras de Negócio
Gestão de Decisões e Regras de NegócioMauricio Bitencourt
 
tdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdftdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdfDouglas Siviotti
 
Apache Flex: Overview
Apache Flex: OverviewApache Flex: Overview
Apache Flex: OverviewTarun Telang
 
end-to-end service management with ServiceNow (English)
end-to-end service management with ServiceNow (English)end-to-end service management with ServiceNow (English)
end-to-end service management with ServiceNow (English)Orange Business Services
 
Metodologias ágeis de desenvolvimento de software por Givanaldo Rocha
Metodologias ágeis de desenvolvimento de software por Givanaldo RochaMetodologias ágeis de desenvolvimento de software por Givanaldo Rocha
Metodologias ágeis de desenvolvimento de software por Givanaldo RochaFernando Palma
 
Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#Vinicius Vieira
 
SAP Inside Track - Belo Horizonte
SAP Inside Track - Belo HorizonteSAP Inside Track - Belo Horizonte
SAP Inside Track - Belo HorizonteGlaucio Coutinho
 
1 requisitos funcionais e não funcionais ok
1  requisitos funcionais e não funcionais ok1  requisitos funcionais e não funcionais ok
1 requisitos funcionais e não funcionais okMarcos Morais de Sousa
 
Extreme programming (xp) - Resumo
Extreme programming (xp) - ResumoExtreme programming (xp) - Resumo
Extreme programming (xp) - ResumoDaniel Brandão
 
Apostila 9 virtualização - nova
Apostila 9   virtualização - novaApostila 9   virtualização - nova
Apostila 9 virtualização - novaPaulo Fonseca
 
Guia do Papel e Responsabilidade do Scrum Master
Guia do Papel e Responsabilidade do Scrum MasterGuia do Papel e Responsabilidade do Scrum Master
Guia do Papel e Responsabilidade do Scrum MasterPaulo Lomanto
 
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...Tchelinux
 
Metodologias de desenvolvimento - Waterfall vs Agile
Metodologias de desenvolvimento - Waterfall vs AgileMetodologias de desenvolvimento - Waterfall vs Agile
Metodologias de desenvolvimento - Waterfall vs AgileMarcelo Murad
 

Tendances (20)

Padrões de refatoração
Padrões de refatoraçãoPadrões de refatoração
Padrões de refatoração
 
Gestão de Decisões e Regras de Negócio
Gestão de Decisões e Regras de NegócioGestão de Decisões e Regras de Negócio
Gestão de Decisões e Regras de Negócio
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Princípios S.O.L.I.D.
Princípios S.O.L.I.D.Princípios S.O.L.I.D.
Princípios S.O.L.I.D.
 
tdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdftdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdf
 
Apache Flex: Overview
Apache Flex: OverviewApache Flex: Overview
Apache Flex: Overview
 
end-to-end service management with ServiceNow (English)
end-to-end service management with ServiceNow (English)end-to-end service management with ServiceNow (English)
end-to-end service management with ServiceNow (English)
 
Introdução a php
Introdução a phpIntrodução a php
Introdução a php
 
Ebook ui-design-v2
Ebook ui-design-v2Ebook ui-design-v2
Ebook ui-design-v2
 
Metodologias ágeis de desenvolvimento de software por Givanaldo Rocha
Metodologias ágeis de desenvolvimento de software por Givanaldo RochaMetodologias ágeis de desenvolvimento de software por Givanaldo Rocha
Metodologias ágeis de desenvolvimento de software por Givanaldo Rocha
 
Iso 20000
Iso  20000Iso  20000
Iso 20000
 
Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#
 
SAP Inside Track - Belo Horizonte
SAP Inside Track - Belo HorizonteSAP Inside Track - Belo Horizonte
SAP Inside Track - Belo Horizonte
 
1 requisitos funcionais e não funcionais ok
1  requisitos funcionais e não funcionais ok1  requisitos funcionais e não funcionais ok
1 requisitos funcionais e não funcionais ok
 
Extreme programming (xp) - Resumo
Extreme programming (xp) - ResumoExtreme programming (xp) - Resumo
Extreme programming (xp) - Resumo
 
Apostila 9 virtualização - nova
Apostila 9   virtualização - novaApostila 9   virtualização - nova
Apostila 9 virtualização - nova
 
Guia do Papel e Responsabilidade do Scrum Master
Guia do Papel e Responsabilidade do Scrum MasterGuia do Papel e Responsabilidade do Scrum Master
Guia do Papel e Responsabilidade do Scrum Master
 
PHP - Introdução
PHP - IntroduçãoPHP - Introdução
PHP - Introdução
 
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
 
Metodologias de desenvolvimento - Waterfall vs Agile
Metodologias de desenvolvimento - Waterfall vs AgileMetodologias de desenvolvimento - Waterfall vs Agile
Metodologias de desenvolvimento - Waterfall vs Agile
 

En vedette

Alfresco in un ora 2010
Alfresco in un ora 2010Alfresco in un ora 2010
Alfresco in un ora 2010SoftInstigate
 
CMDBuild: un progetto open source di supporto alla gestione ICT (e non solo)....
CMDBuild: un progetto open source di supporto alla gestione ICT (e non solo)....CMDBuild: un progetto open source di supporto alla gestione ICT (e non solo)....
CMDBuild: un progetto open source di supporto alla gestione ICT (e non solo)....CMDBuild org
 
Learning photography - Corso Base di Fotografia
Learning photography - Corso Base di FotografiaLearning photography - Corso Base di Fotografia
Learning photography - Corso Base di FotografiaAlessandro Nofi
 

En vedette (7)

Alfresco in un ora 2010
Alfresco in un ora 2010Alfresco in un ora 2010
Alfresco in un ora 2010
 
CMDBuild: un progetto open source di supporto alla gestione ICT (e non solo)....
CMDBuild: un progetto open source di supporto alla gestione ICT (e non solo)....CMDBuild: un progetto open source di supporto alla gestione ICT (e non solo)....
CMDBuild: un progetto open source di supporto alla gestione ICT (e non solo)....
 
Corso base 02
Corso base 02Corso base 02
Corso base 02
 
Corso base 01
Corso base 01Corso base 01
Corso base 01
 
Learning photography - Corso Base di Fotografia
Learning photography - Corso Base di FotografiaLearning photography - Corso Base di Fotografia
Learning photography - Corso Base di Fotografia
 
Corso avanzato 2011_02
Corso avanzato 2011_02Corso avanzato 2011_02
Corso avanzato 2011_02
 
Corso avanzato 2011_01
Corso avanzato 2011_01Corso avanzato 2011_01
Corso avanzato 2011_01
 

Similaire à Corso Avanzato Alfresco Ecm

Installazione del cms alfresco
Installazione del cms alfrescoInstallazione del cms alfresco
Installazione del cms alfrescoMirco Leo
 
Link. php [santi caltabiano]
  Link. php [santi caltabiano]  Link. php [santi caltabiano]
Link. php [santi caltabiano]santi caltabiano
 
Il CMS Alfresco
Il CMS AlfrescoIl CMS Alfresco
Il CMS Alfrescoleo mirco
 
CakePhp Linux Day Torino '09
CakePhp Linux Day Torino '09CakePhp Linux Day Torino '09
CakePhp Linux Day Torino '09Francesco Ronchi
 
JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)jampslide
 
Liferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioLiferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioAntonio Musarra
 
SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)Valerio Radice
 
Webdays 2004 Blogfordummies2 Ok
Webdays 2004 Blogfordummies2 OkWebdays 2004 Blogfordummies2 Ok
Webdays 2004 Blogfordummies2 OkMassimo Schiro
 
Differenze tra Alfresco Community ed Enterprise
Differenze tra Alfresco Community ed EnterpriseDifferenze tra Alfresco Community ed Enterprise
Differenze tra Alfresco Community ed EnterpriseSoftInstigate
 
Drupal
DrupalDrupal
DrupalNaLUG
 
Cv 2014 richard_gennaro_ eur_it
Cv 2014 richard_gennaro_ eur_itCv 2014 richard_gennaro_ eur_it
Cv 2014 richard_gennaro_ eur_itRichard Gennaro
 
Enterprise Spring and Flex applications
Enterprise Spring and Flex applicationsEnterprise Spring and Flex applications
Enterprise Spring and Flex applicationsmarcocasario
 
php day 2008 - Introduzione agli ez components
php day 2008 - Introduzione agli ez componentsphp day 2008 - Introduzione agli ez components
php day 2008 - Introduzione agli ez componentsGaetano Giunta
 

Similaire à Corso Avanzato Alfresco Ecm (20)

Installazione del cms alfresco
Installazione del cms alfrescoInstallazione del cms alfresco
Installazione del cms alfresco
 
Link. php [santi caltabiano]
  Link. php [santi caltabiano]  Link. php [santi caltabiano]
Link. php [santi caltabiano]
 
Il CMS Alfresco
Il CMS AlfrescoIl CMS Alfresco
Il CMS Alfresco
 
Grasso Frameworks Ajax
Grasso Frameworks AjaxGrasso Frameworks Ajax
Grasso Frameworks Ajax
 
CakePhp Linux Day Torino '09
CakePhp Linux Day Torino '09CakePhp Linux Day Torino '09
CakePhp Linux Day Torino '09
 
JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)
 
DDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continuaDDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continua
 
Liferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioLiferay - Quick Start 1° Episodio
Liferay - Quick Start 1° Episodio
 
SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)SPRING - MAVEN - REST API (ITA - Luglio 2017)
SPRING - MAVEN - REST API (ITA - Luglio 2017)
 
Typo3 alfresco
Typo3 alfrescoTypo3 alfresco
Typo3 alfresco
 
Webdays 2004 Blogfordummies2 Ok
Webdays 2004 Blogfordummies2 OkWebdays 2004 Blogfordummies2 Ok
Webdays 2004 Blogfordummies2 Ok
 
Differenze tra Alfresco Community ed Enterprise
Differenze tra Alfresco Community ed EnterpriseDifferenze tra Alfresco Community ed Enterprise
Differenze tra Alfresco Community ed Enterprise
 
Tools & librerie PHP
Tools & librerie PHPTools & librerie PHP
Tools & librerie PHP
 
Ddive Xpage852
Ddive Xpage852Ddive Xpage852
Ddive Xpage852
 
Drupal
DrupalDrupal
Drupal
 
Cv 2014 richard_gennaro_ eur_it
Cv 2014 richard_gennaro_ eur_itCv 2014 richard_gennaro_ eur_it
Cv 2014 richard_gennaro_ eur_it
 
Enterprise Spring and Flex applications
Enterprise Spring and Flex applicationsEnterprise Spring and Flex applications
Enterprise Spring and Flex applications
 
Dot net framework 2
Dot net framework 2Dot net framework 2
Dot net framework 2
 
EIP with Apache Camel
EIP with Apache CamelEIP with Apache Camel
EIP with Apache Camel
 
php day 2008 - Introduzione agli ez components
php day 2008 - Introduzione agli ez componentsphp day 2008 - Introduzione agli ez components
php day 2008 - Introduzione agli ez components
 

Plus de edoardo fraioli

Cruda&crudo: l'idea, il progetto, l'analisi di mercato e gli abbinamenti
Cruda&crudo: l'idea, il progetto, l'analisi di mercato e gli abbinamentiCruda&crudo: l'idea, il progetto, l'analisi di mercato e gli abbinamenti
Cruda&crudo: l'idea, il progetto, l'analisi di mercato e gli abbinamentiedoardo fraioli
 
Cruda & Crudo: disponibile su Lulu, Itunes, Google Play e Amazon - www.crudae...
Cruda & Crudo: disponibile su Lulu, Itunes, Google Play e Amazon - www.crudae...Cruda & Crudo: disponibile su Lulu, Itunes, Google Play e Amazon - www.crudae...
Cruda & Crudo: disponibile su Lulu, Itunes, Google Play e Amazon - www.crudae...edoardo fraioli
 
Esempi storico partecipate
Esempi storico partecipateEsempi storico partecipate
Esempi storico partecipateedoardo fraioli
 

Plus de edoardo fraioli (6)

Cruda&crudo: l'idea, il progetto, l'analisi di mercato e gli abbinamenti
Cruda&crudo: l'idea, il progetto, l'analisi di mercato e gli abbinamentiCruda&crudo: l'idea, il progetto, l'analisi di mercato e gli abbinamenti
Cruda&crudo: l'idea, il progetto, l'analisi di mercato e gli abbinamenti
 
Cruda & Crudo: disponibile su Lulu, Itunes, Google Play e Amazon - www.crudae...
Cruda & Crudo: disponibile su Lulu, Itunes, Google Play e Amazon - www.crudae...Cruda & Crudo: disponibile su Lulu, Itunes, Google Play e Amazon - www.crudae...
Cruda & Crudo: disponibile su Lulu, Itunes, Google Play e Amazon - www.crudae...
 
Presentazione corso
Presentazione corso Presentazione corso
Presentazione corso
 
Esempi storico partecipate
Esempi storico partecipateEsempi storico partecipate
Esempi storico partecipate
 
App trasparenza smau
App trasparenza smauApp trasparenza smau
App trasparenza smau
 
Carrello Degli Acquisti
Carrello Degli AcquistiCarrello Degli Acquisti
Carrello Degli Acquisti
 

Corso Avanzato Alfresco Ecm

  • 1. Alfresco ECM Corso avanzato Edoardo Fraioli – IT Area Manager
  • 2. PROGRAMMA 1/2 giornata di introduzione all’architettura di Alfresco 1/2 giornata Demo Alfresco live 1 giorno di approfondimenti alla customizzazione di Alfresco / utilizzo delle API
  • 3.
  • 4.
  • 5. PROGRAMMA: customizzazioni 1 giorno di approfondimenti alla customizzazione di Alfresco / utilizzo delle API configurazioni base indicizzazione, database, mail, cache, tuning JVM, sistema di archivio, log file, backup e restore configurazioni avanzate Image magick, come configurare e usare la full text search e indicizzazione, reportistica,  trasformazioni, configurare il Versioning, JMX Console 
  • 6.
  • 7.
  • 8.
  • 9. COSA C’E’ 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
  • 10. COSA C’E’ 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
  • 11. COSA C’E’ 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
  • 12. COSA C’E’ 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.  
  • 13. 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.
  • 14. STANDARD 2/4 I maggiori standard e protocolli supportati da Alfresco:   JSR-170 JCR è una Java API per il mantenimento e l’accesso 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. Nell’attuale release, è richiesto che il portal e Alfresco girino sulla stessa JVM. SOAP API Web Services usano SOAP-based web services.
  • 15. 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 &quot; Auto-discovery &quot; per segnalare la presenza di un searchplugin link all’utente e link embedded nell’ header odelle pagine HTML
  • 16. 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.
  • 17.
  • 19. 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.
  • 21.
  • 22. 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.
  • 24.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34. 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 l’account utente. L’utente per il quale viene creato uno space diventa l’owner di quello space Come owner, l’utente può avere full access al suo space
  • 35.
  • 36.
  • 37. 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=&quot;FullControl“ authority=&quot;ROLE_ADMINISTRATOR&quot;/> <!-- For now, owners can always see, find and manipulate their stuff --> <globalPermission permission=&quot;FullControl&quot; authority=&quot;ROLE_OWNER&quot;/> <!-- Unlock is granted to the lock owner --> <globalPermission permission=&quot;Unlock&quot; authority=&quot;ROLE_LOCK_OWNER&quot;/> <!-- Check in is granted to the lock owner --> <globalPermission permission=&quot;CheckIn&quot; authority=&quot;ROLE_LOCK_OWNER&quot;/> <!-- Cancel check out is granted to the locak owner --> <globalPermission permission=&quot;CancelCheckOut&quot; authority=&quot;ROLE_LOCK_OWNER&quot;/>
  • 38. 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.
  • 39. Sicurezza per i gruppi Scenario 1 : Utente 1 è in grado di contribuire nello space &quot;X“, ed è editore degli space &quot;Y“ e &quot;Z&quot;. Se cancelliamo l’utente 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 all’area vendite sono aggiunti con contributori agli space &quot;Sales&quot; e &quot;Finance&quot; e qualche altro space. Se una nuova persona viene assunta nell’area vendite, è necessario aggiungerla agli stessi space e questo è un grosso lavoro di manteinance . Invece, fornendo al gruppo sales accesso a questi space, l’aggiunta 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.
  • 40. Maintenance – Best Practice Quando viene cancellato un item (contenuto o space) in Alfresco, l’item 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.
  • 41. Recuperare un item cancellato
  • 42.
  • 43. Data Dictionary Data Dictionary è una shared resource. Tutti gli script e i template presenti in data dictionary possono essere definiti dall’amministratore 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 l’estensione .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 l’estensione .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
  • 44. 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.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53. 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.
  • 54. Regole delle Rules 1/2 Le regole definite negli space padre (con l’opzione “applica la regola ai sub-spaces) 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 .
  • 55.
  • 56.
  • 57.
  • 58. 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.
  • 59.
  • 60.
  • 61. 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(&quot;Intranet/Marketing Communications/Website Documents/Staging&quot;); var productionFolder = companyhome.childByNamePath(&quot;Intranet/Marketing Communications/Website Documents/Production&quot;); 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[&quot;cm:from&quot;] <= today) { child.move(productionFolder); } } }
  • 62. 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
  • 63. Execute Custom JavaScript Il secondo modo è usare direttamente l’indirizzamento URL per una chiamata stile REST. Il web client di Alfresco è una servlet chepermette l’esecuzione di script direttamente via URL Questa caratteristica permette di accedere agli script e I risultati degli script sono ritornati come stream html nella respone.
  • 64. Scripting usage I seguenti oggetti sono disponibili agli scripts per default in root scope: Named object Description companyhome The Company Home node userhome Current user's Home Space node person Node representing the current user's Person object space 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 The current document script The node representing the script itself search A host object providing access to Lucene and Saved Search results people 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 .
  • 65. Scripting Esempi // test accesso alle proprieta di un documento e modifica var docname = document.name.substring(0, document.name.lastIndexOf('.')); document.properties.name = &quot;12345 &quot; + document.properties.name; document.save(); / modifcare il contenuto appendendo una stringa alla fine document.content = content + &quot;Here is another line added from a script!“ // creare una cartella nello stesso space var folderNode = space.createFolder(docname + &quot; - added by script&quot;); // 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(&quot;cm:translatable&quot;);
  • 66.
  • 67. Auditing Auditing è disabilitato per default. Per abilitare la configurazione di default bisogna cambiare l’attributo enabled. Per abilitare l’auditing tramite un metodo deve essere abilitato on “unset” sul metodo, abilitato o disabilitato sul service e abilitato al livello più alto dell’elemento da controlalre. Se l’elemento è marcato enabled=&quot;false&quot; dovunnque nello stack l’auditing sarà disabled. L’audit configuration file è <configRoot>uditConfig.xml.
  • 68.
  • 69.
  • 70.
  • 71. 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. &quot;add a simple workflow&quot; ad un document quando è inserito in una cartella Quando un ocumento ha un simple workflow significa che ha un &quot;forward step“ e un &quot;backward step“ ad esempio &quot;Approve“ e &quot;Reject&quot;. Quando uno step è invocato il contenuto può esser copiato o spostato in una altra cartella. Per esempio ci potrebbero essere cartelle chiamate &quot;Draft&quot;,”In Review&quot;, e &quot;Approved&quot;. Lo stato del documento è determinato dalla cartella in cui si trova.
  • 72.
  • 73. Customizzazione base Se la customizzazione consiste nella configurazione di files o properties web-client-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 l’item di configurazione.
  • 74.
  • 75.
  • 76. Repository Configuration repository.properties AlfrescoomcatebappslfrescoEB-INFlasseslfresco Lucene configuration: path dei file degli indici – path dove il contenuto binario è immagazzinato Database configuration : database connection properties Mail configuration Admin username
  • 77. 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 dall’uso 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
  • 78. 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 l’uso di SCSI RAID disk array.
  • 79.
  • 80. 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>
  • 81.
  • 82. Disabilitare l’archivio Documenti Per default tutti i documenti e le cartelle che non sono taggate con l’aspetto 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=&quot;storeArchiveMap&quot; class=&quot;org.alfresco.repo.node.StoreArchiveMap&quot;> <property name=&quot;archiveMap&quot;> <map> <entry key=&quot;workspace://SpacesStore&quot;><value>archive://SpacesStore</value></entry> </map> </property> </bean>
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 92. 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 &quot;sample OR whitepaper&quot;. Sample AND whitepaper Ritorna solo sample-a.pdf e sample-b.pdf. E’ la stessa cosa di usare il più (&quot;+&quot;) come in +sample +whitepaper. L’operatore + richiede che un termine sia nel documento per esser eincluso
  • 93. Lucene queries -sample whitepaper Ritorna solo class roster. Il meno (&quot;-&quot;) specifica che il risultato non deve includere la parola &quot;sample&quot;. M?urice Ab* Lauren~ Riotrnano tutte class roster. (&quot;?&quot;) è un carattere jolly. L’asterisco (&quot;*&quot;) è un wildcard. Tilde (&quot;~&quot;) denota una fuzzy search—cerca parole similari. In questo caso &quot;Lauren&quot; to &quot;Loren&quot;. 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 (&quot;^&quot;) carattere è usato per incrementare il peso del terminedi un fattore 10. Questo rende i PDFs più pesanti. Così si trovano al top della lista
  • 94. 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 (&quot;@&quot;) symbol followed by the namepsace and property name, and then the search phrase. @cmdescription:read This search returns both sample PDFs because both contain the word read in their description fields. @cmdescription:(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 class-roster.txt. @scisActive:true Searches for custom properties work as well. This one returns documents where the SomeCo isActive property is set to true.
  • 95. 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. @cmdescription:&quot;wonderful absorb&quot;~12
  • 96. Ricerca per range Properties can also be searched by range. @cmcreated:[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. @cmname:([clam TO dog]) Range searches work on strings as well. This search returns class-roster.txt, but neither of the sample Whitepapers.
  • 97. 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 l’owner
  • 98. 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.
  • 99. 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/my-transformers-context.xml . Default transformers sono dichiarati nel package org.alfresco.repo.content.transform Usare javadocs per vedere gli effetti delle diverse impostazioni.
  • 100. Trasformations Configuration 2/3 Se è richiesta una trasformazione da mimetype X->Z ma sono disponibili solo X-Y 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.
  • 101. 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=&quot;transformer.complex.OpenOffice.PdfBox&quot; class=&quot;org.alfresco.repo.content.transform.ComplexContentTransformer&quot; parent=&quot;baseContentTransformer&quot; > <property name=&quot;transformers&quot;> <list> <ref bean=&quot;transformer.OpenOffice&quot; /> <ref bean=&quot;transformer.PdfBox&quot; /> </list> </property> <property name=&quot;intermediateMimetypes&quot;> <list> <value>application/pdf</value> </list> </property> </bean>
  • 102.
  • 103.
  • 104. Auto Versioning Per default tutto il contenuto versionabile ha l’AUTO-Version attivo. Questo vuol dire che una nuova versione è creata nella history quando il contenuto è uploadato. L’Auto-Versioning segue le seguenti regole: La initialVersion indica che quando l’aspetto 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 dell’auto-version può essere impostata a off anche per uno specifico contenuto agendo sulla proprietà via UI.
  • 105. Auto Versioning: contentModel.xml <aspect name=&quot;cm:versionable&quot;> <title>Versionable</title> <properties> <property name=&quot;cm:versionLabel&quot;> <title>Version Label</title> <type>d:text</type> <protected>true</protected> </property> <property name=&quot;cm:initialVersion&quot;> <title>Initial Version</title> <type>d:boolean</type> <default>false</default> </property> <property name=&quot;cm:autoVersion&quot;> <title>Auto Version</title> <type>d:boolean</type> <default> false </default> </property> </properties> </aspect>
  • 106. 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.
  • 107.
  • 108.
  • 109.
  • 110. 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/custom-repository.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
  • 111.
  • 112. Backup – Best Practice La possibilità di effettuare un backup a caldo dipende dalle capacità del database e dalla possibilità di quest’ultimo con un tool che può effettuare uno &quot;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. L’hot 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.
  • 113.
  • 114.
  • 115. Maintenance – Best Practice Quando viene cancellato un item (contenuto o space) in Alfresco, l’item 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.
  • 116.
  • 117.
  • 118.
  • 119.
  • 120.
  • 121.