YOUR FEEDBACK
Jeremy Geelan wrote: In response to inquiries and suggestions from readers this lexicon has recently...


2008 East
DIAMOND SPONSOR:
Data Direct
Frontiers in Data Access: The Coming Wave in Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
Intel
Virtualization – Path to Predictive Enterprise
Green Hills
IT Security in a Hostile World
JBoss / freedom oss
Practical SOA Approach
GOLD SPONSORS:
Software AG
The Art & Science of SOA: How Governance Enables Adoption
PlateSpin
Effective Planning for Virtual Infrastructure Growth
Fujitsu
Automated Business Process Discovery & Virtualization Service
Ceedo
Workspace Virtualization
Click For 2007 West
Event Webcasts

2008 East
PLATINUM SPONSORS:
Appcelerator
Think Fast: Accelerate AJAX Development with Appcelerator
GOLD SPONSORS:
DreamFace Interactive
The Ultimate Framework for Creating Personalized Web 2.0 Mashups
ICEsoft
AJAX and Social Computing for the Enterprise
Kaazing
Enterprise Comet: Real–Time, Real–Time, or Real–Time Web 2.0?
Nexaweb
Now Playing: Desktop Apps in the Browser!
Sun
jMaki as an AJAX Mashup Framework
POWER PANELS:
The Business Value
of RIAs
What Lies Beyond AJAX?
KEYNOTES:
Douglas Crockford
Can We Fix the Web?
Anthony Franco
2008: The Year of the RIA
Click For 2007 Event Webcasts
SYS-CON.TV
TOP THREE LINKS YOU MUST CLICK ON


Real-World AJAX Book Preview: AJAX Application Architecture
Real-World AJAX Book Preview: AJAX Application Architecture

This content is reprinted from Real-World AJAX: Secrets of the Masters published by SYS-CON Books. To order the entire book now along with companion DVDs for the special pre-order price, click here for more information. Aimed at everyone from enterprise developers to self-taught scripters, Real-World AJAX: Secrets of the Masters is the perfect book for anyone who wants to start developing AJAX applications.

AJAX Application Architecture
Given the challenges associated with AJAX, it is particularly important to architect an AJAX application properly. Otherwise the result can be either lackluster performance or a code maintenance nightmare, or both.

Two items significantly impact AJAX application architecture: the choice of an AJAX engine and client-side application logic implementation.

The AJAX Engine
From the point-of-view of software architecture, the big difference between an AJAX application and a classic HTML Web application is the introduction of a client-side engine. This engine, which runs inside the Web browser, acts as an intermediary between the application's UI and the server. User activity leads to calls to the client-side engine instead of a page request to the server. And data transfer takes place between the server and the client-side engine rather than involving the Web browser directly.

The AJAX engine is key to the AJAX application model. Without it, every event generated by user activity has to go back to the server for processing. Figure 1.7 illustrates this, while Figure 1.8 illustrates the more efficient AJAX model.

There are many different ways to implement the client-side AJAX engine. One approach is to write it from scratch based on the application's needs. Another approach is to use an AJAX toolkit. There are many AJAX toolkits today, a lot of them open source. Some are communication libraries, some are rich user interface components and some provide both. Choosing the right toolkit significantly lowers the application development and maintenance challenge.

Application Logic Partition
Regardless of the client-side AJAX engine implemented, how one partitions the application logic directly impacts application performance and maintainability. "Application logic partition" refers to the amount of application logic that runs on the client side versus the amount of logic that runs on the server side. Putting more logic on the client side delivers better application performance. However, client-side logic can easily result in a lot of hard-to-maintain JavaScript code. For example, Google Maps is a relatively simple application with limited functionality, but it still has more than a 100KB of JavaScript logic on the client side (after obfuscation and compression). But putting more logic on the client side can potentially create application maintenance problems that are expensive and hard-to-scale.

What kind of logic should be put on the client side? How much logic and how should the logic be implemented? These are key questions that developers have to weigh carefully in order to build manageable and maintainable applications.

The AJAX development model offers a lot of flexibility in application logic partition as shown in Figure 1.9. On the left side of the figure, most of the application logic as well as data are on the client side. This is a client-centric model that closely resembles your typical desktop application model. On the right side of the figure, all the application logic resides on the server side. This is a server-centric model that is very similar to the classic HTML Web application model except for the "RIA" (Rich Internet Application) AJAX engine on the client side. Obviously, developers can partition their applications anywhere between these two extremes.

What is worth pointing out here is that the server-centric model is fully capable of delivering a rich user experience such as a rich UI and asynchronous partial updates because of the RIA AJAX engine. In this model, the number of round-trips is not necessarily reduced compared to the classic HTML application model, but the amount of data to be transferred is much smaller. The asynchronous nature of the AJAX engine enables a "continuous" user experience. The popular JavaServer Faces (JSF) model is a server-centric model that encourages all the processing to happen on the server side. The benefits of this model include a more enhanced user experience than the classic HTML application, compliments of the client-side AJAX engine as well as good application maintainability. Because all logic stays on the server side, it's much easier to develop and maintain application code on the server side than deal with JavaScript code on the client side.

