boardz:design:generalstructure

Eléments de conception générale du service BoardZ

BoardZ Version 2

La version 2 de BoardZ propose un système de statistique et d'indicateurs déportés de Moodle constitué de 3 parties principales :

  • 1/ Un serveur de calcul autonome, écrit en Java compilé et capable de :
    • Recevoir un flux en temps réels de messages de journalisation de Moodle
    • Mettre à jour une représentation interne des contextes de gestion de moodle, et les métadonnées informatives qui y sont liées.
    • Définir des indicateurs, scalaires, vectoriels ou temporels
    • Mettre en place un modèle de données, et des stockages associés (caches mémoire, persistant sur base de données) permettant de mémoriser les valeurs d'indicateurs dans les dimensions concernées
    • Donner accès à des vues sur les indicateurs selon plusieurs modalités d'assemblage (granularité de la vue) et plusieurs formats de présentation (données brutes csv, objets json, rendu formaté HTML (widget), rendu graphé)
  • 2/ Un ensemble de primitives d'intégration dans Moodle, permettant de mettre en scène les vues de données dans la plate-forme Moodle pour les utilisateurs
  • 3/Un jeu de plugins permettant le transfert des données sources vers le serveur de calcul (plugins moodle), en mode push ou en mode pull.

Le projet prévoit à termes d'autres parties telles que :

  • Une GUI propre du serveur pour l'administration et la configuration des objets opérationnels.

Le serveur de calcul

Il s'agit d'un serveur écrit en Java faisant tourner :

  • Un serveur de requêtes HTTP léger permettant de donner un accès en mode requête/réponse aux services de :
    • Push de données de moodle
    • Requêtes de vues
  • Une tâche autonome continue d'intégration de données. Cette tâche consomme un tampon de données rempli par les requêtes d'alimentation des données source, effectue les calculs et abonde les modèles de représentation des indicateurs.
  • Une tâche autonome de synchronisation régulière des métadonnées de contexte.
  • Une tâche de monitoring, surveillant l'état des deux sous-ensembles ci-dessus, et capable de donner des alertes en cas de rupture ou de dépassement de capacités des “valeurs de travail acceptable” du serveur.
  • Une tâche “console” permettant d'invoquer des commandes sur le serveur en cours d'exécution, tel que le lancement d'une synchronisation manuelle, le nettoyage de caches ou de données temporaires, etc. Cette console développera un ensemble de primitives bas niveau de gestion sur lesquelles une GUI d'administration plus élaborée et graphique pourra être montée par la suite.

si le mode “Pull” est choisi pour récupérer les données d'exploitation :

  • Une tâche régulière d'aspiration de données dans Moodle au travers d'un plugin d'exposition des données associé (report/etl)

Les plugins d'intégration de résultats

Il s'agit dans un premier temps de plugins intégrables dans Moodle afin de proposer aux utilisateurs le rendu d'indicateurs “intéressants” pour eux, intégrés dans la conception du dispositif pédagogique lui-même.

Ces plugins permettront d'afficher dans les espaces de cours, ou les espaces annexes d'affichage adéquats (tableau de bord, blocs spécifiques d'une GUI d'une activité, en-tête de site, pied de page, ou tout autre espace de présentation projeté par Moodle), des éléments simples et compacts, basés sur un ou plusieurs indicateurs, mais potentiellement aussi des “tableaux de bord” statistiques plus complets, regroupant de nombreux indicateurs et sorties de données dans un agencement prédéfini.

Les plugins d'alimentation

Les plugins d'alimentation ajoutés à Moodle permettent une extraction massive et régulière des données de Moodle. Ils sont une alternative plus “industrielle” à des sondes SQL branchées sur la base de données de Moodle, et dont l'impact de charge pourrait être significatif, selon la requête et la volumétrie d'exploitation. Pour éviter de tels impacts, il est préférable d'extraire de manière massive des données “brutes” de moodle, avec une transformation minimum, puis en effectuer des transformations ultérieures dans le domaine de données de Boardz2. La charge de transformation et de préparation des indicateurs n'impactera plus l'exploitation de Moodle.

Le plugin Rapport ETL

Issu d'un ancien projet d'extraction générique de données de 2008 pour le projet Pairform@nce du MEN (M@gistère), le plugin de rapport ETL présente une API de WebServices destinées à l'extraction de massive de données de Moodle. Il prépare de manière différentielle des assemblages de données plus ou moins “documentés” et fournit des flux de données extraites à des applicatiion tierces.

Le plugin Rapport ETL peut être étendu avec plusieurs sous plugins “adaptateurs de données”, pour s'adapter à des besoins, méthodes et format d'extraction divers.

Le sous-plugin Boardz prépare les données en cohérence avec le besoin d'extraction du serveur Boardz2. Il propose deux formes d'invocation :

  • La fourniture d'un flux de données incrémental des journaux d'événements de Moodle
  • La fourniture d'un résultat de requête SQL arbitraire dans Moodle

La première invocation sera utilisée comme flux d'arrivée des traces “continues” de moodle. Il représente la traduction documentée de la table mdl_logstore_standard_log de moodle, complétée pour chaque enregsitrement de toutes les valeurs de dimension d'analyse du Cube Moodle de Boardz (cours, catégorie, groupe, module, niveau de contexte, métadonnées de l'utilisateur, métadonnées du cours, etc)

La deuxième invocation sera utilisée comme source de synchronisation des “données de structure” de moodle, c'est à dire, le catalogue des objets métiers présents dans Moodle avec leurs identifiants et leurs noms lisibles.


Revenir au sommaire de la conception - Revenir au sommaire général

boardz/design/generalstructure.txt · Dernière modification: 2020/04/07 11:07 (modification externe)