User Tools

Site Tools


wiki:epims4_0m2:developer:epbackcache

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
wiki:epims4_0m2:developer:epbackcache [2008/08/13 17:30]
barthe
wiki:epims4_0m2:developer:epbackcache [2008/10/02 10:21] (current)
Line 18: Line 18:
  
 Le gestionnaire de cache (CacheManager) gère une liste d'''​Analysis''​ pour chaque configuration. Lors du premier accès à une configurations,​ le CacheManager crée son cache à partir du fichier correspondant à la configuration. Par la suite, il doit permettre une mise à jour et la sauvegarde dans le fichier cache de cette liste. La mise à jour comprend l'​ajout de nouvelles acquisitions mais également la suppression des acquisitions qui ont été supprimées physiquement ....  Il a été choisi de sauvegarder les changements dans le fichier "​cache"​ lors d'un changement de configuration et à la fin de l'​application. ​ Le gestionnaire de cache (CacheManager) gère une liste d'''​Analysis''​ pour chaque configuration. Lors du premier accès à une configurations,​ le CacheManager crée son cache à partir du fichier correspondant à la configuration. Par la suite, il doit permettre une mise à jour et la sauvegarde dans le fichier cache de cette liste. La mise à jour comprend l'​ajout de nouvelles acquisitions mais également la suppression des acquisitions qui ont été supprimées physiquement ....  Il a été choisi de sauvegarder les changements dans le fichier "​cache"​ lors d'un changement de configuration et à la fin de l'​application. ​
 +
 +
  
 ==== Implem ==== ==== Implem ====
Line 24: Line 26:
 ** Architecture globale de eP-Back** ** Architecture globale de eP-Back**
  
-Modification de l'​interface ''​Analysis''​ pour que toutes les informations soient présentes (la sérialisation/​désérialisation d'un objet ''​Analysis''​ permet donc de conserver l'​ensemble des infos nécessaire). Deux propriétés sont exclus lors de la sauvegarde des objets ''​Analysis''​ dans le fichier cache : le !DataFormat (présent dans les implémentations de ''​Analysis''​) et les fichiers associés. Néanmoins, les fichiers attachés sont recalculés une seule fois lors du premier accès à cette propriété.+Modification de l'​interface ''​Analysis''​ pour que toutes les informations soient présentes (la sérialisation/​désérialisation d'un objet ''​Analysis''​ permet donc de conserver l'​ensemble des infos nécessaire). Deux propriétés sont exclus lors de la sauvegarde des objets ''​Analysis''​ dans le fichier cache : le DataFormat (présent dans les implémentations de ''​Analysis''​) et les fichiers associés. Néanmoins, les fichiers attachés sont recalculés une seule fois lors du premier accès à cette propriété.
  
-L'​interface ​!DataFormat n'est pas modifié, par contre les implémentations utilisent un !IFactory. FIXME: A mettre au niveau de l'​interface ?! Une implémentation abstraite de !IFactory utilise, dans un premier temps, le cache pour récupérer les ''​Analysis''​ et fait ensuite appel si nécessaire à la méthode abstraite createAnalysis (spécifique au format des données). Le gestionnaire de cache gère une Map par configuration,​ cette Map étant référencée par le nom de la configuration. Chaque Map, contient une liste d'''​Analysis''​ par nom de fichier résultat d'​acquisition. Le nom de fichier résultat d'​acquisition est absolue. Dans le cas où le répertoire source associé à la configuration change de path, le fichier cache devra être recréé. ​+L'​interface DataFormat n'est pas modifié, par contre les implémentations utilisent un IFactory. FIXME: A mettre au niveau de l'​interface ?! Une implémentation abstraite de IFactory utilise, dans un premier temps, le cache pour récupérer les ''​Analysis''​ et fait ensuite appel si nécessaire à la méthode abstraite createAnalysis (spécifique au format des données). Le gestionnaire de cache gère une Map par configuration,​ cette Map étant référencée par le nom de la configuration. Chaque Map, contient une liste d'''​Analysis''​ par nom de fichier résultat d'​acquisition. Le nom de fichier résultat d'​acquisition est absolue. Dans le cas où le répertoire source associé à la configuration change de path, le fichier cache devra être recréé. ​
  
 {{ epb_cachemgmt.jpg }} {{ epb_cachemgmt.jpg }}
 ** Changement de configuration et mise a jour du cache ** ** Changement de configuration et mise a jour du cache **
  
-FIXME: Pour le noter quelque part pour le moment : Lors de la création des objets ''​Analysis''​ depuis le fichier cache, on utilise XStream. La propriété ​!DataFormat n'a pas été sauvegardé (positionnée comme transiant) et est par conséquent nulle ! Ce qui pose problème lors de l'​exécution de certaine méthode ! **Pour le moment, mais à revoir !!**; les implémentations d'''​Analysis''​ (nécessitant que cette propriété soit positionnée) doivent implémenter la méthode ''​setDataFormat''​. Lorsque les objets ''​Analysis''​ sont retournés par le !CacheManager,​ la classe ​!AbstractCacheFactory vérifie (en utilisant l'​introspection) que la méthode existe et positionne la valeur dans l'​affirmative. **Le problème** est que cette méthode est appelé à chaque fois que l'on accède à l'​analyse dans le cache et non pas QUE la première fois que l'​objet est créé à partir du fichier !!!+FIXME: Pour le noter quelque part pour le moment : Lors de la création des objets ''​Analysis''​ depuis le fichier cache, on utilise XStream. La propriété DataFormat n'a pas été sauvegardé (positionnée comme transiant) et est par conséquent nulle ! Ce qui pose problème lors de l'​exécution de certaine méthode ! **Pour le moment, mais à revoir !!**; les implémentations d'''​Analysis''​ (nécessitant que cette propriété soit positionnée) doivent implémenter la méthode ''​setDataFormat''​. Lorsque les objets ''​Analysis''​ sont retournés par le CacheManager,​ la classe AbstractCacheFactory vérifie (en utilisant l'​introspection) que la méthode existe et positionne la valeur dans l'​affirmative. **Le problème** est que cette méthode est appelé à chaque fois que l'on accède à l'​analyse dans le cache et non pas QUE la première fois que l'​objet est créé à partir du fichier !!!
  
 \\ \\
Line 38: Line 40:
 ---- ----
  
-**(Continuez vers la suite de la documentation => [[.:epBackCache]])**+**(Continuez vers la suite de la documentation => [[.:epbackanalysis]])**
wiki/epims4_0m2/developer/epbackcache.1218641404.txt.gz · Last modified: 2008/09/24 15:35 (external edit)