By comparison, a server-centric model will not deliver the same performance and availability as a client-centric model. In client-centric models, a significant amount of application logic runs on the client side. As a result, most user interactions can be processed locally without incurring a roundtrip to the server. Further, the application can be more "resistant" to sporadic network connectivity drop-off. Application availability is improved because of this reduced network dependency. The drawback to such a client-centric model is the challenge associated with developing, sharing, and maintaining the client-side JavaScript code.

Some AJAX toolkits provide frameworks that facilitate the appropriate partitioning of application logic between the client side and the server side. For example, JSF is a framework that encourages putting all the logic on the server side.

This content is reprinted from Real-World AJAX: Secrets of the Masters published by SYS-CON Books. To order the entire book now along with companion DVDs, click here to order.

About Coach Wei
Coach Wei is the Founder and Chairman of Nexaweb (www.nexaweb.com), developers of the leading software platform for building and deploying Web 2.0 and AJAX applications. Previously, he played a key role at EMC Corporation in the development of a new generation of storage network management software. Wei has his master's degree from MIT, holds several patents, is the author of several technology publications including JDJ, Web 2.0 Journal, and AJAXWorld Magazine, and is an industry advocate for the proliferation of open standards.

About Rob Gonda
Rob Gonda is the CTO for iChameleon Group and Contributing Editor to AJAXWorld Magazine. He is an Advanced Certified Coldfusion Developer, member of the Adobe Community Experts, frequent contributor to the CFDJ and ADJ, frequent speaker at IT and developer conferences nationwide, co-author of Real-World Ajax Book, author of ajaxCFC, holds a BS in computer science and engineering, an MBA with a specialization in entrepreneurship, and he specializes in Rich Internet Applications and object-oriented architecture. You can reach him at rob[at]robgonda[dot]com and read his blog is at http://www.robgonda.com

YOUR FEEDBACK
soa news desk wrote: The Developer Tools Group of Borland Software Corporation announced details around a three-year product roadmap for JBuilder, its award-winning Java Integrated Development Environment (IDE). Future capabilities for the product line include new team collaboration and developer productivity features, support for new Java standards and emerging open source tools and frameworks, enhanced support for Service Oriented Architecture (SOA), and more.
LATEST JAVA STORIES & POSTS
What's the key to team and individual developer productivity in maintaining and extending a large application? Let’s start by making the following assertions: A developer's knowledge of an application code base is likely the single biggest factor of individual productivity. Cor...
An applet, a Java program that runs in a browser, often has to access the client resources. However, the security manager prevents an applet from accessing client resources. To access client resources, the applet has to have the proper permission. With this permission the applet ...
Three-letter acronyms (TLAs) are hardly new in Information Technology: EAI, ESB, SOA, BPM, BAM, ETL, MDM; the list goes on and on. This article is about yet another three-letter acronym, EDA, which stands for Event-Driven Architecture. EDA is not a brand new technology, but rathe...
Furthering its dedication to providing Java developers productivity with choice, Oracle announced the Oracle Enterprise Pack for Eclipse, a new component of Oracle Fusion Middleware. This release marks the first free Eclipse 3.4 environment to support Oracle WebLogic Server 10g R...
Two of the biggest launches in Rich Internet Application history took place in 2007/2008 when Adobe launched AIR 1.0 in February '08 and Microsoft launched Silverlight (September '07). At the 6th International AJAXWorld RIA Conference & Expo in October SYS-CON Events is delighted...
Red Hat CTO Brian Stevens, Citrix CTO Simon Crosby, Egenera CTO Pete Manca, Allen Stewart, Group Manager, Windows Virtualization at Microsoft, and Brian Duckering, Sr. Director of Products and Alliances at Symantec were the top industry executives who joined Jeremy Geelan in the ...
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021


SYS-CON FEATURED WHITEPAPERS

SPONSORED BY INFRAGISTICS
There are many forces that influence technological evolution. After a decade of building enterprise ...
2008 is going to be an important year for Rich Internet Applications. Most organizations are deliver...
The OpenAjax Alliance is developing an Ajax industry wishlist for future browsers, using a dedicated...
In every field of design one of the first things students do is learn from the work of others. They ...
Infragistics announced the availability of two Community Technology Preview (CTP) User Interface (UI...
The YUI development team has released version 2.5.2; you can download the new release from SourceFor...
ADS BY GOOGLE
BREAKING JAVA NEWS

SpringSource, a leading provider of infrastructure software and the company behind ...