views:

81

answers:

2

Hi everyone,

Based on the question (http://stackoverflow.com/questions/2068425/how-to-create-a-client-notification-service-for-a-webapp-or-should-i-use-an-obser) I will like to know.

I have a fully implemented DAO with Entity beans containing only getters and setters method. Each entity is mapped to an EntityManager.

Currently there are no way of notifying users of any changes added/deleted/updated to a persistent storage such as a database.

I want to know, how will I implement the Publish-Subscribe pattern (also known as Observer pattern) such that I don't have to extend my current DAO architecture. I don't want my entities to inherit the Publisher because not all entities are update-able.

If there are any tools/frameworks/libraries that I can use for my situation, please let me know. Also, I'm not using any persistent framework at all (framework such as Hibernate), the DAO manager and Factory was completely written from scratch by me.

Regards,

+1  A: 

The first suggestion I would have is to embed an observable object within your DAO. Then you would have your subs look at this object (I've done similar things in the past).

The other suggestion I have is that you could add a trigger to the database itself. This would be especially useful if there is anything outside of your app that could change the DB that you want to notify your sub of.

Good luck.

SOA Nerd
The Elite Gentleman
+1  A: 

I am building a similar concept... I don't care about all events and within projects we want to care about different events. So, we are building a pattern where all DAO operations are submitted to DROOLS Fusion and based on rules and some temporal reasoning, it notifies listeners via a notification architecture. Depending on your needs, the architecture could be simple listeners or JMS or email... whatever. If you have no criteria, just care about a callback for DAO events, then have your DAO insert, update, delete operations submit the object to listeners or some type of JMS queue.

Hope that was clear...

Paul

PaulP1975