CMIS

cancel
Showing results for 
Search instead for 
Did you mean: 
fedemori
Member II

CMIS

Buongiorno,
ho realizzato un client CMIS per inserire e recuperare doc da Alfresco.
Vorrei sapere se è meglio effettuare un login/logout su Alfresco ogni volta che viene effettuata una richiesta di post/get su alfresco, oppure salvare la session su Alfresco a livello di Application o Session del mio applicativo.
Grazie
9 Replies
davidciamberlan
Alfresco Employee

Re: CMIS

Ciao,

suppongo che tu stia utilizzando java con Chemistry per il tuo client (se non fosse così scrivi cosa usi)…

Stabilire una sessione cmis è una operazione onerosa. L'oggetto session crea una sua cache allo scopo di minimizzare gli accessi al server, per cui dovresti cercare di riutilizzare una sessione già aperta il più possibile, pena il decadimento delle performance.

quando usi CMIS con Alfresco, ricordati anche di utilizzare le Alfresco OpenCMIS Extension che ti permettono di gestire gli aspetti e aggiungono alcune funzionalità extra.
fedemori
Member II

Re: CMIS

ok grazie,
uso sia chemistry che OpenCMIS extension. Un'altra informazione: è possibile settare un timeout di sessione?
davidciamberlan
Alfresco Employee

Re: CMIS

Ciao,

che io sappia c'è un metodo (session.clear()) per pulire "manualmente" la sessione…

In realtà il termine sessione può essere un po' fuorviante.
La comunicazione via cmis tra client e server è stateless (basata su messaggi xml o json).
L'oggetto session viene utilizzato essenzialmente per mantenere alcune informazioni di stato ma solo lato client e quindi non consuma risorse sul server (se è questo in senso del problema che ti poni per il timeout).

Chemistry si preoccupa, in modo trasparente, di verificare ed eventualmente rinnovare le info che mantiene nella sessione che quindi può durare potenzialmente molto tempo.

Spero di esserti stato d'aiuto.

fedemori
Member II

Re: CMIS

Ok quindi che utilizzo un solo utente per salvare e recuperare i file secondo è possibile un'unica login a livello di applicazione?
davidciamberlan
Alfresco Employee

Re: CMIS

Ciao,

se ho capito bene il senso della tua domanda, la risposta è: dipende molto da cosa devi fare.

Puoi usare un unico utente di servizio con un'unica sessione ma in questo caso tutti gli utenti potranno compiere le stesse azioni (quelle permesse all'utente di servizio).
Se invece, ad esempio, stai usando più utenti ciascuno dei quali può compiere solo particolari operazioni, allora forse sarebbe meglio a creare una sessione per ciascun utente.

fedemori
Member II

Re: CMIS

ciao non devo utilizzare alfresco come repository quindi non mi interessa attualmente la gestione delle ACL sui singoli documenti. Quindi utilizzerei l'utente di servizio. Quindi se utilizzo la stessa sessione cmis gestisce eventualmente le chiamate in concorrenza?
davidciamberlan
Alfresco Employee

Re: CMIS

Ciao,

ti cito la documentazione ufficiale di Chemistry (preso da qui):

<cite>
In order to be effective, this Session object has to be reused as much as possible! Don't throw it away. Keep it and reuse it! OpenCMIS is thread-safe. The Session object can and should be reused across thread boundaries.
</cite>

;-)
fedemori
Member II

Re: CMIS

grazie mille
fedemori
Member II

Re: CMIS

Ma se si ha a che fare con un numero di utenti consisenti (nel mio applicativo), non c'è il rischio che si verifichi un collo di bottiglia dato che utilizzano tutti la stessa sessione?
Grazie