Ceci est une ancienne révision du document !
| |
Ce projet est porté par l'Université d'Avigon (UAPV) sous la direction de Thierry Spriet,Vice-président délégué au numérique et à l'innovation pédagogique, et a été confié à la société ActiveProLearn, en Décembre 2018. ActiveProLearn est un laboratoire privé d'innovation pédagogique et technologique dans l'éducation spécialisé sur socle LMS MOODLE.
Le projet BoardZ reprend les mêmes objectifs que son prédécesseur (AVP BoardZ sur Github), mais au sein d'un partenariat public/privé destiné à :
Soit au 28/01/2020 : 154 jours de travail
Bénéficiant d'une longue expérience et d'une recherche opérationnelle de plusieurs années sur les thèmes des statistiques, calculs de temps, tracking, reporting, extraction de données à partir d'une plate-forme Moodle, le projet récupérera des éléments du projet BoardZ initial, mais en intégrant sa propre ligne de design technique.
Les objectifs de BoardZ deuxième génération, seront de :
Afin de pouvoir adresser des performances de calcul et d'absorption en temps réel sur des volumes de données importants ou sur des environnements multi-tenants (Moodle multiples, Moodle en batterie virtualisés (VMoodle)) les choix de départ de la version 2 sont différents de la première version développée en PHP sous Symphony.
| Version 1 | Version 2 prototype | Version 2 finale | |
|---|---|---|---|
| Technologie | PHP Symphony | PHP Framework propre optimisé + librairies | Java J2SE |
| Stockage DB | MySQL/MariaDB | MySQL/MariaDB | MySQL/MariaDB puis extension sur un stockage multi-driver |
| GUI | propre | intégrée dans Moodle | intégrée dans Moodle (plugins implantables) + backoffice propre |
L'objectif final est de disposer d'un serveur de calcul autonome capable de suivre en temps quasi réel l'ensemble des activités et usages de la population inscrite, afin d'en tirer des indicateurs pédagogiques et opérationnels sans altérer la performance frontale de Moodle.
L'objectif de calcul est important, en ce sens que les requêtes et agrégations de données peuvent adresser des formules non-linéaires (quadratiques, n-quadratiques) dans une exploration temporelle multi-dimensionnelle. de ce fait, les charges de calcul et l'organisation du stockage ne serait pas supportable s'il était directement intégré dans le code de Moodle et opéré comme service directe du LMS.
Accomplir cet objectif de pouvoir calculer efficacement un grand nombre d'indicateurs dans un grand nombre de contextes variés, et sur des formules non linéaires, nécessite de dissocier le moteur de calcul sur une infrastructure dédié, et de créer les ponts d'alimentation et de restitutions de données entre le serveur et l'environnement d'exploitation moodle.
Au delà de l'objectif architectural (et ce que l'objectif architectural doit servir), c'est le besoin, pour les institutions d'enseignement, de pouvoir disposer d'indicateurs réflexifs et comparés sur l'apprentissage, permettant à un apprenant (ou à un enseignant) d'observer son positionnement relatif par rapport au groupe, la promotion ou la session.
En effet, le numérique nous permet de collecter en continu des données élémentaires dont l'exploitation permet de donner des indications sur le “comportement d'usager” de l'utilisateur. Il serait déontologiquement abusif d'induire une extrapolation sociologique du “comportement d'usager” et de réaliser une projection sur le profil psychologique, social ou cognitif de l'utilisateur, mais à une échelle statistique, ou comparée, sur une population donnée, soumise au même “contrat institutionnel” qui définit les objectif et le cadre dans lequel ces objectifs sont proposés, des déductions des signaux que représentent les traces de comportement sur la plate-forme restent exploitables.
Exemple :
Un forum est mis en place comme point central de l'animation d'un cours. La participation à ce forum a été institutionnellement établie comme une contrainte principale du contrat pédagogique. Tous les inscrits subissent la contrainte (pas d'auditeur libre ou d'exception de statut). Dans ce cas la mesure comparée du nombre d'intervention dans le forum est un des indicateurs possibles d'analyse du positionnement d'un étudiant dans son groupe de référence (mais pas le seul)
Deux défis majeurs sont identifiés dans ce projet :
Le défi de la performance vient essentiellement d'une volumétrie prévisible importante dans le cadre d'utilisation de plates-formes universitaires, avec des populations d'inscrits que quelques milliers à quelques dizaines de milliers d'étudiants.
Si on table sur une adoption croissante des indicateurs dynamiques dans l'usage des interfaces de cours, et d'un appel croissant à des “tableaux de bord” agrégés pour piloter la pédagogie, alors une croissance horizontale et verticale de la volumétrie doit être anticipée.
Le requétage temporel sur des grandeurs historisées pose également un problème d'efficience de calcul. Si les résultats sont calculés “au moment du rendu”, des stockages classiques des échantillons doivent être systématiquement reparcourus pour obtenir les valeurs d'indicateurs sur la période demandée. Précalculer ces résultats sous la forme d'un simple cache de requêtes n'est pas une solution, car un changement infime dans la période souhaitée entraine un nouveau stockage de résultat. La consommation en cache sera alors énorme.
Le défi consiste donc à trouver un modèle de données capable de proposer un compromis entre ces deux contraintes.
Par maniabilité, on entent tous les principes qui permettront d'ajuster et de paramétrer les résultats, ajouter des configurations supplémentaires par rapport à celles des objectifs de départ. Ceci suppose de créer une couche de définition complète des données et entités manipulables par BoardZ, afin de pouvoir monter des couches d'administration au dessus du moteur. Ces couches d'administration devront permettre d'administrer efficacement les différentes structures internes du serveur et ses services rendus.
On distinguera donc dans le serveur :
Exemple : un Scheduler d'extraction de log est un organe structurel technique qui aspire les logs d'une plate-forme moodle. Savoir sous quelle méthode d'extraction les logs seront récupérés relève de la configuration de structure.
Exemple : un Parser de log qui capture une situation précise dans les logs pour la transformer en données d'indicateur rentre dans une fonctionnalité statistique objet de l'usage du BoardZ. Sa présence dans un Scheduler d'extraction de log doit être administrable.
BoardZ est un projet ambitieux, qui se donne un horizon de plusieurs années de développement, avec potentiellement des intervenants multiples. Il est donc nécessaire qu'une structure solide d'architecture en permette l'évolutivité à terme.
Les techniques qui permettent l'évolutivité et l'extensibilité des projets logiciels sont connues et répertoriées. On trouvera (non exhaustif) :
Quels sont les points clefs de l'extensibilité ?