ICEfaces
Encyclopedia
ICEfaces is an open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 Ajax framework
Ajax framework
In web application development, an Ajax framework is a framework which leverages Ajax, a collection of technologies for building dynamic web pages on the client side...

 that enables Java EE application developers to create and deploy server-based rich Internet application
Rich Internet application
A Rich Internet Application is a Web application that has many of the characteristics of desktop application software, typically delivered either by way of a site-specific browser, via a browser plug-in, independent sandboxes, extensive use of JavaScript, or virtual machines...

 (RIA) using the Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

 language.

ICEfaces leverages the entire standards-based Java EE ecosystem of tools and execution environments. Rich enterprise application features are developed in pure Java, and in a pure thin-client model. There are no Applets or proprietary browser plug-ins required. ICEfaces applications are JavaServer Faces
JavaServer Faces
JavaServer Faces is a Java-based Web application framework intended to simplify development integration of web-based user interfaces....

 (JSF
JavaServer Faces
JavaServer Faces is a Java-based Web application framework intended to simplify development integration of web-based user interfaces....

) applications, so Java EE application development skills apply directly and Java developers are isolated from doing any JavaScript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....

 related development.

Community

The ICEfaces community counts over 100,000 developers worldwide as of April 2010. It uses the ICEfaces.org website for information and coordination, administered by ICEsoft Technologies Inc. The site provides a range of development and support resources available to all ICEfaces developers, among them source code and pre-bundled IDE tool integrations for download, as well as tutorials, on-line support and user forums.
  • http://www.icefaces.org

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
Ajax (programming)
Ajax is a group of interrelated web development methods used on the client-side to create asynchronous web applications...

 development in JavaScript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....

. 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
Application server
An application server is a software framework that provides an environment in which applications can run, no matter what the applications are or what they do...

 runtime environment. This means that existing Java EE infrastructure, development environments, and best practices remain relevant and useful. The way Java EE applications are developed today will not change in any significant way, and developers will not need to completely rearchitect their existing applications to incorporate rich Ajax-based features.

The rich presentation features of ICEfaces are based on the JavaServer Faces standard. ICEfaces applications development is essentially JSF
JSF
JSF is a three-letter abbreviation with multiple meanings, as described below:* JavaServer Faces, a specification for developing Java-based Web applications.* Joint Strike Fighter Program...

 development, which promotes a component-based architecture using familiar tag-based declarative UI definition and dynamic data binding into the server-resident application data model. Utilizing the ICEfaces Ajax-enabled 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 adheres to the standard server-centric JSF application lifecycle, but benefits automatically from rich Ajax-based features of ICEfaces. Because ICEfaces supports Ajax 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. Using ICEfaces and pure Java/JSF
JSF
JSF is a three-letter abbreviation with multiple meanings, as described below:* JavaServer Faces, a specification for developing Java-based Web applications.* Joint Strike Fighter Program...

 programming techniques application developers will be able to develop next-generation rich web applications without ever having to write a single line of JavaScript.

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 an ICEfaces applications. There are three core elements to the ICEfaces architecture:
  1. ICEfaces Framework
    The Framework is an extension to the standard JSF
    JSF
    JSF is a three-letter abbreviation with multiple meanings, as described below:* JavaServer Faces, a specification for developing Java-based Web applications.* Joint Strike Fighter Program...

     framework, with the key difference in ICEfaces relating to the rendering phase. In standard JSF
    JSF
    JSF is a three-letter abbreviation with multiple meanings, as described below:* JavaServer Faces, a specification for developing Java-based Web applications.* Joint Strike Fighter Program...

    , 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
    DOM
    DOM may refer to:*D.O.M. , a restaurant in São Paulo, Brazil*Days on market, how many days since a piece of real estate was listed for sale*Deo optimo maximo, Latin for "to the Greatest and Best God", originally Jove, later the Christian God...

     and only incremental changes to the DOM
    DOM
    DOM may refer to:*D.O.M. , a restaurant in São Paulo, Brazil*Days on market, how many days since a piece of real estate was listed for sale*Deo optimo maximo, Latin for "to the Greatest and Best God", originally Jove, later the Christian God...

     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 of Ajax Push using the server-initiated rendering APIs, and integrates that mechanism seamlessly with the JSF
    JSF
    JSF is a three-letter abbreviation with multiple meanings, as described below:* JavaServer Faces, a specification for developing Java-based Web applications.* Joint Strike Fighter Program...

     lifecycle.
  2. 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 from the render phase to the browser client, and reassembling those changes in the browser DOM
    DOM
    DOM may refer to:*D.O.M. , a restaurant in São Paulo, Brazil*Days on market, how many days since a piece of real estate was listed for sale*Deo optimo maximo, Latin for "to the Greatest and Best God", originally Jove, later the Christian God...

     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
    JSF
    JSF is a three-letter abbreviation with multiple meanings, as described below:* JavaServer Faces, a specification for developing Java-based Web applications.* Joint Strike Fighter Program...

     lifecycle. A mechanism called 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.
  3. ICEfaces Component Suite
    The Component Suite provides all of the building blocks for the application UI. It includes both the standard JSF
    JSF
    JSF is a three-letter abbreviation with multiple meanings, as described below:* JavaServer Faces, a specification for developing Java-based Web applications.* Joint Strike Fighter Program...

     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.aculo.us
    Script.aculo.us
    script.aculo.us is a JavaScript library built on the Prototype JavaScript Framework, providing dynamic visual effects and user interface elements via the Document Object Model ....

     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
    JavaScript
    JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....

     programming to get dynamic features from a component.

Code Example

The following template:









processed by ICEfaces will produce the following (invalid) XHTML:








Release history

  • ICEfaces Technology Preview - June 2005
  • ICEfaces 0.1.0 Early Access Release - August 2005
  • ICEfaces 0.2.0 Alpha - October 2005
  • ICEfaces 0.3.0 Alpha - January 2006
  • ICEfaces 1.0 Beta - April 2006
  • ICEfaces 1.0 Community Edition - May 2006
  • ICEfaces 1.5 Open Source - November 2006
  • ICEfaces 1.6 July 2007
  • ICEfaces 1.7 April 2008
  • ICEfaces 1.8 February 2009
  • ICEfaces 2.0.0 December 2010
  • Latest Release: http://www.icefaces.org/main/downloads/

Comparable frameworks

  • RichFaces
    Richfaces
    RichFaces is an open source Ajax-enabled component library for JavaServer Faces, hosted by JBoss. It allows easy integration of Ajax capabilities into enterprise application development.RichFaces is more than just a component library for JavaServer Faces...

  • Apache MyFaces
    Apache MyFaces
    Apache MyFaces is an Apache Software Foundation project that creates and maintains an open-source JavaServer Faces implementation, along with several libraries of JSF components that can be deployed on the core implementation...

  • ADF Faces
  • ZK
    ZK (framework)
    ZK is an open-source Ajax Web application framework, written in Java, that enables creation of rich graphical user interfaces for Web applications with no JavaScript and little programming knowledge....

  • Echo
    Echo (framework)
    Echo is a web application framework that was created by the company NextApp. It originally started as a request-response web application framework that leveraged the Swing object model to improve the speed of application development...

  • Vaadin
    Vaadin
    Vaadin is an open source Web application framework for rich Internet applications. In contrast to JavaScript libraries and browser-plugin based solutions, it features a server-side architecture, which means that the majority of the logic runs on the servers. Ajax technology is used at the...


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK