Review: RIA continues to heat up with offerings from Adobe, Open Laszlo, Microsoft, & Sun
Feature: Here we take a look at how RIA is morphing as technology allows new functionality
RIA -Rich Internet Applications are beginning to change with
technology that support them. Originally RIAs were identified with Flash and Java Applets that could a)run in any browser and OS platform; b)deliver more options for interaction of GUI components; c)deliver faster response time than traditional thin client Web applications that are dependent on the server and d)reduce network and server resource usage because more interactive GUI and validation work is done on the client, and e)deliver rich media to the user including such advanced features as animations, audio, video, and interactive messaging.
Within the last three years, a particular form of JavaScript - AJAX-Asynchronous JavaScript and XML using special XMLHttpRequests and other asynchronous requests for data have formed the foundation of the Web 2.0 phenomenon. See here for description of AJAX tools and methods and here to see how they largely help to accomplish the 5 features of RIA described above.
Here is the Wikipedia definition of RIA which certainly catches the flavor of this evolving SaaS - Software as a Service as in Salesforce.com, NetSuite and others conception of RIA:
Rich Internet applications (RIA) are Web applications that have the features and functionality of traditional desktop applications. RIAs typically transfer the processing necessary for the user interface to the Web client but keep the bulk of the data (i.e., maintaining the state of the program, the data etc) back on the application server.RIAs typically:
Typical of these RIA systems are tools from Backbase, Google GWT, and Open Laszlo. For example in Google WebToolkit the code is written and debugged in Java in the Eclipse interface, but then transformed/compiled into AJAX for production. In the case of Open Laszlo, the code is written in JavaScript and XML and then compiled either to Flash SWF(Flash Player 7) or AJAX or run on a J2EE server. But now there is a third generation of RIA.
3rd Generation RIA
Third generation RIA is driven by three great user demands. First, users want more of their SaaS and other Web apps to work in both online and offline mode. If users cannot connect to the Web they still want to be able to do useful work. In effect users want their Web apps to also be desktop apps.
The second major requirement is that these apps have to be able to run on any display device - mobile phone, kiosk, desktop, Blackberry, iPhone, notebook - wherever business or opportunity takes the user. IT developers are starting to demand the same of Web and RIA tool providers. They don't want to have one set of code for display on desktops, another set for Web browsers and a third set for mobile and embedded devices.
Finally, users don't want proprietary - the same functionality plus look and feel should be available on any OS platform desktop (Linux, Mac, Solaris, Windows, etc) and also for any browser on the Web (IE, Mozilla, Safari,
Netscape, Opera, etc). And again the same uniform delivery to any mobile, kiosk, or embedded device with the same device size, buffer and display characteristics. True delivery of information at your fingertips in basic uniform or standard style. In effect customers are saying the display and access of information cannot be proprietary or closed; how it is served is largely a transparent operation and therefore of less concern to end-users. Bottom line - users are Open-oriented when accessing and displaying their data.

