Ciao Pierluigi e grazie per la pronta risposta. Il problema me lo sono posto quando un nostro partner ci ha proposto una soluzione di gestione "pratiche" ove i documenti risiedono in alfresco, i metadati sono in Oracle ed il tutto è gestito da un'applicazione esterna. Quando ho chiesto come poter "pubblicare" sul sito aziendale alcuni documenti in modo contestualizzato e filtrato mi è stato detto che dovevo interfacciarmi sia con alfresco che con Oracle.
Questa "prassi" mi ha lasciato un pò perplesso in quanto in futuro potrei avere N altre applicazioni che potrebbero dover interagire con questi documenti e mi ritroverei a dover ereditare sempre la doppia interrogazione, aumentando enormemente, tra l'altro, la complessità della manutenzione. Se il partner, infatti, modificasse lo schema dei metadati sarei costretto a riaggiornare tutte le N applicazioni.
Personalmente, invece, mi ero convinto (più o meno in accordo con la tua risposta) che i metadati che hanno la loro connotazione naturale assieme al documento dovessero risiedere in alfresco, mentre quelli specifici dell'elaborazione nell'applicazione esterna.
Faccio un esempio che magari mi aiuta ad esporre meglio il problema. Supponiamo dunque di dover trattare un'applicazione document-centric, ad esempio per la scrittura, firma digitale, archiviazione e pubblicazione su web di atti amministrativi. In questo caso immagino di creare un custom model e/o aspects per associare al "pdf" dei metadati come l'autore, l'ufficio di competenza, il responsabile, la data di emissione, il progressivo dell'atto e così via.
Un app esterna gestisce la scrittura collaborativa e l'apposizione della firma digitale, l'interrogazione/integrazione con il sistema di gestione contabile, il flusso, etc. quando il documento è "finito" e firmato lo carico in alfresco associandovi i metadati (e qui viene in aiuto il webscript che mi garantisce atomicità, associazione tipo/aspetti, presenza dei metadati minimi, etc.). Ora posso facilmente scrivere un plugin per il mio cms che interroga alfresco (magari tramite un'altro webscript) *senza* dover interfacciarmi con l'applicazione di gestione e/o il database oracle.
Il partner dal canto suo mi spiegava che la loro scelta progettuale nasceva dalla complessità di gestione dei metadati in alfresco. In pratica mi riferivano che modificare una proprietà di un custom model spesso comportava dei grossi problemi. Se ad esempio una proprietà era ad esempio "nome ufficio" e dopo aver caricato i documenti si voleva trasformare la stessa in un'associazione ad un'elenco di nodi "ufficio" bisognava cancellare tutti i documenti e ricominciare daccapo. A prescindere dalla correttezza di quanto affermato, la cosa era vista come molto macchinosa soprattutto in riferimento ad una evoluzione del modello dei dati molto dinamica.
Come orientarsi dunque?
Poichè alfresco consente anche altre funzionalità, quali gestione del workflow, degli utenti, dei permessi, perchè non sfruttarlo anche per questi aspetti? anche qui il partner mi diceva che più "si mette mano" ad alfresco e più il sistema rischia di divenire poco stabile/manutenibile.
Infine, tornando anche al topic principale, vorrei comunque provare a scrivere qualche form/data web script per caricamento/reperimento dei documenti, per allargare l'utilizzo di alfresco anche ad utenti informaticamente poco skillati. Trattandosi di cose semplici, scrivere una webapps apposita mi sembra attualmente esagerato, ho visto che si possono scrivere facilmente dei presentation web script, ma non sono integrati in share. Volendo dunque realizzare la presentazione in share senza utilizzare java come mi consigliate di procedere?
grazie
Nico