RIA: Putting the User Back in Applications

May 2010

We’ve all been there. Your boss comes into your office, starts some small talk, and shares a quick status update. Then, he gets a look in his eye, and you know something is coming. He asks, “Have you heard of RIA? What would it take to have that here?” He adds urgently, “If we don’t do it, we will fall behind our competitors.”

This article is intended to put your mind at rest as to the validity of RIA and what is means to everyday developer life. For starters, RIA is more than just the technologies we use. RIA focuses instead on the people we serve by how we create the applications they use.

RIA Introduction

The web is becoming more dynamic and more interactive every day. It started with JavaScript, DHTML, Java Applets, Flash, JSP, ASP, AJAX, and finally more mature interactive frameworks such as FLEX, Silverlight, and Apache Pivot[1].  While Adobe seems to hold a very tight leash around the terminology of RIA, most developers consider the RIA group of technologies to be: Adobe Flash/FLEX, Silverlight and Java FX/Apache Pivot/Applets.

What Makes RIA Tick?

The idea of having a rich internet application is nothing new, but the RIA paradigm has new implications in the world of web 2.0.

RIA’s use of “sandboxes,” or offloading the computing burden to the client, is a key feature that really helps take the burden off the server. This new architecture lets the developer make calculations and process data on the client-side when usually the server would have to perform such utility functions. This not only increases performance for the user, but also frees up server performance for more bulky procedures. As you can imagine it also frees up a lot of network traffic.

Since the top three frameworks have similar distribution methods (where the entire app is downloaded to the client browser and run locally with backend connections to the server), once the initial download is complete the app runs almost as seamless as a desktop application. Updates become an easy effort because the app is distributed as a whole, making updates as simple as publishing a new app. And, the next time the user logs-in it will download the new application. The sandbox that it runs in can keep local properties while the UI is updated.

With the expanding breadth of the internet and most people getting broadband internet access, it has paved the way for more download-centric apps, whereas on a modem this was not possible several years ago.  Even java applets back in 1995 had a low adoption rate because it took too long when a user was used to getting instant gratification from a simple HTML page. Once downloaded, these apps that reside in the browser can still be used when the user goes offline. Adobe flex has built-in offline syncing that enables a user to go offline while the app keeps track of user operations. When the user goes back online, it syncs back with the server—without any effort from the user. These kinds of API features make RIA applications that much closer to becoming as fast and as efficient as thick desktop apps.

While java claims it is, “write once run anywhere”, RIA gives us the promise of “write once, look the same for everyone”. This has huge implications for the user experience. No more guessing what an app will look like for a certain OS and browser, or what might happen in a certain resolution. These things are now within the developer’s control and can be done without several sets of code to account for the various possibilities. One set of code, done right, the first time.

Security becomes tighter with all operations performing inside the application. The use of “sandboxes” help the applications complete local calculations and data manipulations, as well as business logic, in a secure application-only scope.  The downside is, due to browser security, most if all of the frameworks deny access to the underlining file system, and the operating system as well.

RIA applications rely heavily on web services (SOAP or XML over HTTP) for their data. While this is a good fit for most requests, some developers are left in the dark with their legacy code that does not easily support this approach. As of late, there have been several new offerings from Adobe and other companies where you can take current legacy code and expose their methods as remoting and messaging endpoints.

What’s This Mean for the User?

Usability goes hand-in-hand with this new RIA concept. In my opinion, there is no “rich” in RIA if the user is not taken into consideration.  With the ability to transcend the browser and OS restrictions, RIA applications can now really focus on human interactions and transitions that make a user experience both unique and intuitive.

RIA and Mobile Considerations

While the desktop and the web are where RIA is taking off, there is some consideration being made to mobile. The new windows 7 mobile will use Silverlight, which should allow even the smallest of screens to benefit from its power to complete tasks without having to go out to the web, which can lead to costly battery drain. The Flash player is being adopted by the android platform which is definitely a good start in the right direction. As of this time, the iPhone has not adopted any of the three main frameworks for RIA, but the new Flash developer 5 has the ability to compile down to native iPhone apps and XCode has the ability to create very intuitive layouts with interface builder.

Making the Decision to Move to an RIA Framework

There is a lot to think about when making the move to an RIA framework. Is it a new application or is their legacy code to deal with? How does your client base access your application? Does your team have a certain skill set that you want to stick to?

If you’re creating an application from scratch then your path can be pretty clear, but that is seldom the case. RIA applications are consumers of data. Therefore, HTTP services, RSS feeds, and web services become your best friends. If your infrastructure is already set up for web services, then the hard part is mostly done. With SOAP and web services being technology agnostic, virtually any language can be a data provider for these RIA applications.

Where RIA gives you an advantage is the improvements and control over the client experience. You get faster responsiveness in the interactions approaching desktop application speeds. While the name RIA is synonymous with Adobe, it really is up to what you are comfortable with when developing the front end. All have similar graphical components and layout abilities.

It all comes down to a key question: how interactive and cool can I make my user’s experience to be more useful and exciting to them?

Strategic Data Systems delivers custom development for better results. Its team specializes in Agility, Mobility, and Usability and offers complimentary educational talks around RIA applications and other innovative IT topics. Jon Borgman can be reached at jon.borgman@sds-consulting .com.

Links

Adobe Flex:

http://www.adobe.com/products/flex/

Apache Pivot:

http://pivot.apache.org/

Microsoft Silverlight:

http://www.silverlight.net/

http://www.microsoft.com/design/toolbox/

Raj_Soin_Real_WorldBuchanan
search | login