I attended yesterday’s panel discussion on Rich Internet Application (RIA) technologies in Zurich with:
- Hans-Dirk Walter, Canoo (moderator)
- Michael Renner, Adobe Switzerland
- Johann Kurz, Microsoft Switzerland
Inspired by Stephanie Booth, I decided to take notes while listening. Here is a summary of the discussion in my own words.
Disclaimer: if I get anything completely wrong, please feel free to leave a comment or add your own thoughts.
History of RIA
Hans-Dirk Walter started off the evening with a short general overview on RIA.
He outlined the historic development from fat clients to HTML applications, describing how the situation rapidly changed “back to mainframe” to the point that, in many companies, it was a policy to use HTML only for applications.
Towards the end of the 90s, some people started to recognize that HTML is not enough (for example, Erich Gamma at the OTI labs in Zurich). These activities were not known as RIA at the time, but the focus was to offer ergonomic user interfaces for web apps. In and around 2000, HTML along with Struts and co. was the GUI standard per se. A couple of years later the Eclipse Rich Client Platform and Adobe’s Flex 1.0 helped to create momentum but it was AJAX and Web 2.0 that really brought richer user interfaces back into the limelight.
In a nutshell, RIA offers better interfaces and better performance (for example, partial loading of data). RIA allows companies to build web apps for new uses and scenarios such as Software as a Service (SaaS). Or companies can use RIA to consolidate their widespread application portfolio or automate business processes effectively.
There is a wide spectrum of RIA technologies available and many developers and IT managers are somewhat unsure what technology to select.
This also holds true from an architectural point of view, current RIA technologies may span from rich fat to rich thin (cf this architecture diagram discussed in an earlier post.)
There are various factors to be considered regarding RIA:
- Is it browser-based or standalone?
Is the GUI programmed or dynamically generated?
- How is the application logic distributed between client and server?
- How is the data accessed?
There are a range of RIA approaches available. Hans-Dirk concluded his short overview by pointing out that developers and decision makers are somewhat overwhelmed by the number of choices. The question being: Which technology to choose?
Johann Kurz of Microsoft followed up with a short presentation on Microsoft’s Silverlight.
RIA is gaining importance and is part of Microsoft’s “Software and Services” strategy.
Silverlight offers a flexible programming model and various collaboration tools for developers and designers (Expression Studio). It’s based on the .Net framework, which means a wide selection of programming languages are available. Goal is to offer a plugin for all platforms, referred to as a “consistent cross platform experience”. To integrate services and data there is a project called Astoria (I had a quick peek at the Astoria team blog).
Silverlight offers closer collaboration between designers and developers using XAML.
Mr. Kurz showed 2 Silverlight demos:
– Silverlight Airlines (see also this video).
Next, Michael Renner of Adobe, presented a short overview on Flex 3 and AIR. He starting off with an interesting slide showing how RIAs will extend from consumer to business applications and from the web to the desktop to mobile devices.
Differences between Flex and AIR (codename Apollo):
Flex is an open source framework for web apps,
while AIR is a runtime environment for RIAs on the desktop: “hybrid desktop internet application”. AIR uses WebKit. Web developers can build desktop apps with their usual toolset (MySQL, Tomcat, etc.) and deploy it on the desktop.
– Flex Builder for Eclipse
– Harley Davidson website built with Flex
– A simple master detail sample showing how changes in the data are instantly propagated to other browser clients.
Hans-Dirk asked a number of valid questions (paraphrased in my own words):
- Why return back to the desktop?
- Given the various mix of technologies used, cross-browser differences, and the programming model, what is the effort to maintain large corporate applications?
- What kind of tools are available to support developers?
Questions from the audience:
- How do the tools help designers and developers work together, e.g. a designer might delete a check box and not know that there is code attached to it.
It seems both tools are delegating security issues to users. What mechanisms are available?
Regarding desktop internet apps, Mr. Renner said that there are various uses where an application needs to have online/offline capabilities: a feature offered by AIR. For Microsoft the desktop will remain a stronghold.
IMHO, the questions on managing complexity and providing adequate security were answered in an evasive manner by both speakers. My guess is that Flex, AIR and Silverlight offer the same security options as other AJAX and HTML frameworks. Flash is set up only to talk with its home server. But I felt the answers were somewhat lacking.
Regarding tools, Adobe plugs into Eclipse, while Microsoft offers a suite of tools around its VisualStudio.
General trends (based on this panel, that is 😉 ):
- Some kind of an ongoing convergence between designer and developer tools.
- Building GUIs will become more declarative.