While programmers do all the magic to create these apps, it's ultimately end users who assess their value, ease of use, speed and other characteristics. This primer examines a few of these Rich Internet Application Frameworks and how they work in Web mapping solutions.
What's a Rich Internet Application, Anyway?
Rich Internet Application (RIA) is a phrase that distinguishes the more elegant Web apps from the less elegant ones. Different publications list different "properties" for RIAs. This list is from Java Today.
- is launched from (or even contained within) a Web page
- provides immediate feedback to users, with no refresh required
- supports tree controls, tabbed panels, drag and drop, and keyboard navigation usually found in desktop packages
- used platform independent coding
RIAs are enabled by RIA frameworks, software installed on the client computer. The frameworks manage downloads and updates, and run the RIAs. In the best case scenario, the frameworks are invisible to the user.
There are many RIA frameworks (and some arguments about which technologies are, or are not, RIA frameworks), but the most widely known in the geospatial arena are probably AJAX, Adobe Flash/Flex and Microsoft Silverlight. Soon, we are likely to hear more about Google Gears.
Flash dates back to 1996 when it was launched as MacroMedia Flash. Adobe acquired MacroMedia and now supports Flash and related technologies. Flash, in its early days, was thought of as a browser plugin that enabled animated ads, games and later video. In the days of slower Internet access, many users disabled Flash and graphics to speed up webpage retrieval. Today, it's hard to imagine using a Web browser that does not support Flash.
- As you "mouse over" the tools on the left, their containers highlight
- You can click and drag the slider to zoom in or out (a mouse wheel works, too)
- Clicking on a source radio button executes the command; there's no "apply" button
- Interface tool panels can be minimized or expanded
- You can rotate the map by clicking and dragging the compass rose
- You can use keyboard shortcuts (detailed in the help)
Today, Flash is a component of an RIA framework called Flex. Adobe Flex dates back to 2004, but made a big leap in 2008 when the Flex 3 SDK was released under an open source license. Other parts of the environment, including the Flash Player, are proprietary.
One of the early users of Flex for mapping was Yahoo. It used an early version, 1.5, but later switched to AJAX. I could not find an end user mapping portal that currently uses Flex.
What have appeared are many Flex Application Programming Interfaces (APIs) that allow development of mapping applications with popular mapping and GIS platforms including Google Maps, Yahoo Maps and ESRI's ArcGIS Server. The state of Maryland used Flex and ArcGIS Server to create its map (Figure 3, 4) of how it will spend its stimulus money.
Microsoft Silverlight, while first launched in 2006, didn't make a splash in the end user community until the company, in a deal with NBC, used the technology to show footage of the 2008 Olympics. That pushed many people to download and install the framework. In the last few weeks ESRI and Microsoft have announced Silverlight tools for Web mapping.
Microsoft announced a technology preview of the Virtual Earth Silverlight Map Control which enhances speed and smoothness with large datasets. I noted a few demonstrations I found at All Point Blog. Since the control is really aimed at enhancing performance issues, it's perhaps better to get a sense of what it can do in a more familiar situation. Contrast the experience with this ArcGIS Server Silverlight demo app with the Flex one above. ESRI offers samples of specific functionality implemented using Silverlight.
The other RIA Framework that's getting some attention is Google's Gears. While it's built in to Google's browser, Chrome, it's open source and can be installed to support many other browsers. It may become a valuable RIA for mapping because of its integrated location technology. That means it can detect location and then provide that information to applications built upon it.
I have not found any mapping applications yet that use Gears, but this demo illustrates the features of the Geolocation API.
The news for end users regarding RIAs is all good. Web applications for mapping and other needs that use RIA frameworks are more responsive, more intuitive and work more like full-fledged desktop applications. The challenge, it seems, rests with developers. They must determine which of the RIAs best fits their clients' needs. Based on the recent past, more RIAs and more mapping APIs that support them will appear and gain popularity in the coming months and years.