I am going to implement something similar to Facebook notification and this website (StackOverflow\'s notification which is notifying us if anyone write a comment/answer etc for
Sounds like a task for WebSockets. It is part of Java EE 7 so the Glassfish should be one of the first AS that will support it.
For intercepting the DB access you can use @PostUpdate
and @PostPersist
. Here is related question.
There are many ways to do the so called Server Push for notifying the connected clients:
EDIT: In the Java world, there are couple of frameworks where server push (reverse ajax) is implemented out-of-the box. If you are familiar with GWT, I would suggest Errai. Other alternative is the Atmospere. The downside of the Atmospere is the fact that it requires standalone running process next to your regular application server with your web app. I was playing with it a year ago so this may have been changed since then.
In general, it is hard to provide you with a concrete piece of code, because it depends on the framework you will choose. I am familiar with Errai so here is an example in it:
Server Side:
@ApplicationScoped
public class TickerService {
@Inject
private Event tickEvent;
private void sendTick() {
tickEvent.fire(new Tick());
}
}
Client Side:
@EntryPoint
public class TickerClient {
public void tickHappened(@Observes Tick tick) {
// update the UI with the new data
}
}
Other benefits of using the Errai is having the CDI on the server and on the client out-of-the-box, another thing that is nice is using the web-sockets under the covers if it is supported and falling back to other solutions otherwise.
Whatever you choose, it should fit to your existing infrastructure and to your client side UI framework.