Moodle multi tenant

moodle

Definizioni

Multi-tenant. Una parola probabilmente misteriosa per molte persone, che però ha delle notevoli implicazioni pratiche e operative. La multi-tenancy è la capacità di costruire multiple istanze di un software a partire da una singola installazione.

Ad esempio, grazie a questa funzione è possibile installare una piattaforma e-learning in un server e da quella singola installazione creare differenti piattaforme “virtuali” tra loro separate e in parte indipendenti: ogni piattaforma avrà i propri amministratori, i propri utenti, i propri corsi e il proprio layout. Agiranno quindi in modo indipendente le une dalle altre, come se fossero piattaforme tra loro separate.

Limiti e vantaggi

Ovviamente vi sono dei limiti: riprendendo l’esempio precedente, il primo limite riguarda la schermata d’accesso, comune a tutte le piattaforme “virtuali”: d’altra parte finchè l’utente non verrà riconosciuto, non potrà essere assegnato a una delle piattaforme disponibili. Un ulteriore limite riguarda la presenza di utenti duplicati: non potranno esistere due utenti con la stessa username, anche se appartengono a piattaforme virtuali differenti.

Limiti in ogni caso trascurabili se paragonati ai vantaggi, che sono fondamentalmente due: a livello gestionale e a livello organizzativo.

A livello gestionale, grazie alla multitenancy vengono ridotti i costi legati al mantenimento dell’intero sistema: invece di dover effettuare la manutenzione e l’aggiornamento di diverse piattaforme installate separatamente, è sufficiente agire su una sola piattaforma, riducendo impegno e costi di gestione.

A livello organizzativo la multi tenancy permette di creare gerarchie complesse, separando i diversi ambiti operativi e dando loro autonomia, mantenendo allo stesso tempo un controllo generale dell’intero sistema. Questo secondo aspetto, come vedremo, rappresenta un elemento fondamentale per rispondere alle complesse esigenze presenti nelle aziende di medie e grandi dimensioni, spesso strutturate in modo complesso e decentrato.

Esempi

Vediamo alcuni esempi dove la multy-tenancy può essere risolutiva.

1. Azienda di medie dimensioni strutturata in più dipartimenti; ogni dipartimento deve mantenere una forte autonomia a livello gestionale, in modo da rispondere a esigenze formative specifiche e particolari.

2. Azienda diffusa nel territorio, con molte sedi che svolgono funzioni simili e quindi hanno esigenze formative simili, ma che devono comunque essere tenute separate per motivi di privacy e logistici.

3. Azienda internazionale che intende personalizzare i contenuti nelle diverse regioni del mondo,

4. Piccola azienda che intende utilizzare la piattaforma sia per il personale interno che per la clientela, riducendo i costi, ma mantenendo gli spazi comunque separati.

Questi pochi esempi evidenziano come la multi tenancy non comporti la semplice riduzione di costi di manutenzione, ma permetta di rispondere ad esigenze che altrimenti non potrebbero trovare una risposta, diventando così insostituibile in una serie di situazioni.

Moodle (no multi tenancy)

A questo punto bisogna fare una triste ammissione: Moodle non ha funzioni che permettano il multi tenant. E la soluzione non sembra in vista, come viene esplicitamente dichiarato qui:

  • Multi-tenant support
  • Project state CANCELLED

https://docs.moodle.org/dev/Multitenant_support

Un progetto avviato con buone intenzione nel lontano 2011, presentato anche durante un Moodle Moot in Irlanda (Moodle 2.3) , poi tramontato per le troppe difficoltà tecniche. Il 30 Maggio 2014 Martin Dougiamas (creatore di Moodle) lascia il messaggio finale sul tracker del progetto:

Closing this because it’s simply not going anywhere with core Moodle.

Una frase molto significativa. La multitenancy non sembra essere tra le opzioni di Moodle, nonostante vi siano situazioni in cui è indispensabile. E’ un chiaro limite di Moodle, da non sottovalutare, perchè tali situazioni sono diffuse, e potrebbero far emergere competitor differenti da Moodle.

Soluzioni e alternative

Ovviamente vi sono delle soluzioni, l’esigenza è diffusa come testimoniano i messaggi del forum, e quindi si cercano strade alternative.  Tra queste vi è un’idea italiana, di Andrea Bicciolo di Mediatouch, che prevede di utilizzare la funzione “cohort” in Moodle per gestire una Multitenancy “fittizia”. Un progetto interessante, ma ancora in divenire.

1. Corsi, utenti e layout filtrati per Cohort (in arrivo)

Due soluzioni (!) complementari, entrambi basati sulle cohort, potrebbero permettere di gestire un surrogato di multi tenancy. Da un lato il progetto 46401 di Mediatouch, che prevede di gestire layout e categorie di corsi separate in base alla “cohort” di appartenenza. Questa soluzione, parziale, tuttavia è bene notare:

Thanks to Andrea Bicciolo at Mediatouch for the idea – he estimated it would be suitable for 80% of his clients who want “multi-tenancy” in Moodle

Dall’altro c’è il progetto 48203, che prevede l’impiego delle “cohort” per separare gruppi di utenti durante il processo di iscrizione ai corsi. In questo modo un insegnante vede solo gli utenti che appartengono al proprio gruppo anche al momento dell’iscrizione.

