Header Ziff Davis Enterprise
Advertisement
Advertisement
Friday, April 11, 2008 3:07 PM/EST

RIA War Is Brewing

Click here to see screenshots
RIAs

There's a war brewing on the Web today--a war to decide how Web applications and content will be developed and how users will consume the content of the future Web.

But this isn't the latest round in the browser wars. No, the war I'm talking about is over the RIA (rich Internet application), a type of Web application that can run independently of browsers, can run on any operating system and, in many ways, works like a traditional desktop application.

Of course, RIAs aren't new. They can be traced back to earlier efforts such as Macromedia's Shockwave, Java applets and the ubiquitous Flash format.

But recent developments--including the growth of powerful Web development technologies such as AJAX (Asynchronous JavaScript and XML) and improved standards support in the latest Web browsers--have boosted RIAs' potential reach and capabilities.

By far, the biggest and most mature player in the RIA arena is Adobe Systems. When Adobe acquired Macromedia more than two years ago, it also acquired a legacy that went from Shockwave to Flash to Flex.

This long legacy of RIA experience has culminated in the recent release of AIR (Adobe Integrated Runtime), a next-generation RIA platform that makes it possible to build browser-independent Web applications that have many of the features of desktop applications, including offline capabilities.

However, while Adobe is currently the biggest and most experienced RIA player, it faces serious challenges on multiple fronts.

For Adobe, probably the most formidable competitor is Microsoft. With its new Silverlight technology, Microsoft is making an initial push into RIAs. While Silverlight is still new and immature compared with Adobe's offerings, Microsoft has to be taken seriously any time it makes a big push into a market.

On the other end of the spectrum is Mozilla, whose Prism RIA platform uses the Firefox browser's core technology to make it possible to easily build RIAs out of Web applications.

There are also many smaller RIA vendors that have nearly as much experience as Adobe and have specialized in meeting specific RIA needs for businesses. A good example of this type of vendor is Curl, a company that has focused on building RIA platforms for businesses.

But, while RIAs have been around for more than 10 years, the technology has progressed slowly. We are only now reaching a stage where RIAs are finally beginning to deliver on their long-held promises of easily developed and deployed cross-platform applications. Let's call it RIA 1.0.

To evaluate the state of RIA technology, eWEEK Labs has been testing Adobe's AIR, Curl's namesake platform, Microsoft's Silverlight and Mozilla's Prism.

Each product has unique strengths and weaknesses. And, while I was impressed with all the products, they illustrate a key problem: Without a standard for RIAs, things will remain fragmented until one platform dominates or everyone agrees on a standard.

RIAs bring another dimension to Web applications that could cause problems for some developers, especially those from predominantly Web authoring backgrounds: As desktop and generally powerful applications, RIAs bring increased security concerns and potential problems to the table. This is especially true if the RIA platform being used has the ability to interact with native operating system processes.

Because of these issues, RIA developers should pay special attention to potential security problems and make it clear to RIA vendors that strong built-in security is a must.


Adobe AIR

AIR 1.0, which was released in March, is in many ways emblematic of all RIAs in that it is both mature and immature at the same time.

Built on a bedrock of longstanding RIA systems such as Flash, AIR is the furthest along of all the RIA platforms I've seen in terms of features and capabilities (especially offline support) and in development options. But AIR is also clearly a brand-new product, and has all the growing pains and limitations of a typical 1.0 product.

The only time most users will think much about AIR will be when they decide to download and install the run-time needed to run AIR applications. The AIR run-time is currently available for Windows and Macintosh systems, and a beta that offers Linux support was also recently released. Once users have installed the run-time, they can download the many sample applications that Adobe has made available, plus run any AIR applications created by other developers.

Of course, the users most interested in AIR will be developers. And, for developers, AIR offers both good and bad news.

On the plus side, there are multiple ways that an AIR application can be created. The most direct way is through Adobe's $249 Flex Builder 3 development application. Flex and AIR have much in common, and it is possible to create an AIR application from scratch using Flex Builder.

Using Flex Builder, I could launch projects as AIR applications, and Flex Builder would handle the creation and packaging of those applications. It was also easy to take any existing Flex application and convert it into an AIR project.

In addition, Adobe provides extensions and plug-ins for Dreamweaver and Flash that, while not really for full-fledged AIR application development, did make it simple to take Web and Flash applications and convert them into AIR applications.

