| |
L'une des clefs du projet Boardz2 est d'assurer une efficacité maximum du stockage persistant de données afin que l'accès aux statistiques et indicateurs soit rapide et que l'ensemble des données disponibles puissent être relues après un redémarrage de l'instance de serveur ou de l'infrastructure qui la porte.
Pour cela, Boardz2 implémente un ensemble de classes propres à la fonction de stockage, dont le rôle est d'organiser TOUTES les transactions avec les stockages extérieurs de données (bases de données ou fichiers).
Conceptuellement, un stockage est une classe qui :
Le plus souvent (ex. MysqlDatabase), un stockage s'appuiera sur une implémentation tierces comme par exemple une base de données dont il tirera des principes propres à respecter sa mission. Par exemple, la performance d'accès à des données relationnelles sera en fait assurée par l'indexation sous-jacente de la base de données tierces.
Dans certains cas plus complexes (MoodleCube), un stockage peut présenter une organisation propre à produire ses propres optimisations par son organisation interne, tout en continuant à confier à des implémentations tierces des fonctions de stockage de plus bas niveau.
Cette instance de stockage est unique (singleton) et sert au stockage en base de données de toutes les données de structure du serveur BoardZ. Tous les objets administrable du serveur y sont décrit et mémorisés, avec leur relations les uns aux autres, afin de pouvoir redémarrer un service “à l'identique” après un arrêt machine.
Les entités principalement décrites sont :
Ce stockage à structure complexe organise une structure multidimensionnelle optimisée pour la consultation d'indicateurs et la construction de tableaux de bords. La structure de ce stockage optimise la mise en cache de sommes calculées intermédiaires sur les dimensions partielles, afin de ne pas avoir à recalculer les indicateurs à partir des données d'origine (les logs, par exemple).
Le cube Moodle dispose de deux ensembles de tables :
Retour à la documentation de conception - Retour à l'index général