Introduction to… www.icefaces.org ICESOFT TECHNOLOGIES INC.
Introduction to ICEfaces • What is ICEfaces? – An Internet technology that will allow you to easily build rich highly interactive web applications – An AJAX Framework – A server-side AJAX Framework – A JSF extension – A JSF extension • Why should I use ICEfaces? – Your boss wants you to build a more ‘ajaxy’ web application – You want to stick to your server-side Java Enterprise skills – You want to maintain productivity – You want to build a collaborative web application with AJAX Push www.icefaces.org ICESOFT TECHNOLOGIES INC.
Why not Javascript? – Cross-browser compatibility issues – Hard to find highly skilled JS developers – Challenging to maintain a large Javascript codebase www.icefaces.org ICESOFT TECHNOLOGIES INC.
Major Benefits of ICEfaces • An Enterprise AJAX Solution – AJAX for server-side developers! • A Standards-based AJAX Solution – Server-side standards: JSF – Client-side standards: Javascript & CSS • Application or Page-level AJAX • Application or Page-level AJAX – AJAX functionality is built into the framework , not the components • Secure AJAX • Large Component Library www.icefaces.org ICESOFT TECHNOLOGIES INC.
Major Benefits of ICEfaces, cont. • Compatiblity – Java App Servers – Web Browsers www.icefaces.org ICESOFT TECHNOLOGIES INC.
Major Benefits of ICEfaces, cont. • Strong integration with other Java frameworks – Spring • Spring Core SEAM • Spring Security • Spring WebFlow – JBoss Seam Porta l – Portlets • Liferay • WebLogic • JBoss Portal – Myfaces Tomahawk www.icefaces.org ICESOFT TECHNOLOGIES INC.
Major Benefits of ICEfaces, cont. • Strong “tooling” integration with popular Java IDEs: • Eclipse • MyEclipse • NetBeans www.icefaces.org ICESOFT TECHNOLOGIES INC.
Major Benefits of ICEfaces, cont. • Automatic AJAX – Automatic AJAX submits – Automatic AJAX updates – Automatic inter-component communication and collaboration • Transparent AJAX www.icefaces.org ICESOFT TECHNOLOGIES INC.
Major Benefits of ICEfaces, cont. • Direct-to-DOM (D2D) Rendering DOM (Client) Ajax Bridge DOM DOM Incremental DOM Updates Incremental DOM Updates (Server) Direct-to-DOM isolates Java developers from JavaScript and more… www.icefaces.org ICESOFT TECHNOLOGIES INC.
Major Benefits of ICEfaces, cont. • AJAX Push – Asynchronous application driven browser updates – Server-initiated rendering updates to the client • No more constraint of the “don’t speak until spoken to” mode of traditional web development – Integral to ICEfaces, not an afterthought • Components are Ajax Push Ready – True server-side, “data-push” – Collaborative Web Applications • Enables next generation web 2.0 collaboration – (Forums, Chat, Auctions …) – Real-time updates www.icefaces.org ICESOFT TECHNOLOGIES INC.
ICEfaces Demos • Component Showcase • Auction Monitor www.icefaces.org ICESOFT TECHNOLOGIES INC.
JSF and ICEfaces • JSF is component-centric, meaning views are assembled from UI components • JSF is an official Java EE Standard: – JSR 127 (JSF 1.1) – JSR 252 (JSF 1.2) – JSR 314 (JSF 2.0) • ICEfaces is based on JSF -- this means ICEfaces • ICEfaces is based on JSF -- this means ICEfaces applications are JSF applications www.icefaces.org ICESOFT TECHNOLOGIES INC.
JSF and ICEfaces (Cont.) • The JSF specification defines a number of extension points: – ICEfaces implements its rich UI and AJAX functionality as a set of JSF extensions – ICEfaces is primarily a JSF render kit extension – ICEfaces is also a component library • JSF has a pluggable render-kit architecture which • JSF has a pluggable render-kit architecture which allows for new innovations in the presentation layer (ICEfaces) www.icefaces.org ICESOFT TECHNOLOGIES INC.
ICEfaces Architecture (Overview) • Understanding ICEfaces Architecture • Direct-to-DOM (D2D) Rendering • Partial Submit • ICEfaces Request Scope • Incremental Page Updates • The AJAX Bridge • The AJAX Bridge • AJAX Push www.icefaces.org ICESOFT TECHNOLOGIES INC.
ICEfaces - Understanding ICEfaces Architecture • Standard J2EE architecture diagram www.icefaces.org ICESOFT TECHNOLOGIES INC.
ICEfaces - Understanding ICEfaces Architecture • The ICEfaces framework www.icefaces.org ICESOFT TECHNOLOGIES INC.
ICEfaces - Understanding ICEfaces • Understanding ICEfaces Architecture • With ICEfaces an application is entirely server-based. – How the page is constructed on the server: – When the page is first requested, all of the presentation is sent to the client, including a JavaScript bridge.The JavaScript bridge is the communication mechanism between the server and the client – When the user interacts with the client, events are sent back – When the user interacts with the client, events are sent back to the server that may alter application state and change the page on the server – When the page changes on the server, we deliver only those incremental changes back to the client www.icefaces.org ICESOFT TECHNOLOGIES INC.
ICEfaces - Understanding ICEfaces • In a nutshell, this is what we call the Direct-to-DOM (D2D) approach. All client-server communication consists of presentation state updates, and events. This is a very-thin client approach. – No application logic on the client. No business logic on the client – Very small JavaScript footprint on the client • No need to care about the client-server communication channel • Write your applications as if they were traditional desktop applications • Your developers don't need to worry about the plumbing, they can focus on the application logic, what they know best www.icefaces.org ICESOFT TECHNOLOGIES INC.
ICEfaces - Direct-to-DOM (D2D) Rendering • Ability to render a JSF component tree directly into a W3C standard DOM data structure • ICEfaces provides a Direct-to-DOM RenderKit for the standard HTML basic components available in JSF • The basic Sun JSF components render themselves by generating plain HTML text • ICEfaces JSF components do not render through HTML text, but • ICEfaces JSF components do not render through HTML text, but through DOM updates www.icefaces.org ICESOFT TECHNOLOGIES INC.
ICEfaces - Direct-to-DOM (D2D) Rendering • In ICEfaces, the JSF component tree renders directly to the server-side DOM. • The JSF component tree is just a collection of JSF components. Thus, ICEfaces components render directly to DOM: Element divElement = dom.createElement("div"); divElement.appendChild(dom.createTextNode("My Component")); • What you need to know about D2D rendering: • What you need to know about D2D rendering: – D2D rendering happens mostly under the cover – Its purpose is to enable the AJAX bridge to do DOM diff’ing between the server and the client – If you create your own ICEfaces components or renderers – If you use non-ICEfaces 3rd party components on an ICEfaces page www.icefaces.org ICESOFT TECHNOLOGIES INC.
ICEfaces - Partial Submit • Introduces a fine-grained user interaction model for intelligent form processing • Submit is partial in the sense that only partial validation of the form will occur. • The standard JSF validator mechanism can be leveraged, or any other arbitrarily complex or simple evaluation logic can be applied. www.icefaces.org ICESOFT TECHNOLOGIES INC.
ICEfaces - ICEfaces Request Scope • ICEfaces request scope is longer lived than the request scope for non dynamic applications • A request begins with the initial page request and remains active through user interactions with that page • One consideration is that new browser windows and page reloads of the same browser window are both regarded as new requests. • To cause request scope to last only for the duration of a single user event, "standard request scope" • must be enabled. This is set through the ICEfaces context parameter: <context-param> <param-name> com.icesoft.faces.standardRequestScope </param-name> <param-value>true</param-value> </context-param> www.icefaces.org ICESOFT TECHNOLOGIES INC.
ICEfaces - The AJAX Bridge • Lightweight AJAX bridge to deliver presentation changes to the client browser and to communicate user interaction events back to the server-resident JSF application. • Application-level Ajax • ICEfaces restricts Ajax to – Incremental presentation updates – User event capture and transmission • Enables thin client scalability • Handle browser idiosyncrasies • Handle browser idiosyncrasies • Eliminate the need for JavaScript development www.icefaces.org ICESOFT TECHNOLOGIES INC.
ICEfaces Configuration • Runtime Dependencies • JSF Implementations • Http Connection Timeout • Concurrent DOM Views • Synchronous Update www.icefaces.org ICESOFT TECHNOLOGIES INC.
Runtime Dependencies • For each dependency, the versions-licenses.html file records • JAR filename • Project website • Open source license • Link to open source license terms www.icefaces.org ICESOFT TECHNOLOGIES INC.
Recommend
More recommend