Architecture Data Sheet (PDF)

Application Development Model

The primary goal behind the ICEfaces architecture is to provide the application developers with a familiar Java Enterprise development model, and completely shelter them from the complexities of low-level Ajax development in JavaScript. The key to the ICEfaces architecture is a server- centric application model, where all application logic is developed in pure Java, and executes in a standard Java Application Server runtime environment. This means that existing JEE infrastructure, development environments, and best practices remain relevant and useful.

The rich presentation features of ICEfaces are based on the JavaServer Faces standard. ICEfaces application development is essentially JSF development, which promotes a component-based architecture using familiar tag-based declaritive UI definition, and dynamic data binding into the server-resident application data model. Utilizing theICEfaces Component Suite , which provides all the standard JSF components, as well as a complete set of extended components, developers can build a standard JSF application that benefits automatically from rich Ajax-based features of ICEfaces. Because ICEfaces supportsAjax Push style applications, it extends the JSF framework to provide a trigger-based, server-initiated rendering API that make it simple to enhance applications with instantaneous presentation updates based on server-resident application state changes. ICEfaces also enables Ajax Push style applications, making it simple to enhance applications with instantaneous presentation updates driven by server-side state changes, or collaborative user interactions. Using ICEfaces and pure Java/JSF programming techniques, application developers can develop next-generation rich web applications without ever writing a single line of JavaScript.

ICEfaces Architecture

While the underlying Ajax-based rich presentation mechanism in the ICEfaces implementation is completely transparent to the application developer, it is useful to understand what is happening behind the scenes in a ICEfaces applications. There are three core elements to the ICEfaces architecture illustrated in the diagram below.

ICEfaces Framework

The ICEfaces Framework is an extention to the standard JSF framework, with the key difference in ICEfaces related to the rendering phase. In standard JSF, the render phase produces new markup for the current application state, and delivers that to the browser, where a full page refresh occurs. With the ICEfaces framework, rendering occurs into a server-side DOM and only incremental changes to the DOM are delivered to the browser, and reassembled with a lightweight Ajax Bridge. This results in seamless, smooth update of the browser page with only the necessary presentation elements being rerendered. The ICEfaces Framework also provides complete run-time management ofAjax Push and integrates the mechanism seamlessly with the JSF lifecycle.

Ajax Bridge

The Ajax Bridge has server-resident and client-resident elements that coordinate Ajax- based communication between the client browser and the server-resident application. The Bridge is responsible for delivering incremental presentation changes to the browser client, and reassembling those changes in the browser DOM to affect presentation changes. The Bridge is also responsible for detecting user interaction with the presentation, and delivering user events back to the application for processing through the standard JSF lifecycle. A mechanism call partial submit is built into the ICEfaces components and facilitates automatic event generation across the bridge, so the application developer is not exposed to the low-level event mechanism. The Ajax Bridge is established automatically on first page load of the application and coordinates presentation updates and user event transmission for the entire lifetime of the application.

ICEfaces Component Suite

TheICEfaces Component Suite provides all of the building blocks for the application UI. It includes both the standard JSF components, and a wide array of advanced components that enable the developer to assemble sophisticated application interfaces efficiently. All ICEfaces component renders leverage the server-based, direct-to-DOM rendering mechanism provided in the framework, and use their partial submit attribute to facilitate automated event generation over the Ajax Bridge based on user interaction with the component's presentation. Optionally, ICEfaces components can be enabled with a variety of script.acul.us effects such as drag and drop. Again, ICEfaces components carry attributes that enable various effects, so the developer is never exposed to low-level JavaScript programming to get dynamic features from a component. Have a look at theComponent Showcase to see all the ICEfaces components in action. Find out more about theICEfaces Component Suite .

© COPYRIGHT 2010 ICESOFT TECHNOLOGIES INC. POWERED BY  ICEfaces
Overview |Architecture |Component Suite |Ajax Push |Demos |Documentation |Tutorials |Case Studies |WebinarsPrivacy Policy |Support |Training |Services |Contact Us
Powered by ICEfaces