Ci sono i tracker per entrambi i problemi, ma non è ancora stata trovata una soluzione. Ci vorrà tempo, due progetti paralleli e complessi, entrambi incompleti, ci sarà sicuramente da aspettare.

https://tracker.moodle.org/browse/MDL-28946

https://tracker.moodle.org/browse/MDL-46401

2. Utilizzare Iomad, un fork di Moodle open source

Iomad è una versione open source di Moodle con la multitenancy. Gestita da un’azienda scozzese, questo fork sembra funzionare bene: in Moodle, compare una nuova sezione che permette di visualizzare gli utenti e compiere altre operazioni in base alla cohort di appartenza. I dubbi non vengono dal sistema in sè, che sembra essere efficiente, ma dal suo aggiornamento rispetto alla versione ufficiale di Moodle, tutto da verificare.

http://www.iomad.org/what-is-iomad/

3. Utilizzare FormaLMS

Come Max ci racconta in un ottimo articolo su elarnit, FormaLMS supporta le funzioni multi tenant. Questa piattaforma è un fork di DOCEBO, piattaforma e-learning italiana un tempo open source ora a pagamento. Il progetto è stato preso in mano da Elearnit.

http://www.formalms.org/

4. Leggere il paper sulla multitenancy in Moodle.

http://www.synergy-learning.com/wp-content/uploads/2012/05/Multi-tenancy-in-Moodle.pdf

3 thoughts on “Moodle multi tenant

  1. max

    Ciao,
    non sapevo che con Moodle non si potesse avere una gestione multi-tenant (o multidomain, o multitemplate, a seconda direi del punto di vista che si vuole adottare).
    Non conosco l’architettura logica di Moodle a livello di gestione utenti: non c’è dunque la possibilità di assegnare “nodi” di utenti a template specifici?

    Per la verità, in Forma Lms la gestione che tu citi come esempio è possibile nativamente (lo era già ai tempi di D4), con limiti anche minori: ad esempio, è possibile avere pagine di accesso differenziate e url differenziati.

    Reply
  2. Lorenz Post author

    Ciao Max!
    Un piacere risentirti, in realtà neanch’io credevo che ci fosse un simile limite, ma andarci contro per motivi professionali mi ha aperto gli occhi 🙂

    Attualmente Moodle presenta i limiti descritti, quindi assegnare un template a un gruppo di utenti non è possibile. L’idea di gruppo (o nodo di utenti) in Moodle è innanzittutto legata al singolo corso: gli utenti visualizzano determinate risorse, i docenti vedono solo gli utenti assegnati al loro gruppo e via dicendo. Nel tempo l’idea di gruppo si è estesa ad altre funzioni, sono poi entrate in gioco le “cohort”, che però hanno funzioni limitate.

    In realtà credo che questo limite sia entrato nei “radar” di Moodle, sia perchè i forum sono zeppi di richieste simili, sia perchè sono iniziate ad emergere soluzioni alternative, che in un qualche modo aggirano il problema, senza modificare la struttura di Moodle.

    Ad essere sinceri, mentre scrivevo questo post ho pensato a Forma Lms e al lavoro che state facendo. Si, sapevo che FormaLms può risolvere questo problema e credo che questo sia un vantaggio sostanziale, soprattutto per la clientela business (vedi esempi riportati). Credo che dovreste concentrarvi molto su questo aspetto, anche perchè la prima alternativa è sempre Moodle.

    Reply
  3. Max

    Ciao Lorenz,
    in realtà vedo solo ora il tuo commento, forse non avevo attivato la notifica.

    Grazie per le tue considerazioni: confermo che stiamo cercando di spingere su questo aspetto e in effetti sta funzionando.

    A presto!

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *


Warning: Declaration of sk2_referrer_check_plugin::output_plugin_UI() should be compatible with sk2_plugin::output_plugin_UI($output_dls = true) in /membri/lorenz77/wordpress/wp-content/plugins/SK2/sk2_plugins/sk2_referrer_check_plugin.php on line 78

Warning: Declaration of sk2_captcha_plugin::output_plugin_UI() should be compatible with sk2_plugin::output_plugin_UI($output_dls = true) in /membri/lorenz77/wordpress/wp-content/plugins/SK2/sk2_plugins/sk2_captcha_plugin.php on line 70

Warning: Use of undefined constant after - assumed 'after' (this will throw an Error in a future version of PHP) in /membri/lorenz77/wordpress/wp-content/plugins/SK2/sk2_core_class.php on line 314

Warning: Use of undefined constant after - assumed 'after' (this will throw an Error in a future version of PHP) in /membri/lorenz77/wordpress/wp-content/plugins/SK2/sk2_core_class.php on line 314

Warning: Declaration of sk2_pjw_simpledigest::output_plugin_UI() should be compatible with sk2_plugin::output_plugin_UI($output_dls = true) in /membri/lorenz77/wordpress/wp-content/plugins/SK2/sk2_plugins/sk2_pjw_daily_digest_plugin.php on line 274

Warning: Declaration of sk2_rbl_plugin::treat_this($cmt_object) should be compatible with sk2_plugin::treat_this(&$cmt_object) in /membri/lorenz77/wordpress/wp-content/plugins/SK2/sk2_plugins/sk2_rbl_plugin.php on line 342