ich Internet Applications (RIAs) represent not only an established, but a rapidly expanding, segment of software development. Although descriptions of RIA abound, most people agree that they blur the line between server-based and desktop applications. Typically, RIAs are more robust and feature-rich than conventional web applications. In most cases they handle much of the interface and user-experience heavy lifting on the client side, but stay current by maintaining the data and shared networking elements on the server side.
Perhaps most important, however, they handle more activity on the client side to dramatically reduce the number of server calls, page refreshes, and often-significant delays found in traditional client-server relationships. This client-side approach decreases bandwidth strains, increases productivity, and reduces processor loads on the server, allowing more clients to interact with the application.
As RIAs become more common, and their benefits more obvious, questions loom. How can this scenario be improved even further? Which remaining limitations can be bested, and which new features can tomorrow's RIA exploit? The logical extension of moving more server processing to the web client is continuing that progression from the web client to the desktop.
From R-I-A to A-I-R
Adobe Integrated Runtime (AIR)formerly known as Apollo and recently renamedis Adobe's answer to these needs. Adobe already enjoys a large portion of the RIA development market, with industry-leading applications like Flex, Flash, and Dreamweaver. AIR, currently in beta, is likely to continue that trend.
AIR is a cross-platform, run-time engine that helps developers use existing software-development skills to create and distribute Internet-enabled desktop applications.
Using a distribution metaphor similar to the Flash Player delivering SWF content to the web browser, AIR delivers RIA content to the desktop. After users have performed a one-time install of the AIR run-time engine, sites can distribute minimized application files without the runtime-code overhead. These files can then be played back through the centralized AIR engine. Over time, this characteristic means the end-user performs fewer downloads and enjoys work or play easier and faster.
Take a look at some of AIR's significant features:
- Cross-platform delivery: AIR currently runs on Mac (OS 10.4.8 and later, both Intel and PPC) and Windows (XP and Vista), with support for Linux and additional Windows OSs expected sometime after AIR is officially in release.
- Database capabilities: In addition to existing capabilities of working with databases through middleware (such as PHP), and more directly through XML Sockets and reading and writing binary data, the AIR runtime ships with an embedded version of SQLite.
- Tight OS integration: AIR can currently manipulate directories and files (including reading and writing all kinds of data and binary data among them); create and manipulate windows; drag and drop assets between applications; display resolution-savvy custom application icons; support rich, formatted clipboard data; and support native menus (Mac only). It is expected to support multiple mouse buttons, contextual menus, system notifications, and Windows menus after it's in official release.
- Flash Player 9/ActionScript 3.0: AIR is current in its support of the Flash Player, meaning all the capabilities of ActionScript 3.0 are included.
- AIR application bridging: AIR applications can communicate with one another through the LocalConnection ActionScript API, which makes it possible for enhanced inter-application data exchange.
- Transparent windows/custom chrome: This feature brings RIA development into the next level of design. By supporting transparent windows (a transparent Flash/Flex stage, HTML document, or PDF document) AIR allows even entry-level developers to create custom interfaces and window shapes.