Conception Générale du service BoardZ

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

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é)

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

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é