Menu

ADF Faces and Server-Side-Push

Some of you already know that ADF Faces does Server-Side-Push, with its ADS (Active Data Service) facility. It is a very feature rich offering that has cool stuff, under the hood. Over the last release we also improved our documentation.

To mention only a few features, ADS supports HA/fail-over since 2008, but that is unfortunately not (yet) mentioned in the documentation.. Another cool thing is that it doesn’t waste the “open connection limitation” from some browsers, as it shares an “active channel” for the push content. Therefore only one window is “talking” with the server and it basically dispatches the streamed-up content to all registered (slave) windows.

The key concept of the ADS solution is that it is pretty much model driven right now and therefore doesn’t force the page author to do (much) sit-ups… Once you have a working implementation of our ActiveDataModel interface, you get active data for free, with our table component (<af:table value=”#{myBean.activeModelImplementation}” />), for instance. For the last release we also offered a convenience implementation, called the Active Data Proxy. That is a pretty nice option to also connect your existing model (and/or enterprise Java, like JPA) with the ADF Faces Push-Solution (meaning ADS). I will post some examples and use-cases, done with the “proxy” here soon…

By default ADS uses (HTTP) STREAMING as its transport mechanism. However the solution also supports LONG-POLLING and POLLING (periodic polling). For the last release we added the LONG-POLLING support. Before that we offered POLLING (still supported 😉 ) as an alternative transport option, as HTTP-STREAMING can have some issues with (legacy) infrastructure (e.g. HTTP 1.0 proxy-servers). A big benefit is that the used transport-option is transparent for the developer, as the ADS subsystem handles that for you. That means the <af:table> component, for instance, just receives the new data; regardless if ADS does STREAMING, LONG-POLLING or even (periodic) POLLING.

ADS (and ADF Faces, of course) has a ton of cool features. You just need to explore them 😉

4 comments on “ADF Faces and Server-Side-Push”

hey,
I’ve been working on this ADS and it surely is interesting. I’ve developed a program to update a table component as the changes are made in the database. However, I also require to update a text field using ADS. This is not possible using the proxy framework. Have you got any sort of an idea how I can do this?