Welcome!

AJAX & REA Authors: Marek Miesiac, Loraine Antrim, Liz McMillan, Yeshim Deniz, Chris Fleck

Related Topics: AJAX & REA, ColdFusion, Silverlight

AJAX & REA: Article

How to Choose an RIA Solution

A software architect and manager's guide

There are currently more than 200 RIA solutions available, and this number grows daily. Each RIA solution has its strengths and weaknesses, and the levels of security, accessibility, and integration vary. Choosing a suitable RIA solution for creating or enhancing Web applications becomes more difficult for both software architects and software project managers. Since it's easy to select the wrong RIA solution, the following is a guide covering both perspectives that will help you evaluate RIA solutions and choose the right one.

Top 10 Criteria for Both Architects and Managers
The following figure outlines the top 10 criteria that software architects and software project managers should consider when choosing which RIA solution best suits their requirements.

From the Software Architect's Perspective
Due to the variety of RIA solutions, architects should validate these solutions with the following criteria to determine which solution best suits their requirement.

  • Complete widget set: An RIA solution with a comprehensive widget set, such as editor, sorting ability, modal dialogue, and drag-and-drop features, will generally allow more options when dealing with complex application requirements.
  • Ease of development: For web application development, UI designers tend to find markup languages easier to use. An RIA solution that offers a markup language can enhance ease of development.
  • Enterprise integration: Ability to integrate with other development frameworks, server-side or client-side technologies, is very important when choosing an RIA solution. With more integration, an RIA solution can close unexpected integration gaps.
  • Security and scalability: Security and scalability concerns the solution's ability to protect Web applications from malicious attacks, and whether it could be applied for large-scale user productivity applications. A good solution protects applications from cross-site scripting, malicious JavaScript injection, and the danger of exposure of business logic to the client. For large-scale applications, the solution should be compatible with a clustering, load-balancing mechanism.
  • Cross-browser/client support: According to Forrester Research, 88% of enterprise users chose Internet Explorer, and Firefox gets the rest. Cross-browser/client compatibility of an RIA solution ensures that a Web application can run properly in different browsers or clients, e.g., mobile and Flash.

From the Manager's Perspective
In addition to the architect's point of view, a manager is also concerned with ensuring that the RIA solution is the most appropriate one from the perspective of future, cost, development tool, plug-in, and background.

  • Future proof: Is the solution fully compliant with standards and whether it is an open source project? Does it adopt any vendor lock-in technology? This could affect the portability of current applications to future infrastructure.
  • Low training cost: Introducing a new technology could increase the cost of an application development project because training for the development team may be necessary; moreover, the learning curve depends on the complexity of the solution's technology. Whether you are completely transforming an entire Web application, or enriching an existing application, introducing new technology can create some risks.
  • Development tool support: Development tool support shortens the development lifecycle by simplifying the development process, and more precise project management, especially a visual editor of a UI design.
  • Plug-in dependency: Does the RIA solution require users to install new software or a new plug-in on their computers? Users tend to be unwilling to learn new software or plug-ins; this could result in unexpected user response.
  • Solid background: Who or what is behind the RIA solution? That could determine the nature of the technical support a user's development team could expect. How active is the solution's development community? What is the frequency of bug fixes, new releases, response to feature requests, etc.? These can give a clue to the quality and longevity of the RIA solution.

Categories of RIA Solutions
RIA solutions can be grouped into four categories as shown below.

  • Snippet framework: The snippet framework allows a developer to enhance an existing Web application with a snippet of code in order to deliver limited improvement by introducing more animations. Neither architectural nor design changes are required. A major benefit is that a snippet framework can be integrated with any server-side technologies.
    •  Representative:
    Prototype, Scriptaculous, jQuery
  • Widget framework: The widget framework enables developers to deliver a better user experience with off-the-shelf widgets, for example, grid, tabbox, and context menu. No dramatic change is required for developers to add new widgets into existing Web applications. One of its drawbacks is that its users take time to download its fat library.
    •  Representative:
    Dojo, Ext-JS, YUI
  • Client framework: The client framework requires creating a new user interface and rebuilding existing applications; as a result, the user experience will be much improved for increased productivity and responsiveness. However, it introduces risks at the same time because developers have to rewrite the application.
    •  Representative:
    Flash, Java FX, GWT
  • Full framework: The full framework is the most complete solution, providing rich widgets and also supporting data access and back-end service integration. It delivers a responsive user experience as well as enterprise values. One of its major benefits is that it usually introduces a simplified programming model without the baggage of client-side technologies. However, each solution requires its own specific server-side platform.
    •  Representative:
    Backbase, ZK , Wicket, Richfaces, Flex, Silverlight, Struts

Which RIA Solution Is Best for You?
The answer depends on the specific requirements of each organization or user. No one RIA solution satisfies all of the wide variety of user requirements. A user could, however, evaluate each RIA solution by scoring that solution on how well, in the context of the user's requirements, it meets the criteria outlined here. The RIA solution with the highest total score would perhaps be the best fit for the user organization.

About Robbie Cheng

Robbie Cheng is an Evangelist of the ZK framework. He is the principal developer of ZK Mobile for Android and ZK Forum. He is the co-author of the book "ZK: Ajax without the Javascript Framework" and has published many articles on AJAXWorld Mgazine, TheServerSide, and Javalobby. He has also spoken at various events, Google Developer Day, Mobile Monday, and OSDC 2009.

Comments (2) 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
mpeachey 12/18/08 11:19:54 AM EST

D - TIBCO General Interface is most like a "Full Framework" as defined above, providing a complete widget set (editable data grids, forms, date pickers, data-aware select boxes, etc.) along with a visual development environment that includes visual mapping of data sources (SOAP, JSON, REST, etc.). But, there are 3 key differences. 1) Unlike the other Full Frameworks mentioned, there is no server side component. All of the functions typically done by the server - the data model (M), HTML generation (V) and the business logic (C) are done on each users workstation in the GI Framework. 2) Like the "Snippets" mentioned, GI can integrate with any other server side framework, or client side tool. and 3) GI provides two helper applications for enterprise developers. the GI Test Automation Kit (GITAK) built on Selenium allows for functional test automation of complex enterprise applications, and the GI Performance Profiler (GIPP) allows developers to ensure high-end app perfomance by continually benchmarking application performance in both code and GUI rendering. -peachey

dwoolfe 12/17/08 08:11:30 PM EST

Which category of RIA Solution would Tibco's General Interface fall into?