An SDK (software development kit) is available for AIR, and developers who are uncomfortable with traditional Adobe tools may find this the best option.

AIR applications can also be built using traditional HTML and AJAX development techniques. However, those choosing the HTML and AJAX path should realize that it is not completely devoid of Flash influence. Developers will need to have some familiarity with Flash objects and with the ActionScript language used in Flash applications.

AIR's developmental flexibility is a plus in many ways, but it can also cause confusion for those learning the system--especially if they're trying to learn from the source code of other applications. Since there is no one way to create an AIR application, developers may find that the application from which they are learning was created in a method they aren't using themselves. (For example, someone using mainly Flex Builder may find it difficult to learn from an HTML-based application.)

Again, one other important thing for developers to keep in mind, especially those coming from a mainly Web perspective, is the added security concerns associated with creating a desktop application.

To a large extent, AIR applications use a sandbox model that limits how much they interact with the operating system. But these are still desktop applications, and they will touch the system in ways that Web applications never do.

Developers should pay attention to what system resources they are accessing and what data they are connecting to. In the documentation, Adobe has done a good job of breaking down the special security concerns that come with developing desktop applications with AIR.

In general, we found AIR to be the most capable and feature-rich of the RIA platforms we tested, but it is still not all it could be. In addition, while much of its base is open, there are still proprietary elements to AIR, and those interested in a fully open Web will probably be leery of creating important applications on an RIA platform that is closely tied to a vendor.

All the AIR tools and resources can be found at www.adobe.com/air.


Curl

While some RIA technologies are focused on flashy graphics and advertising, longtime RIA player Curl has a more specific focus--helping businesses and developers actually get work done through RIAs.

Unlike the other systems I looked at, Curl is a complete and finished product, and it shows in Curl's capabilities and feature set. Using Curl, I was able to easily build and deploy business-focused RIAs that integrated well with business data systems and applications.

The latest version of Curl, 6.0, which shipped late in 2007, has added beta support for running Curl applications on Mac OS X. (Curl already supports Windows and Linux.) The Curl organization also released several open-source projects for building Curl applications and integrating them with Web services. The basic Curl tools are free, and the professional tools for business use and deployment start at $12,000.

The main tool for creating Curl applications is the Curl IDE (integrated development environment), and I found it a very good, straightforward tool for creating RIAs. Anyone who has ever used standard business-application and form-building tools will instantly feel at home in the Curl IDE. Indeed, I was able to quickly build simple applications using this tool.

Curl applications tend to work well in business and enterprise situations, as they have excellent data-handling capabilities and good information presentation features. In addition, while Curl isn't as focused on animation and graphics as some other RIA platforms are, it does do a good job when it comes to data analysis and reporting graphics.

Since Curl has been around for 10 years, it has a well-established base of users and support, and I was able to quickly find information and help in the developer areas of the Curl Web site.

All the Curl tools and information can be found at www.curl.com.


Microsoft Silverlight

When Microsoft released Silverlight 1.0 in 2007, it was hard not to be impressed with the nearly unprecedented (for Microsoft, anyway) cross-platform capabilities of the new RIA system. Right from the get-go, Silverlight worked on multiple Web browsers, including Firefox and Safari, and ran on both Windows and Mac OS X. In addition, an open-source project is working on bringing Silverlight to Linux systems.

However, while Silverlight's browser and operating system support is impressive, as an RIA platform, its scope is much more modest. In tests, Silverlight proved to be a fairly basic and even old-school approach to building and using RIAs. In fact, Silverlight can't be considered a direct competitor to more advanced RIA platforms such as AIR. If anything, Silverlight is more of a direct competitor to Flash.

Silverlight is designed to run within browsers and has mainly been focused on Web-based animations and interactivity, long the forte of Flash.

And if starting a next-generation RIA platform is a tough task, it could prove tougher, even for Microsoft, to beat an entrenched market leader such as Flash. Since its launch last year, the Silverlight run-time's market penetration has been pretty slow. In fact, the only hope that Microsoft might have to truly challenge Flash is to succeed in its attempt to acquire Yahoo, whose many services and sites could increase Silverlight's reach.

However, while Silverlight may be old-school in its approach to RIAs, it does have its own strengths and unique capabilities. And since it is designed to be friendly to the Microsoft developer community, Silverlight could become a popular choice for these developers when it comes time to build RIAs for their businesses.

