3.12 Rich Internet Applications (RIAs)
Rich Internet Applications (RIAs) are web applications that offer the responsiveness, “rich” features and functionality approaching that of desktop applications. Early Internet applications supported only a basic HTML graphical user interface (GUI). Though they could serve simple functions, these applications did not have the look or feel of a desktop application. The relatively slow Internet connections these applications relied on led to the term “World Wide Wait.” RIAs are a result of today’s more advanced technologies that allow greater responsiveness and advanced GUIs.
AdobeFlex (see Chapter 18) is an RIA framework that allows you to build scalable, cross-platform, multimedia-rich applications that can be delivered over the Internet. It uses the Flash Player 9 runtime environment, which is installed on over 97% of computers, allowing for almost universal compatibility.2 Flash Player 9 is backed by ActionScript 3, Adobe’s object-oriented scripting language—this uses an asynchronous programming model, which allows for partial page updates similar to Ajax. Flash CS3 (the development tool for creating Flash movies) is discussed inChapters 16–17.
Microsoft’s Silverlight (see Chapter 19), formerly known as Windows Presentation Foundation Everywhere (WPF/E) and released in May 2007, is Microsoft’s new competitor to Flex and Flash. Silverlight 1.1 uses a compact version of the .NET framework. Silverlight applications have user interfaces built in Extensible Application Markup Language (XAML)—Microsoft’s XML-based format for describing user interfaces. The new framework allows quick and easy development of RIAs and is designed to run on major browsers and operating systems.3 Moonlight, an open source version of Silverlight for Linux operating systems, is being developed.
JavaFX is Sun Microsystems’ counterpart to Flex and Silverlight, also designed for building Rich Internet Applications. It consists of the JavaFX Script and JavaFX Mobile (for mobile devices). The JavaFX Script, which takes advantage of the fact Java is installed on most computers, will be available under open source licences (seehttps://open jfx.dev.java.net/).4
Ruby on Rails
Ruby on Rails (see Chapter 24), developed by 37Signals’ David Heinemeier Hansson, is an open source framework based on the Ruby scripting language that allows you to build database-intensive applications quickly, easily, and with less code. Ruby on Rails was designed to build 37Signals’ Basecamp (a project management and collaboration tool) and other SaaS products.
JavaServer Faces (JSF) is a Java-based web application framework. JSF separates design elements from business logic and provides a set of user-interface components (JSF components) that make developing RIAs simple. One of the Java BluePrints projects provides additional resources and libraries for building Ajax-enabled applications. We build RIAs with JSF in Chapters 26–27.
ASP.NET Ajax (Chapter 25) is an extension of the .NET framework for creating Ajax-enabled applications. It includes an open source Ajax Control Toolkit for implementing asynchronous functionality. ASP.NET Ajax is easily used in Microsoft Visual Web Developer or Microsoft Visual Studio to quickly create Rich Internet Applications.
Adobe Integrated Runtime and Google Gears
Though web application use has been increasing, many feel these programs cannot truly compete with desktop applications until the “Offline Problem” (not being able to access web applications and data when not connected to the Internet) has been solved.7 Businesses can lose valuable time and money when Internet issues occur such as a slow or broken Internet connection.
Adobe released its Adobe Integrated Runtime (AIR; previously calledApollo) in beta form in June 2007. AIR allows users to run Flex web applications on their desktops even when they are not connected to the Internet, thus allowing users to remain efficient when they are unable to access the Internet or when an SaaS application server goes down. Users can continue their work and synchronize it with the servers again later.
Google Gears, also in beta, is a similar product, allowing use of web applications while offline. Google Gears was created out of a Google engineer’s 20% project, inspired by wanting to use Google Reader on a bus with “flaky” Internet access.8 (Google engineers devote 20% of their time to projects other than their usual work and 10% of their time to projects that are “truly new.”)9 Dojo Offline (using the Dojo library) is built on top of Google Gears, creating an easy-to-use interface for using web applications offline.10