Comments
Patrick Collands wrote: collands (AT) gmail com I'd be very grateful for an invitation. Thank you.
Cloud Expo on Google News

SYS-CON.TV

2009 East
PLATINUM SPONSORS:
IBM
Smarter Business Solutions Through Dynamic Infrastructure
IBM
Smarter Insights: How the CIO Becomes a Hero Again
Microsoft
Windows Azure
GOLD SPONSORS:
Appsense
Why VDI?
CA
Maximizing the Business Value of Virtualization in Enterprise and Cloud Computing Environments
ExactTarget
Messaging in the Cloud - Email, SMS and Voice
Freedom OSS
Stairway to the Cloud
Sun
Sun's Incubation Platform: Helping Startups Serve the Enterprise
POWER PANELS:
Click For 2008 West
Event Webcasts
AJAX, Java, Flash, and .NET
Rich Internet applications market place

General RIA Programming Model
Although there are many different RIA solutions based on different underlying technology platforms, the general RIA programming model is actually converging into a single common model.

Declarative UI Development
The general RIA programming model is centered on using an XML-based UI markup language to create a rich user interface. The XML-based UI markup provides a much higher level of abstraction than HTML for building rich user interfaces. XML UI frees programmers to focus on the application's core logic and explicitly complements the roles of a typical enterprise development team (see reference "XML for Client-side Computing").

Below are examples from a scripting-based approach (Laszlo Systems) as well as an OOP-based approach (Nexaweb). Both are zero-install and can run inside any popular Web browser today without any software download.

On the client side, Laszlo requires a Flash engine (Flash 6 and above) while Nexaweb requires a JVM (JDK 1.1 and above).

Laszlo is a Flash-based RIA solution. It uses an XML UI markup language called "lzx" to describe the UI and uses ActionScript to code application logic. (See Figure 1) The Laszlo server will automatically compile lzx files into the Flash binary format (SWF), deliver the SWF files for rendering inside a Flash engine, and execute the application. Following is an example of the Laszlo code:

<canvas height="450">
   <window x="10" y="10" width="300" height="200" title="my window" resizable="true" closeable="true">
      <button x="10" y="100">Hello, World</button>
   </window>
</canvas>

By comparison, Nexaweb is a Java-based RIA product. Developers would use an XML-based UI markup to create a rich user interface and build client-side business logic by writing client-side Java objects called Managed Client Objects that are standard Java program objects. (See Figure 2) The Nexaweb client runtime dynamically renders the XML UI markup to present a rich user interface, and dynamically downloads client-side Java objects to the client side for execution in a "on-demand" fashion. Here is a simple Nexaweb UI that defines a tree and a button managed by a layout manager:

<xal xmlns="http://www.openxal.org/xal">
   <window title="New Window">
   <boxLayout orientation="vertical" pack="start" align="stretch"/>
     <tree>
       <column/>
         <row expanded="true">
           <cell text="Tree Item 1"/>
           <row>
             <cell text="Sub Tree Item 1"/>
           </row>
           <row>
             <cell text="Sub Tree Item 2"/>
           </row>
         </row>
         <row expanded="true">
           <cell text="Tree Item 2"/>
           <row>
             <cell text="Sub Tree Item 3"/>
         </row>
       </row>
     </tree>
       <button text="OK"/>
   </window>
</xal>

As shown in these two code examples, though Nexaweb uses Java and Laszlo uses Flash, RIA UI development is conceptually identical between the two different RIA solutions.

Application Logic Development
RIA solutions enable a wide range of options for application logic development. In typical HTML applications, most of the logic has to be on the server side. In typical desktop applications, most of the logic resides on the desktop. RIAs offer significant flexibility so developers put the logic either on the client side or server side. They can also adjust the location - ranging from very limited logic on the client side all the way to almost 100% logic on the client side, as shown in Figure 3.

The flexibility in partitioning application logic brings significant benefits. Some applications are best suited to having all their logic centralized on the server side while other applications require that the logic run on a local desktop. Traditionally, developers have to make tradeoffs depending on whether they choose to build the application as Web application or a desktop application, and bear with the problems associated with that particular choice. RIAs combine the best of both worlds, enabling developers to meet different application requirements without making costly tradeoffs.

In contrast to UI development, the choice of a particular RIA approach - Java, AJAX, .NET, or Flash - has a direct impact on and creates significant differences in application logic development. Choosing a scripting-based solution requires that the logic be written as scripts, which limits the amount and scope of logic that can be developed and maintained cost-effectively. An OOP-based RIA solution gives maximum flexibility to logic development and maintenance, but requires a higher-level skill set than scripting.

There's a code sample of logic development using Laszlo in Listing 1.

By contrast, OOP-based approaches use an object-oriented true programming language for the application logic development and typically enforce separation between the logic and the UI markup. For example, Nexaweb uses standard Java for the application logic called mco. Nexaweb also enforces a clear separation between the UI and logic, preventing the mixing of the UI with the logic in the same document for better application maintenance. (See Figure 4) Nexaweb separates the UI from the application logic:

<xal>
   <mco:declarations xmlns:mco="http://nexaweb.com/mco">
     <mco:mco id="myMco" src="com.nexaweb.test.MyTestMco"/>
</mco:declarations>

   <dialog title="Login Dialog">
     <boxLayout orientation="vertical" pack="start" align="start"/>
     <label text="Username:"/>
     <textField height="25" text="enter username here..." width="200"/>
     <label text="Password:" />
     <textField height="25" text="enter password here..." width="200"/>
     <panel height="25" width="100"/>
     <button height="25" text="Button" width="100" onCommand="mco://myMco.handleOnCommand()"/>
   </dialog>
</xal>


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.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

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.

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?

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?

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.
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.

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.

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?


Your Feedback
Joe wrote: 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 wrote: 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 wrote: 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 wrote: 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 wrote: 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 no...
Greg Holmberg wrote: 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 wrote: 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?
Latest Cloud Developer Stories
CloudBench Applications, Inc. announced its financial results for the three months and nine months ending September 30, 2009. All amounts are stated in Canadian dollars unless otherwise noted. Revenues from BasicGov, the Company's cloud computing solution for local government, gr...
The new contract is an industry first, with CSC being the first Microsoft partner to lead and win a cloud computing services agreement of this scale. Under terms of the contract, CSC will provide Royal Mail Group's 30,000 employees with access to new IT services using Microsoft's...
Operates in over 170 countries and is one of the world’s leading providers of communications solutions and services. Richard Tarboton talks for MeettheBoss.TV on his role as Head of Energy & Carbon for BT and what they are doing towards reducing carbon emissions.
CA is going to put its Agile Planner software on salesforce.com’s Force.com platform in the first half to accelerate development time and give users visibility over their development initiatives to reduce time-to-market. Customers are supposed to be able to accelerate the deploym...
Despite its uncertain fate Sun soldiers on. Monday it trotted out a cloud-based multiplatform desktop as a service for K-12 and community colleges that can run Windows, the Mac OS, Linux and Solaris applications to nearly any client device, including its own Sun Ray thin clients....
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
ADS BY GOOGLE

Breaking Cloud Computing News
CloudBench Applications, Inc. announced its financial results for the three months and nine months e...