Build Rich Internet Applications that Run Outside the Browser

Adobe AIR on Ulitzer

Subscribe to Adobe AIR on Ulitzer: eMailAlertsEmail Alerts newslettersWeekly Newsletters
Get Adobe AIR on Ulitzer: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Adobe AIR Authors: Yeshim Deniz, Yakov Fain, David Weinberger, Maureen O'Gara, Tad Anderson

Related Topics: RIA Developer's Journal, Adobe AIR on Ulitzer, Java Developer Magazine

RIA & Ajax: Article

The Grand Convergence: Web + RIA + Widgets + Client/Server

Four main desktop client options are beginning to converge into a single form: the Fit Client

For the past ten years application developers have been stuck with only two desktop client choices. Traditionally, they can choose either a very thin Web-client technology implemented in HTML and CSS, or a very heavyweight thick client experience implemented using traditional client/server (C/S) technologies (e.g. Java Swing, MFC). It wasn’t until the introduction of RIA technologies (e.g. AJAX, Adobe Flex, Curl, and Silverlight) and widget engines (e.g. Yahoo! Widgets and Google Gadgets) that we were given more options.

Now these four desktop client options are beginning to converge into a single form, the Fit Client. (See Figure 1 below)



Fig 1: The Grand Convergence

Each of the options that preceded the Fit Client have their own benefits and are well suited for specific scenarios - the Fit Client represents the best of all these technologies.

#1: The Web for Reach

The Web client, which uses HTML and CSS, has been the most popular client desktop option in the history of computing.  Never has any desktop client solution been implemented by so many applications and used by so many people (billions of people).  The advantage of the Web client is “Reach.”

Reach, in this context, is a measure of how many people can access the client. The Web has won this race hands down and will probably be the reigning Reach champion for years to come, because Web clients use only HTML and CSS – two technologies that are well understood and implemented consistently across web browsers and operating systems. The Web has became the primary way in which people consume content and interact with applications on the desktop.
Web technologies also benefit from a centralized distribution model – every time you access a web application you get the latest version of that application. Web applications are always downloaded to your computer when needed and can be centrally managed at the web server.  Centralized management contributes greatly to Web Reach, because it allows updates and patches to be applied without having to deal with the idiosyncrasies of millions of different client machines.

#2: Client/Server for Richness

While the Web surpasses any other desktop client technology in terms of reach, it's the client/server platforms that own the desktop in terms of Richness.  Take a look at any application that requires extremely high fidelity for 2D and 3D graphics and you’ll find a thick client. For example, interactive on-line games – the ultimate litmus test for intensive client-side processing – such as World of Warcraft are implemented with client/server technologies. Although these games use the Internet, you have to have a thick client solution in order to meet the intensive processing needs.
Besides being able to handle intensive graphics, client/server technologies also rule in Richness because they can maintain massive amounts of data on the client. Unlike Web technologies, which are limited to about 4k (the size of a web cookie), client/server technologies are only limited by your hard drive capacity.  The ability to maintain massive amounts of data on the desktop give client/server technologies a real boost in terms of interactivity – most of the data is local requiring no network communications.
While Client/Server technologies excel in Richness they stumble pretty badly in terms of Reach.  Client/Server technologies require that you download fairly large applications before you can use them. For example, World of Warcraft requires six gigabytes of hard-drive space. While online interactive video games may represent an extreme, the fact is that most client/server applications are pretty large compared to other options.

#3: RIA Technologies - The Compromise

RIA technologies such as AJAX, Adobe Flex, Curl and others offer a compromise that attempts to balance the Reach of the Web with the Richness of client/server technology.  RIA applications, like web applications, are downloaded as needed and while not as portable as Web clients, they are supported on over 90% of desktops. 

So RIA technologies benefit from the same management and almost the same Reach as the Web, but they also introduce client-side processing. The ability to do more complex processing on the client isn’t nearly as powerful as client/server technologies, but it does allow for a much better interactive experience with GUI controls and local processing that cuts down on network requests.  RIA technologies are a compromise between Reach of the Web and Richness of client/server technologies. It’s this compromise that has made RIA technologies very popular.

#4: The Widget Engine - Precursor to the Fit Client

Widget Engines such as Yahoo! Widgets and Google Desktop are an interesting alternative to Web, client/server, and RIA technologies. The architecture of the Widget engine divides the client technology into two parts, the engine and the widgets. The widget engine is usually a pretty large download. For example, the Yahoo! Widget engine is about 40 megabytes and the Google Desktop widget engine is about 1 gigabyte.  However, once the widget engine is installed the widgets themselves are pretty lightweight – say .5 to 3 megabytes in size.
The widget engine is really a wonderful architecture that gives you the power of the desktop (via the widget engine) and the management of the Web (via widget downloads).  Widget engines can out-perform RIA solutions and they can store larger data sets.
The limitation of Widget engines is not in their architecture, it is that they have been designed for applications with fairly weak capabilities compared to client/server. Widgets tend to be single-purpose applications with limited access to the native operating system. That said, the widget architecture itself - the separation of the platform from the applications - is important. It makes it possible to create applications (widgets) that are portable across operating systems and are packaged for easy download and installation. They also provide – to varying degrees – a safe execution environment where widgets may be isolated from the rest of the operating system and managed by the widget engine.

The Grand Convergence: The Fit Client

The Fit Client, of which Adobe AIR is the best-known example, represents a convergence of the four earlier client models (i.e. Web, client/server, RIA, and Widgets). Fit Client technologies embody the best in all the previous desktop client platforms.  Like a Widget Engine the Fit Client separates much of the application’s infrastructure into a portable runtime environment and offers a clean packaging and installation model.  Fit Client applications can be lighter weight than client/server applications, yet more powerful and far richer than RIA clients.  In addition, Fit Client platforms offer more robust APIs and security models than do Widget Engines. Fit Client applications can be centrally managed, yet remain resident on the desktop. They can offer access to standard web content (e.g. HTML) without the need of a browser.
Fit Clients can leverage the processing power and disc space of the client machine, but they can also offer more restrictive and secure environments than client/server platforms.
As is the case with any technology, Fit Clients are not a panacea but they are advancement on previous technologies.  A great Fit Client platform such as Adobe AIR, Google Gears, or Curl offers enormous flexibility and power while also enabling centralized management and distribution. Fit Clients won’t be used for everything, but they will become the Internet platform of choice for many types of applications in the years to come.

This column appears exclusively at SYS-CON.com. Copyright © 2008 Richard Monson-Haefel.
(This copyright notice supersedes the one auto-generated at the foot of this page.)

More Stories By Richard Monson-Haefel

Richard Monson-Haefel, an award-winning author and technical analyst, owns Richard Monson-Haefel Consulting. Formerly he was VP of Developer Relations at Curl Inc. and before that a Senior Analyst at The Burton Group. He was the lead architect of OpenEJB, an open source EJB container used in Apache Geronimo, a member of the JCP Executive Committee, member of JCP EJB expert groups, and an industry analyst for Burton Group researching enterprise computing, open source, and Rich Internet Application (RIA) development.

Comments (1) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
peterT 03/11/08 06:58:25 AM EDT

So Fit clients are taking over from fat clients? Do developers confirm this out there?