2010-01-18 4 views
0

Basé sur la question (How to create a client notification service for a webapp or should I use an Observer Pattern?) J'aimerais savoir.Création d'un modèle de publication-abonnement à intégrer au modèle DAO

J'ai un DAO entièrement implémenté avec des beans Entity contenant uniquement la méthode getters et setters. Chaque entité est mappée à un EntityManager.

Actuellement, il n'y a aucun moyen de notifier les utilisateurs de toute modification ajoutée/supprimée/mise à jour à un stockage persistant tel qu'une base de données.

Je veux savoir, comment vais-je implémenter le modèle Publish-Subscribe (également connu sous le nom de pattern Observer) de sorte que je n'ai pas besoin d'étendre mon architecture DAO actuelle. Je ne souhaite pas que mes entités héritent de l'éditeur car toutes les entités ne sont pas mises à jour.

S'il y a des outils/cadres/bibliothèques que je peux utiliser pour ma situation, s'il vous plaît faites le moi savoir. De plus, je n'utilise aucun framework persistant (framework tel que Hibernate), le manager DAO et Factory ont été complètement écrits de toutes pièces par moi.

Cordialement,

Répondre

1

Je suis en train de construire un concept similaire ... Je me fiche de tous les événements et au sein des projets, nous voulons nous intéresser à différents événements. Nous construisons donc un modèle dans lequel toutes les opérations DAO sont soumises à DROOLS Fusion. Basées sur des règles et des raisonnements temporels, elles notifient les auditeurs via une architecture de notification. Selon vos besoins, l'architecture peut être simple auditeurs ou JMS ou email ... peu importe. Si vous n'avez aucun critère, faites attention à un rappel pour les événements DAO, puis demandez à votre DAO d'insérer, de mettre à jour, de supprimer les opérations, de soumettre l'objet aux écouteurs ou à un type de file d'attente JMS.

espoir qui était clair ...

Paul

1

La première suggestion que j'aurais est d'intégrer un objet observable au sein de votre DAO. Ensuite, vous auriez vos sous-marins regarder cet objet (j'ai fait des choses similaires dans le passé).

L'autre suggestion que j'ai est que vous pourriez ajouter un déclencheur à la base de données elle-même. Cela serait particulièrement utile s'il y a quelque chose en dehors de votre application qui pourrait changer la base de données que vous souhaitez notifier à votre sous.

Bonne chance.

+0

Eh bien, essentiellement le modèle publish-subscribe sera utilisé pour informer les clients des changements d'un produit si de nouveaux produits a été ajouté ou produit en cours a été mis à jour/supprimé . Mes haricots ne sont que des getters et des setters, alors j'aimerais bien que l'on ne sache pas si elle a été mise à jour ou créée. –

Questions connexes