In addition, with the March release of the Silverlight 2.0 beta, the Microsoft RIA platform is moving beyond its initial focus on animation and interactivity. With the new release, more data awareness has been added to the Silverlight framework, making it possible to build more business-friendly applications.

As with AIR, developers can take multiple approaches to building Silverlight applications.
For power developers comfortable in traditional Microsoft environments, the best option will be the tools add-on for Visual Studio 2008.

Developers looking for something more in the realm of Flash tools and who are more interested in animation and interactivity will want to test out Microsoft's Expression Blend 2.5. Using this tool, I was able to fairly quickly build simple Silverlight animations and videos.

An SDK is also available, and the Silverlight.net site has a wealth of materials and community forums to help novice Silverlight developers get up and running with the platform.

Future plans for Silverlight include support for offline applications. Right now, however, Silverlight is an interesting but fairly basic version of Flash that doesn't match up to more advanced RIA systems such as AIR.

More information about Silverlight can be found at www.microsoft.com/silverlight/.


Mozilla Prism

While most RIA platforms try their best to be familiar to Web developers, enough new coding and scripting processes have been added that the learning curve has increased, even for experienced developers. This has been necessary because Web applications have traditionally lacked the ability to create interactive user interfaces similar to those found in classic desktop applications.

This has changed in recent years due to the growth of AJAX and similar Web development systems, and it's now possible to build RIA-like Web applications that run in all modern browsers without the need of special run-times or plug-ins.

This means that if one could run a modern AJAX-based Web application outside of a Web browser, it would essentially be an RIA. This is the focus of the open-source Prism project from Mozilla, the creator of the Firefox Web browser.

Prism is a simple but powerful program that makes it possible to take any existing Web application and turn it into a stand-alone application. And even better, you can do this in seconds.

After downloading Prism, I was easily able to point it at any Web application I was using--from Google's Gmail to Zoho to Salesforce.com--and convert it to a desktop application that would run outside of a standard browser window. I found this especially useful for very rich Web applications, as it removed all the unnecessary browser controls and allowed me to focus on the application itself.

Of course, Prism isn't actually removing the browser from the equation. In fact, Prism is essentially a stripped-down version of the Firefox 3 browser.

But this simple approach to RIA development and use may prove to be one of the most attractive for many developers. The biggest benefit is that there is no need to learn any new development techniques. Simply develop your Web application as you would for a browser, and then deliver it through Prism.

None of the applications I tested have offline support, but since Prism is based on Firefox 3.0, it should be possible to create applications that use Firefox's offline capabilities. In addition, with its simple interface, Prism is the only RIA platform I've tested that will be immediately usable by Web users without any development skills.

Keep in mind that Prism is still under the Mozilla Labs umbrella, meaning it is in many ways considered experimental. But that hasn't stopped Prism from being used by some high-profile applications, including the recently released desktop client for the Zimbra mail platform.

Prism runs on Windows, Mac OS X and Linux. Users interested in testing it out can get it at http://labs.mozilla.com/2007/10/prism/.

TrackBack

TrackBack

http://etech.eweek.com/cgi-bin/mte/mt-tb.cgi/13263

Comments (11)

Paulo Cesar :

Great review, thanks.

I develop rich-web-business application at work and Prism already showed us a good option for deployment, but I didn't know this Curl, I will take a look now

KP :

I think OpenLaszlo is a good opensource RIA platform too (it is similar to Adobe Flex)!

Have I missed something? But wouldn't a WEB application that is browser independent not be better than a new application requiring a client-side runtime to execute?

The term "RIA" has long encompassed any web application that delivers functionality beyond the capability of an HTML-only interface. Redefining it now to only include desktop runtimes is a mistake, in my opinion.

In that vein, the real comparison is between Flex and Silverlight, not AIR and Silverlight. Both Flex and Silverlight applications can be delivered through a browser or through a desktop runtime. And while AIR is a new platform, Flex is not - it's a mature, stable platform in its third release.

As for the proprietary nature of AIR mentioned in the article, it's worth noting that the components of AIR (Flash, HTML, WebKit, SQLite) are either free and open-source, or free and documented standards. In theory at least, anyone can develop a Flash runtime. And the SDKs themselves are free.

Also, despite what this article says about needing to know at least some Flash for AIR development, this is simply not true. While Flex is the preferred platform for AIR development, it is certainly possible to build AIR applications with no Flex or Flash knowledge.

