I am working on a product that mainly tracks BPO daily activities.
Product based on 3 tiers Architecture (JSF,EJB2.0 and MSSQL).
There are many teams across the globe using this Application.
And their shift timings differ.
Say team A, the shift timing starts @ 2:30P.M (configurable) . Depending upon
the work load, they might need to log-on before 2:30P.M. In that case, that period
will be considered as over time.
My requirement is to display an message at 2:30 P.M. indicating that
their normal shift-timing starts by now.
That's the challenging part. In my understanding, I need to apply somekind of
server pushing concept.
Any better idea or approach?
You cannot push anything over HTTP, and therefore you cannot push over JSF. HTTP is based on a Request/Response cycle and there's no allowance for unsolicited responses or multiple responses for a request in the HTTP standard.
An IDE is no substitute for an Intelligent Developer.
I think it would be difficult to implement server push functionality as the server would have to send response to the client without the client actually making any request for it.
Also you can make a request to the server when the pop up appears/user user clicks on the popup to do the required server side stuff.
Alternatively, you could use the a4j:poll tag. That tag will periodically poll the server, and can then update another a4j region or component. In this case, you could update the area that displays if a user is in his shift or not.
To prevent to many polls, you could set the interval to the total time the user has left before his shifts ends.