When designing an embedded system choosing which tools to use often comes down to building a custom solution or buying off-the-shelf tools.
TR10: Offline Web Applications
Adobe's Kevin Lynch believes that computing applications will become more powerful when they take advantage of the browser and the desktop.
Web-based computer programs, unlike their desktop counterparts, are always up to date and are instantly available, no matter where the user is or what operating system she's running. That's why cloud computing--so called because it involves software that resides in the "clouds" of the Internet--has caused a "tidal shift in how people are actually creating software," says Kevin Lynch, chief software architect at Adobe Systems. (For a review of Nicholas Carr's new book on cloud computing, see "The Digital Utility.") But cloud computing has drawbacks: users give up the ability to save data to their own hard drives, to drag and drop items between applications, and to receive notifications, such as appointment reminders, when the browser window is closed.
So while many companies have rushed to send users to the clouds, Lynch and his team have been planning the return trip. With the system they're developing, the Adobe Integrated Runtime (AIR), programmers can use Web technologies to build desktop applications that people can run online or off.
The project is rooted in Lynch's recognition of both the benefits and the limitations of the move from desktop to Web. He envisioned hybrid applications that would allow users to take simultaneous advantage of the Internet and their own machines' capabilities. Lynch's team started work on the concept in 2002 and launched AIR in beta last June.
AIR is a "runtime environment," an extra layer of software that allows the same program to run on different operating systems and hardware. (Java is another example.) With AIR, developers can use Web technologies such as HTML and Flash to write software for the desktop. Users won't have to seek out AIR to enjoy its benefits; they'll be prompted to download it along with the first AIR applications they want to use.
The Adobe team chose to base the system on HTML and Flash for several reasons, Lynch says. First, it makes it easy for desktop applications to swap content with websites: for example, information from a website can be pulled into an AIR application with its formatting intact. Second, it should simplify development, encouraging a broader range of applications. Programmers can easily rebuild existing Web applications to work on the desktop. And in the same way that Web-based applications can be built once and will then run on any device with a browser, an application built on AIR will run on any machine that has AIR installed. (Adobe currently offers versions for Windows and Macintosh and is developing versions for Linux and mobile devices.)
Adobe is already working with partners to demonstrate AIR's capabilities. One example: the popular auction site eBay has released a beta AIR-based application called eBay Desktop. Designed to improve the customer's bidding experience, the application itself retrieves and displays content about eBay auctions rather than relying on a browser. It also takes advantage of the processing power of the user's computer to provide search tools more powerful than those on the website. For example, it can scan search results for related keywords--a process that product manager Alan Lewis says works better on the desktop because the application can store and quickly access lots of relevant information on the user's computer. The program also uses desktop alerts to notify users when someone bids on auctions they are following. AIR enabled the company to create a customized user interface, without constraints imposed by the browser's design and controls.
Lynch says that AIR was a response to the Web's evolution into a more interactive medium. The browser, he notes, was created for "the Web of pages"; while developers have stretched what can be done with it, Lynch sees the need for an interface more appropriate to the Web of software that people use today. AIR, he hopes, will be just that.