Dave Watts, CTO, Fig Leaf Software

Eugene Chuvyrov :

It is misleading to state that "Silverlight can't be considered a direct competitor to more advanced RIA platforms such as AIR." It shows that very little hands-on experience has been put into writing this review. With Silverlight 2.0 beta 1, you have access to a wide range of user controls, asynchronous data access via Windows Communication Foundation (WCF), as well as the ability to use mature strongly-typed programming languages (C# and VB.Net) that have developer following that simply dwarfs ActionScript's.

While I am in favor of fair competition and open source, we should not belittle Microsoft's efforts in the RIA realm.

Since the review covers what's available now, how is Silverlight 2.0 beta 1 relevant? Do you deploy enterprise applications on beta software?

Flex 3 is available now, and enterprise applications have been successfully deployed with it and Flex 2. ActionScript, being ECMAScript essentially, is arguably a mature language; ActionScript 3.0 is strongly typed. Most of the students in our Flex classes are experienced Java or C# developers, and they take to ActionScript 3 quite nicely.

Dave Watts, CTO, Fig Leaf Software

I don't understand why do you named desktop applications as RIA, as it is wrong. RIA must be delivered to the end user through a browser. The AIR applications are just desktop applications, like the other made on c++ with the microsoft visual studio. Just because the AIR application can be made using several platforms, doesn't means that it is a RIA.

We have been developing Flash authoring tools for years. But we are seriously considering to move to Silverlight. I am a believer of Silverlight will change the situation in RIA.

It should be made clear that some of the technologies mentioned in the article are platforms , others are frameworks and others are neither. Silverlight and Air are platforms (like Flash). Curl is a framework (like Laszlo). Prism is neither. It is a standalone application tha encapsulates a Firefox brower that runs only a specific web site (whether the latter is an RIA or not).

So, one cannot compare Curl or Laszlo with Silverlight or Air with Prism - they are totally different things.

Joshua Burkholder :

RIAs are not desktop applications. RIAs are web browser delivered applications that run in the web browser. RIAs do not run on the desktop ... desktop applications run on the desktop.

Example: I just downloaded Adobe Acrobat Pro from Adobe's online store and installed it on my machine. When I launched it for the first time, it needed to download some updates from Adobe . . . so I let it. Is Adobe Acrobat Pro a RIA? No, that would just be silly . . . desktop applications have been doing this kind of thing for years.

Additionally, why are you comparing apples and oranges? Silverlight is a browser plugin that runs content in the brower . . . and does __not__ run outside the browser. AIR is a desktop application framework that runs on content on the desktop. So these have completely different sandboxes and capabilities . . . and should __not__ be compared. If you really need to compare AIR to something, I would suggest the Windows Presentation Foundation (WPF) and Windows Communication Foundation (WCF) combo on the .NET Framework 3.5 . . . of course, AIR is kind of a joke compared to these . . . so maybe you don't want to do that. ;-) For those of us on Windows, we've had desktop applications written in HTML with file system access since the late 1990's . . . there called . . . get this . . . HTML Applications (HTAs):

http://msdn2.microsoft.com/en-us/library/ms536471(VS.85).aspx

Of course, comparing Silverlight to Flex is also silly because Flex isn't a browser plugin. If you really want to compare Silverlight to something, then I would compare it to the Flash Player. Currently, the Flash Player 9 wins hands down. I don't no if it will be as clear cut after Silverlight 2.0 is released. Whatever the outcome, Adobe will improve the Flash Player to compete against Silverlight . . . so we'll all win.

YEAH US!!! ;-)

James Lloyd :


Dave Watts said:
> The term "RIA" has long encompassed any web application that
> delivers functionality beyond the capability of an HTML-only
> interface. Redefining it now to only include desktop runtimes is a
> mistake, in my opinion.

I agree with Dave Watts. I'm a long time RIA developer and this is the first time I have heard this definition of RIA.

People, when you write articles, you can't just make stuff up.


Post a Comment

 
 



Most Recent Blogs

Emerging Technology
SEARCH
Google Labs
Testing Out Google Labs 
Review: Several new and interesting projects have been added to Google Labs.

WEB TECHNOLOGY
Firefox
Firefox 3: The Next-Gen Web Browser 
Review: Firefox 3 has new capabilities that will change the way that the Web is used.

Advertisement
Advertisement