TOC PREV NEXT INDEX

Server-initiated Rendering (Ajax Push)


Asynchronous update mode in ICEfaces supports server-initiated presentation updates driven from application logic called Ajax Push. In ICEfaces, this is achieved by causing the JSF lifecycle render phase to execute in reaction to some state change within the application. The PersistentFacesState provides this API, and facilitates low-level server-initiated rendering on a per-client basis. While this low-level rendering mechanism looks simple to use, there are a number of potential pitfalls associated with it related to concurrency/deadlock, performance, and scalability. In order to overcome these potential pitfalls, ICEfaces provides a high-performance, scalable Server-initiated Rendering API, and strongly discourages the use of the low-level render call.

The server-initiated rendering architecture is illustrated in Figure 8.

Figure 8 Server-initiated Rendering Architecture



The key elements of the architecture are:
Renderable
A request-scoped bean that implements the Renderable interface and associates the bean with a specific PersistentFacesState. Typically, there will be a single Renderable per client.
RenderManager
An application-scoped bean that manages all rendering requests through the RenderHub and a set of named GroupAsyncRenderers.
GroupAsyncRenderer
Supports rendering of a group of Renderables. GroupAsyncRenderers can support on-demand, interval, and delayed rendering of a group.

For detailed information, see Server-initiated Rendering (Ajax Push) APIs.



Copyright 2005-2009. ICEsoft Technologies, Inc.
TOC PREV NEXT INDEX