The Rich Internet Experience
The Grand Convergence: Web + RIA + Widgets + Client/Server
Four main desktop client options are beginning to converge into a single form: the Fit Client
Mar. 13, 2008 06:30 AM
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.
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.)
Reader Feedback: Page 1 of 1
SOA World Latest Stories
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
SYS-CON Featured Whitepapers
Most Read This Week