Push Notifications on Java EE 5

This is a way to have “server push” notifications to the client’s browser without having AsyncContext available.

With a distributed network system, you can’t just store notification messages into the cache and retrieve it quickly by polling the server from client.

The solution described uses Quartz Scheduler or something else to enable the Application Server to data synchronize with the database and store it in its cache (flow A, B, and C).

This way when the client polls the server (flow 0 and 1), it goes straight for the cache (flow 2) so it won’t use up the thread of the App Server since database functions take a long time (especially in large scale scenarios). The drawback to this is if this certain client has a message then it has to do a database delete record (flow 5) which takes a lot of time, comparatively to case when there are no records found. A way around this is to have another scheduler to do the deletes before we get the next iteration of sync from the first scheduler.

notification_javaee5.png

HINT: The poll interval should be around ½ of the scheduler interval since there is no point in polling the cache when it is not populated properly by the scheduler.

 
14
Kudos
 
14
Kudos

Now read this

ES6 Lambda Expressions

This is the part of a series of blogs on the new features on the upcoming ECMAScript 6 (ES6) specification which JavaScript implements. In this blog we focus on the lambda expressions, also called arrow functions, introduced in ES6.... Continue →