Thursday, 3 December 2009
High-Availability Ajax Push Deployments - An Industry First For ICEfaces EE
« What's new in JSF 2.0 webinar online | Main | GlassFish v3 and ICEfaces 2.0 »ICEfaces is keeping pace with these revolutionary deployment requirements by introducing industry-first capabilities in the Enterprise Push Server (EPS), which is now available in the newly-released ICEfaces Enterprise Edition 1.8.2. You can read more about EPS here, or if you are a supported customer a more detailed description is available in the ICEpack wiki here.
There are a few solutions in industry today that deliver Ajax Push capabilities, and most of them, including ICEfaces, relying on the long-polling technique to deliver asynchronous push updates to the browser. This technique requires an open connection to be held in anticipation of push events, which works fine if you only have a single view onto a single web application, as only one push connection is required. A major problem manifests itself though when you open multiple browser views onto the same web application, have multiple push-enabled applications deployed within the same domain, or have multiple push-enabled portlets in the same page. It is not feasible for each view to maintain its own push connection, as this will exceed the browsers connection limit, so it is necessary to share the push connection among the views. ICEfaces solves this problem with the client-side Ajax Bridge performing connection sharing between the browser views, and the Push Server managing a single blocking connection at the server for each browser client. No other Ajax Push technology offering provides a comprehensive and transparent mechanism for connection sharing.
Returning our attention now to enterprise-grade, clustered, high-availability deployments, we see the push connection management problem compound itself, as now we need to support load sharing and fail over of push connections. This is the domain of the Enterprise Push Server, which delivers those precise capabilities, as illustrated in the deployment architecture diagram below.
The architecture leverages standard Java Enterprise clustered deployment capabilities using front-end load sharing with session affinity, and session replication for application fail over support. Standard load sharing techniques are also used to distribute push connections among multiple EPS instances in the cluster, using affinity based on an EPSID instead of a SESSIONID. Enterprise Push Servers track and ensure the delivery of updates to clients and communicate that information amongst themselves, via JMS, so that any EPS node is capable of responding to any client. When a node in the cluster goes down, push connections migrate to other viable nodes, and the EPS instances there take over connection management responsibilities. The failure condition is communicated to the client's Ajax Bridge, which reloads the page to synchronize state between the client and server. Beyond the page reload, the user experience is uninterrupted.
These capabilities are yet another industry first for ICEfaces, and are available exclusively in the ICEfaces Enterprise Edition, including support for the following application servers.
| Vendor |
Product |
Version |
| Apache |
Tomcat
(w/ Apache ActiveMQ 5.1) |
6.0 |
| JBoss
Inc. |
JBoss
Application Server |
4.2.x |
| IBM |
Websphere
Application Server |
6.1 |
| Oracle | WebLogic Server | 10.3.1 |
So as collaborative applications become the mainstay of your Enterprise, you can rely on ICEfaces and the Enterprise Push Server to deliver highly-scalable and highly-available deployments of mission-critical applications.
Technorati Tags: Ajax Ajax Push ICEfaces ICEfaces Enterprise Edition ICEfaces EE Enterprise Push Server EPS cluster load sharing fail over Java
Posted by at 10:50 AM in Entries by Steve Maryka