Skip to main content

Thoughts on Rich Internet Applications

Posted by robogeek on July 15, 2008 at 5:01 PM PDT

The latest javaposse episode had an interesting go around what is a 'rich internet application'. BTW, guys, I'm really bummed you're not having the 200th episode recording on Sun's campus, I was really looking forward to it. In any case given their confusion over what an RIA is, it indicates there's lots of confusion out there in the world over what RIA's are. So in an effort to solve this problem let me tell you what RIA's are. Let's start by distentangling the words in the phrase: Rich refers to a GUI application with lots of bling and sizzle Internet refers to the network infrastructure on which the Web lives Application is a $2000 word for 'software' or 'program' Clearly what we're talking about is a GUI application that has fancy sizzle and makes strong use of the Internet. Maybe it was Macromedia who cooked up this phrase to apply it to Flash, but that means they practiced marketerspeak and misapplied words in a way which violates normal grammar and meaning rules. The above interpretation is the correct way to interpret this phrase. Proper understanding of Rich Internet Application requires distinguishing the "Internet" from the "Web" as in Freeing the Internet from the Web 'jail'. The Web is simply one service which runs on the Internet. The Internet has a zillion potential services which can run across it, and the Web only uses port 80 and sometimes port 8080 or related ports. Obviously the Internet can do a lot more than the Web and I think it's a shame that the Web Browser takes up so much of the mindspace of using the Internet that we think the Internet has to be limited to the capabilities of the Web Browser. This clearly means that it is completely incorrect to think an RIA is something running inside a web browser. An RIA could run inside a web browser, but because the Internet is much larger than the Web it is preferred to run RIA's outside a web browser. An RIA running outside a web browser will have more capabilities than one stuck within the confines of a web browser. No matter how blingy a web app is, it's still a web app, and still is limited by the browser model. An RIA is distinguished from normal applications by the amount of blingy sizzle, and by using Internet protocols. Notepad is clearly not an RIA (no bling no internet) whereas iTunes clearly is (a little bit of sizzle, and big time use of Internet protocols). A web browser can be considered as an RIA, by the way. Especially something like an extensively customized firefox. I hope this clears up everybody's confusion.

Related Topics >>

Comments

No, it did little to clear up anyone's confusion. Your definition of rich is vague enough to be meaningless, hardly venturing beyond "blingy". By that token, half of the internet is already rich. Application you didn't define. The one nugget in there was that there could be protocols other than web that could be used by a RIA. But you didn't expound on that. Is CuteFTP a shining example of a RIA? And doesn't iTunes get most of its data using web protocols anyway?

@tcowan what if those features are included?

> As David says, the most popular RIA is the browser. iTunes is probably a close 2nd. I tend to agree with this, though I still think it is a gray area as far as the definition of "RIA" goes. I might try to summarize it as follows: - "Rich" - employing desktop-like functionality and/or "eye candy" media features - "Internet" - delivered via and/or taking advantage of internet connectivity - "Application" - more interactive than simple document browsing

gkbrown: A Webstart app that uses data or services not on the client it runs on is defintely an RIA. A Webstart app that just runs contained on the client would not be. It may have web delivery, but so does many desktop apps. We're really talking about "dumb terminal" (browser content) versus "application" (browser). As David says, the most popular RIA is the browser. iTunes is probably a close 2nd. ;-)

Some of these comments just emphasize the root of 'confusion' in my opinion. The community doesn't seem to know what an 'application' is versus a dynamic web page. iTunes is definitely a Rich Internet Application. It is a rich, full featured desktop application that utilizes data and services not on the installed client. Amazon, however, runs in the browser. It is basically a modern version of the dumb terminal, but today it has more colors. It is true that you can't bookmark content in iTunes, which is a feature that could be added if Apple wanted. Also, it doesn't get indexed, but is that really necessary? iTunes has it's own search engine for it's content, so who would go to Google to find a song to buy from within iTunes? Amazon's site is clunky like all so called 'web apps'. Every click I have to wait for my next 'report' to display. It always widens my search criteria, so I end up scrolling thru irrelevant entries to find what I want. It's a horrible interface. The browser is good at dynamic, interactive reporting, but I have yet to see anything browser based that I would consider an 'application'. All 'applications' in the browser that I have seen, are actually RIA's that's just using the browser as a window frame.

"RIA's don't support [web standards] well. Rich apps don't get indexed by Google, you can't deep link into them, and it's often difficult to extract content from them." These examples don't really describe "web standards" - they describe HTML. RIA platforms are not meant to serve as a replacement for HTML. They are meant to be used in cases where HTML doesn't work quite as well - i.e. when an application requires a higher level of "richness" than HTML can provide.

The idea that "rich refers to a GUI application with lots of bling and sizzle" appears to be the conventional wisdom. However, as I've said elsewhere (http://java.dzone.com/news/interview-greg-brown-todd-volk), I think the "richness" comes as much from the availability of more desktop-like functionality as it does from the media features. I would agree that "no matter how blingy a web app is, it's still a web app, and still is limited by the browser model". HTML does not provide sufficient widgetry to create "rich" applications. I have to disagree with the assertion that "an RIA is distinguished from normal applications by the amount of blingy sizzle", though. I'd suggest that RIAs distinguish themselves from "normal" web applications by a significant increase in usability, not by the amount of eye candy they employ. I also agree that iTunes could be considered a rich internet application, though this is a bit of a gray area. From my experience, it seems as though another characteristic of an RIA is that it is delivered in a browser (generally in some sort of plugin). Does a web start application count as an RIA? It certainly seems like it should, but it "feels" like it doesn't. What about a Flex app executed via AIR rather than within an HTML page? Not sure.

I divide web apps and RIA based on their support of web standards, specifically, RIA's don't support them well. Rich apps don't get indexed by Google, you can't deep link into them, and it's often difficult to extract content from them. The assumption that RIA apps are more usable is open for debate. It's difficult to save links to your favorites of an item you found (iTunes for example)...it's difficult to link friends to iTunes you recommend, link from your blog, etc. Compare that to Amazon, wherein it's very easy to link out to products.