Sunday, April 20, 2008 12:47 PM
joeyw
The Spectrum of RIA
Ryan Stewart has a great post about where we are with the definition of RIA, and Scott Barnes continues. A good enough topic for a first post here, here's my 5 cents from a developer of this technology for the past 15 years or so.
Taking a step back in time, when the Internet first blossomed into something more than just document access it presented something very different to traditional desktop applications. Back then a desktop app was either a standalone document editor or a client/server line of business application. An HTML web application was something different - it provided zero footprint deployment, hosted state (docs, settings etc), a security sandbox and completely different navigational patterns. But, on the downside in this pre-AJAX world, every user action was responded to with a page refresh. In those early days there were some moves to address this with Flash, Java Applets and even ActiveX.
Generally speaking, I think we can define RIA as the move to address the lack of richness and interactivity in this new application model. A RIA is a hybrid - combining 'traditional HTML' and desktop applications - the best features of both. A RIA must follow the rules of the web model but include a better user experience:
- Zero footprint deployment. You don't need to go through a set-up or upgrade step. Using the app won't change your machine in any way. This doesn't mean it needs to run in a browser - that's just one way of discovering and running an application.
- Security sandbox - you trust that the app won't have access to your system (unless through specific permission and UI guidance).
- Supports a well defined server hosted application state - you store your data on the server by default. (This could one day be invisible, with local files being synchronized back through to hosted state on a server).
- The UX is rich enough so that it feels like a desktop application.
This gives us a Spectrum of RIAness. AJAX on one side, doing just enough interactivity and richness to look like a desktop app. Going up the scale with Flash, Silverlight, Java and WPF XBAPs.
Does a RIA need to be cross platform? For some yes, for all - probably not. For many this is just a factor of reach - especially if you include intranet or extranet applications. If you needed to include cross platform as a requirement then which platforms? How many? Would you include devices? Alarm clocks? Refrigerators?
What is for sure is that all desktop applications will have to meet up to this definition in the future. So RIA, as a definition, is dead - simply because we will just call them 'applications'.