AIR/Apollo Application
And a number of vendors are starting to deliver this capability. Adobe through Flash has the lead with its Flex+Flash Player 9 and new AIR/Apollo runtime which are able to run on a wide variety of OS desktop, browser and mobile devices. The new Flex 2 & 3 plus AIR/Apollo code also allow developers to deliver online and offline operation for a broad range of display devices. Since almost Flash Player 3, the runtime has been multi-os platform and able to run in a browser or standalone on a desktop. In the intervening versions to the current Flash Player 9, the scripting engine, server side connections, and rich media support has made great progress such that Adobe is very positioned to deliver 3rd Generation RIA - Rich Interactive Applications
Java is another natural because of the true practicality of its OS cross-platform capability. Now already with
with AWT, Swing and SWT Java has a rich set of Windowing development tools. In fact Instantions Windows Builder Pro shows here the broad array of things that can be done with Java right now including a nifty Google GWT Designer. Java already with Applets and desktop can do browser plus desktop plus mobile apps with a fair degree of flexibility only deterred by Microsoft's IE taking users through 4 screens before a JVM download can be done when required in 70% of the world's browsers. Other than the continued stab in the back by Microsoft, Sun's Java is remarkably cross browser, cross OS. However, offline + online operation is dependent on the app - but a colleague reports some very powerful bi-functional apps.
What JavaFX buys is greater flexibility in doing rich media and 3D graphics over the standard GUI frameworks plus extra toolkits required in Java now. In addition, Sun is determined to make cross GUI development easier with a new Scripting language called JavaFX Script that produces JVM output and models much of its 2d and 3D functionality on SVG. Where as Open Laszlo and Flex with MXML have taken an XML Markup approach(very similar to Mozilla's XUL), with embedded JavaScript and ActionScript respectively; Sun has used a scripting language all the way. Those familiar with familiar with XML may find Open laszlo and MXML easier while those used to JavaScript/Java/Rexx may find JavaFX easier to master.
There are other near entrants into the 3rd Generation RIA market including Nexaweb Enterprise and Microsoft with Silverlight. But this reviewer takes issue with Microsoft's prominently displayed, "cross-browser, cross-platform" claims for Silverlight. The two OS platforms it supports are Windows (Vista, XP, and 2000) plus Mac OS for both the Power PC and Intel chips (no Linux, BSD, nor Solaris). The 3 browsers Silverlight supports are IE (both 6 and 7), Firefox (1.5 and 2.0) plus Safari (but not the Windows version). The Audio and Video formats supported are Windows only and there is no Flash .swf support. Hardly the stuff of vaunted "cross platform and Cross browser".
Nexaweb has, like Open laszlo, delivery in multiple formats including server-based, Java, and JavaScript and has an Eclipse based GUI Designer like Adobe's Flex. However, the details on offline support are sketchy. And in fact, that is the devil in the details. For most RIA systems, developers have to deliberately code in the offline detection and support in their applications. But then most of the RIA tools have RPC, Web Services and/or direct database connections to make offline as robust as online mode of operations. However, the security sandbox associated with offline/online apps is more restrictive than what desktop only apps are used to.
Summary: RIA=Rich Interface Applications
The move to one codebase for GUI development with support for either online or offline operations is just a natural progression towards Information at your fingertips. In effect, Rich Internet Applications are becoming any display, any platform, any mode(offline or online) Rich Interactive Applications. Of course, developers will welcome the rationalization of the GUI development space away from the decidedly proprietary current state to a Java-like write once, run anywhere GUI design and development. It is not going to happen overnight; but then again as momentum towards GUI integration gains agility and practice - suddenly everybody will be doing it and calling it Web Desktop 3.0.
Right now it would appear that the AJAX based developers have the advantage even in the new RIA market. Look at the situation:
1)Microsoft is forced to Go Live because Google, Yahoo, Amazon, and many others are delivering increasingly sophisticated services over the Web. Many of the major new and youth-oriented sites like YouTube, Facebook, Myspace are crammed with AJAX goodies. A whole generation of web surfers have sophisticated Web expectations and skills;
2)Many of these sites are offering rich media through Flash, FLV, Quicktime, etc - so these sites are delivering video and new media by integrating with existing rich media;
3)SaaS -Software as a Service is gaining credibility from vendors like Salesforce.com, NetSuite, and dozens of others offering alternatives to the mainframe center for business computing;
4)
There is a huge tide of AJAX frameworks being floated from Open Source DOJO, Prototype, and JSON to Adobe's Spry and Microsoft's Atlas;
5)This is being done despite the fact that the major browser vendor, Microsoft with roughly 70% market share, continues to be the most standards delinquent vendor by far - running the gamut of proprietary extensions and major standards deficiencies in JavaScript, CSS, DOM, HTML and a slew of W3C standards.
AJAX looks to have established an insurmountable GUI ease of use lead. And if users want offline as well as online, then software vendors will find a way.
However, in defense of both Adobe with its Flash Player trio of Flash, Flex and AIR/Apollo and Java with JavaFX, there are five factors in their favor:
1)
First and foremost, both vendors have been delivering true cross platform and cross browser (not the Silverlight monkey business) for many years. Many AJAX vendors(not just Microsoft) are fumbling on the cross platform and cross browser reach.
2)Both vendors are no strangers to delivering rich media and messaging. Adobe has greater strength in animations and video, Java in 3D and messaging - but both are solid players and for some time.
3)Both vendors control the bulk of their GUI software as single source. There are not umpteen frameworks like in the case of AJAX nor the dozens of JavaScript failures that I see because the browser, the OS platform, or the JavaScript and framework were somehow misbehaving. Both Flash and Java are single source - no proprietary variations. Both have long histories of use and debugging to get to the relatively smooth state they are now at.
4)Both are familiar with playing in a security sandbox and have addressed the issue of expanding the sandbox in a controlled fashion. In contrast, JavaSCript and HTML communities are at the mercy of Microsoft which has derailed all work on doing the same for Web standards. Yet both are remarkably Open, Java more so; but Adobe and Flash moving in that direction especially with Flex and AIR/Apollo.
5)Both have powerful and ubiquitous players. Java has the advantage in speed and power; but Adobe has really improved with AVM2 and the Flash Player has 96% browser and desktop penetration.
So readers should be the judge of who is leading in the race to RIA-Rich Interactive Applications and Display 3.0. But let there be no doubt - RIA has morphed again.
Top of Page Home Tutorials
Developers Weblog Graphics Reviews and Tips |