Welcome!

Coach Wei

Subscribe to Coach Wei: eMailAlertsEmail Alerts
Get Coach Wei via: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Related Topics: RIA Developer's Journal, Apache Web Server Journal, SOA & WOA Magazine, Java Developer Magazine, AJAX World RIA Conference

RIA & Ajax: Article

AJAX, Java, Flash, and .NET

Rich Internet applications market place

Nexaweb enables application logic to be written using standard Java:

/**
*
*/
package com.nexaweb.test;
import com.nexaweb.client.ClientEvent;
import com.nexaweb.client.ClientSession;
import com.nexaweb.client.mco.AbstractMco;
import com.nexaweb.client.mco.McoContainer;

/**
* @author cwei
*
*/
public class MyTestMco extends AbstractMco {

    public void handleOnCommand() {
      ClientSession clientSession = McoContainer
        .getClientSessionFromMco(this);
      ClientEvent clientEvent = clientSession.getEventHandler()
        .getClientEvent();

      //additional business logic here...

      System.out.println("Hello, you clicked the button!");
    }

}

Choosing the Right RIA Solution
Given the various RIA approaches and solutions available, selecting an RIA solution can be confusing. There's no universal "right" RIA solution. It depends on the application's requirements.

Enterprise Application Requirements
For the purposes of this discussion, it's useful to categorize the full spectrum of software applications that enterprise IT departments build, deploy, and maintain across two related dimensions: business criticality and application complexity.

  • Business criticality concerns the degree to which an application is critical to running the business or meeting business objectives. Disrupting access to a business-critical application, or even unacceptable performance, has an immediate and significantly negative impact on the business. Other applications are less critical to operations; if there's a problem, the user can wait a few minutes to perform a task without major consequences.

  • Application complexity refers to its feature richness and sophistication from a user's perspective. Some enterprise applications have thousands of screens, with usage metaphors characterized by multi-path, non-linear state transitions. (In other words, you might rarely use them exactly the same way twice.) Other applications have rather linear state transitions and fixed usage paths - using them is comparatively routine.

    Classified as either "high" or "low" across both these dimensions, an application falls into one of four categories as Figure 5 illustrates.

    The applications in quadrant A are business-critical and less complex. Users rely on these "helper" applications to do simple but highly important business operations (e.g., an employee portal, partner extranet, or e-commerce Web site). These applications are used less frequently and/or for shorter durations ("casual usage level") than more complex applications. The workflow is typically linear; users do the same tasks in roughly the same order each time they interact with the application. From a development perspective, the client-side development team typically comprises fewer developers than a more complex application would require.

    A classic example of a high-criticality/low-complexity application is an airline's online ticketing application. Most users interact with it only occasionally, for a short duration, and in a step-by-step fashion.

    Applications in quadrant B are both business-critical and complex. These applications are used for many hours each day to do complex non-linear tasks that are central to business operations. The performance, availability, and scalability of these applications are extremely important. From a development perspective, maintenance is important and may cost more than the initial development. The development team comprises many developers who require close collaboration.

    Examples of high-criticality/high-complexity applications include the trading applications used by portfolio managers, call center applications and banking applications accessed by tellers.

    The applications in quadrant C are complex but less business-critical. As a result, they are managed much more cost-consciously. High-complexity/low-criticality applications include some legacy applications in which companies wish to minimize further investments, as well as some corporate R&D projects.

    The applications in quadrant D are less complex and less business-critical. They are typically written by a small development team of one or two people. Developers' individual experimentation would fall into this category.

    Different RIA Technology for Different Applications
    Seen against the backdrop of business criticality and UI complexity, different RIA technologies are appropriate for implementing or re-architecting the various classes of enterprise applications.

    As Figure 6 illustrates, the applications in quadrants B and C are much better suited to OOP-based RIA development approaches like Java and .NET, because these technologies offer better maintainability and support for team development. Scripting-based approaches are more suited for applications that fall into quadrants A and D where programming tasks are simpler, development teams are smaller, and maintainability is a less mission-critical concern.

    Table 3 provides details on how different RIA approaches fit with different enterprise requirements for application profiles and developer skill sets.


  • More Stories By Coach Wei

    Coach Wei is founder and CEO of Yottaa, a web performance optimization company. He is also founder and Chairman of Nexaweb, an enterprise application modernization software company. Coding, running, magic, robot, big data, speed...are among his favorite list of things (not necessarily in that order. His coding capability is really at PowerPoint level right now). Caffeine, doing something entrepreneurial and getting out of sleeping are three reasons that he gets up in the morning and gets really excited.

    Comments (7) 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
    Joe 09/20/06 04:43:35 AM EDT

    I would like to point to a new framework I found for doing RIA the object oriented way but still resulting in standard DHTML/AJAX. Check this live sample here http://samples.visualwebgui.com/mainform.wgx and find more info here http://www.visualwebgui.com.

    n d 09/19/06 04:00:34 PM EDT

    Enterprise Rich Internet Applications (RIAs) are the next evolution of business application development. There are four different approaches to RIA development - AJAX, Java, Flash, and .NET - and many different RIA solutions available today. This article answers the following questions: What are enterprise RIAs? Which approach should you use? Which solutions are appropriate for you? And how are RIAs being adopted today?

    j j 09/19/06 03:34:31 PM EDT

    Enterprise Rich Internet Applications (RIAs) are the next evolution of business application development. There are four different approaches to RIA development - AJAX, Java, Flash, and .NET - and many different RIA solutions available today. This article answers the following questions: What are enterprise RIAs? Which approach should you use? Which solutions are appropriate for you? And how are RIAs being adopted today?

    j j 09/19/06 03:28:22 PM EDT

    Enterprise Rich Internet Applications (RIAs) are the next evolution of business application development. There are four different approaches to RIA development - AJAX, Java, Flash, and .NET - and many different RIA solutions available today. This article answers the following questions: What are enterprise RIAs? Which approach should you use? Which solutions are appropriate for you? And how are RIAs being adopted today?

    AJAX SUX 08/27/06 03:39:39 AM EDT

    AJAX SUX.
    Javascript is the number 1 culprit of popup ads, browser hijackers, virus infectors, pop unders, browser crashes, hangs, gaudy annoying banner advertisements, flashing blinking ad-rotators, dumb rollover buttons, forms that don't work, ONLOAD crap, window resizers, dorky little mouse pointer trails that look like little bouncing balls following your little mousie all around like a junior high school myspace page caliber web programmer, stupid little purple scrollbars, incompatible browsers, exploit hooks, automatic download links that don't work, etc etc.

    In fact, there is now a world wide movement to get RID OF JAVASCRIPT. Javascript is on its way out. People are already annoyed with it and are boycotting sites and advertisers that use Javascript and they are preferring sites that use normal standard HTML.

    any websites that continute to use Javascript are dumped and nobody visits them and those companies using gratuitous and unnecessary Javascript on their sites are blacklisted. Form buttons, form validators, anything. Any programmer using Javascript = Loser.

    Greg Holmberg 08/01/06 01:35:05 PM EDT

    As usual, Wei conveniently leaves off the list one of the best designed and most efficient solutions in the Java-based category: UltraLightClient from Canoo.

    http://www.canoo.com/ulc

    The server-side API is almost identical to the Swing API, the network protocol is highly optimized and puts just 1/10th the data on the network as HTML, and there is a plug-in to Eclipse for GUI building.

    JDJ News Desk 07/28/06 11:02:36 AM EDT

    Enterprise Rich Internet Applications (RIAs) are the next evolution of business application development. There are four different approaches to RIA development - AJAX, Java, Flash, and .NET - and many different RIA solutions available today. This article answers the following questions: What are enterprise RIAs? Which approach should you use? Which solutions are appropriate for you? And how are RIAs being adopted today?