14/04/2015onic1 Zone fonctionnelle Référentiel
14/04/2015onic2 Sommaire Introduction Cas d’utilisations Le cache principal –La purge –Le remplissage Les caches secondaires Conclusion
14/04/2015onic3 Introduction Les éléments du référentiel correspondent aux paramètres et aux ressources utilisés par les objets principaux de l’application. Il évite de modifier le code dans de nombreux cas. Il représente 25% du nombre total des tables de l’application.
14/04/2015onic4 Cas d’utilisation Utilisation par TP. Les batchs accèdent au référentiel en consultation. Batchs
14/04/2015onic5 Le cache principal L ’accès aux données se fait par le cache et non par la base de données directement. Gain de temps. (le cache est en mémoire, pas de connexion à la DB) 1 cache par HOME qui contient toutes les données de la table. Synchronisation du cache et de la DB. DB Cache Cas d’utilisations
14/04/2015onic6 Suppression, modification, création Les données transmises par la couche présentation sont enregistrées en base. Le cache concerné est purgé.
14/04/2015onic7 Consultation Si le cache n’existe pas, il est crée puis rempli à partir de la base de données. Les informations sont extraites du cache.
14/04/2015onic8 La purge : vue générale… Cas d’utilisations Home CacheServer Home Home1 Purger Purger1... Purger CacheServerXML.xml Home L’objet Purger invoque la méthode purge de l’objet home sur tous les serveurs définis dans le fichier CacheServerXML.x ml Home
14/04/2015onic9 …suite On remonte l’arbre de bas en haut pour trouver la méthode purge. La variable cache est mise à nul.
14/04/2015onic10 Remplissage du cache principal On surcharge la méthode RemplirCache(). Chaque ligne de la table est contenue dans un objet métier. Le cache contient la liste exhaustive des objets métiers. Base de données Cache Objets métiers culture
14/04/2015onic11 Concurrence d’accès à la home L’objet Home doit être synchronisé: public synchronized static CultureHome getHome() {} Home P1 P2 P3 P1P2
14/04/2015onic12 Réutilisabilité La home doit hériter de AbstractListCachedHome Implémentation de la méthode RemplirCache() dans la home. Appel de CacheServer.purge(home) dans toutes les méthodes d’altération du métier. public void delete(ConnectionDB cdb) throws SQLException, BizException { CultureDB.delete(cdb, this); CacheServer.purge(CultureHome.class); }
14/04/2015onic13 Les caches secondaires Besoins spécifiques à la demande. Variables dans les homes. Les remplir dans RemplirCache(). Surcharger la méthode purge(). public void purge() { super.purge(); hashBlocage = null; }
14/04/2015onic14 Conclusion Zone fonctionnelle à ne pas négliger, Référentiel faux résultat faux. Le référentiel est au service des batchs. Le cache assure un service rapide de récupération de données. Pas ou peu de règles de gestions.
14/04/2015onic15 Fin Questions ?