Chapter 1. Introduction to RIA

Rich Internet Applications (RIAs) have always been about the user experience. RIAs, by (Wikipedia) definition, are web applications that have most of the characteristics of desktop applications, typically delivered through web-browser plug-ins or independently via sandboxes or virtual machines. The term RIA has many different definitions within the Internet development community, but all of those definitions boil down to enhancing the end-user experience in different ways. RIAs transfer the processing necessary for the user interface to the web client but keep the bulk of the data (maintaining the state of the program, its data, and so on) back in the application server, thus offering a better user experience with a lot more flare and pushing the boundaries of what we expect from the browser.

Many of us still remember the old days when we saw only static, plain text showing up on the browser. In recent times, we have come a long way, with dynamic content playing a vital role in the web application; this has definitely pushed the user experience way beyond the simple pages of old. Now RIA technology is bringing a similar revolution on the client side of computing that truly makes work easier, more accessible and more fun for everyone. One can view RIA as a convergence of user interface paradigms that exist for the desktop and the web and that facilitate the delivery of a uniform user experience across platforms, devices, and browsers. Rich in the context of RIA means a fluid, convenient, engaging, delightful user experience that works better than the halting, page-at-time, form-submission-dominated interaction model.

The History of RIA

The concept of RIA was introduced in March 2002 by vendors like Macromedia who were addressing limitations at that time in the richness of user interfaces, presentation of media content, and overall sophistication of the application from a user perspective. The primary emphasis was on the richness of the user experience and not actually on the technology, and the goal was to offer an enhanced user experience independent of the technology. However, RIA has taken many years to progress and mature, and it is only now reaching a stage where RIA tools are beginning to deliver on their long-held promise of easily developed and deployed cross-platform applications.

There are many players in the RIA arena currently, the biggest and prominent one being the Adobe Flash platform. However, recent developments—including the growth of powerful Web development technologies and improved standards support in the latest Web browsers—have boosted RIA's potential reach and capabilities, thus encouraging far more players, including AJAX (Asynchronous JavaScript and XML), Adobe Flex, Microsoft Silverlight, Mozilla Prism, Sun Microsystems JavaFX, and others to enter the market. But when we look at these technologies from a development platform perspective, only few of them, such as Flex, Silverlight, and JavaFX, would qualify as full-fledged development platforms for RIA. Nevertheless, each of these products has its own unique strengths and weaknesses, which we will uncover as we go deep into the JavaFX technology in the following chapters.

Key Characteristics of RIA

The key characteristics expected of an RIA platform typically include the following:

  • Advanced Communications: Sophisticated communications with supporting servers through optimized network protocols can considerably enhance the user experience.

  • Minimize Complexity: RIA Frameworks come in handy when dealing with complex user interfaces that are normally difficult to design, develop, deploy, and debug while enhancing the end user experience.

  • Consistency: Consistency of user experience across multiple operating systems, devices, and browsers has become far more important in the user interface paradigm with today's wider connectivity to the Internet.

  • Installation and Maintenance: Most RIA frameworks operate within a plug-in or a sandbox, so the installation and maintenance of these plug-ins must be much more intuitive and should work without the user thinking about the complexities of how it's done.

  • Offline: An RIA platform needs the ability to let the user work with the application without connecting to the Internet and synchronizing it automatically when the user goes live.

  • Security: RIAs should be as secure as any other web application, and the framework should be well-equipped to enforce limitations appropriately when the user lacks the required privileges, especially when running within a constrained environment such as a sandbox.

  • Performance: Perceived performance in terms of UI responsiveness and smoother visual transitions and animations are key aspects of any RIA.

  • Richness: Richness can be defined in terms of responsiveness, immediacy, convenience, production values, and ease-of-use.

  • Standards: Adhering to standards becomes important in heterogeneous environments when multiple technologies hybridize together in providing a better user experience.

  • Ease-of-use: An RIA platform needs the ability to deliver enhanced ease-of-use for the end-users.

  • Rapid Development: An RIA Framework should facilitate rapid development of a rich user experience through its easy-to-use interfaces in ways that help developers and not scare them off.

RIA Workflow

Creating the rich user experience brought out by RIAs is normally a collaborative effort between designers providing rich graphical assets and developers integrating them appropriately with the business logic, refining the overall user experience through multiple iterations. Visual designers have always been able to create beautiful experiences, whether that's a painting, a sculpture, a web page, or some form of artwork, and they know how to evoke emotion and reach out to the people viewing the piece. The developers, on the other hand, are task-oriented and focus on making the business logic work in an optimized way. The success of an RIA framework depends on how it helps designers take their ideas and turn those into interfaces that developers can eventually code around. Hence it is important for the RIA framework to offer a solid designer-developer workflow to cater to the needs of two different categories of professionals, in order to be successful in the marketplace. Figure 1-1 shows this workflow.

RIA workflow

Figure 1.1. RIA workflow

Why RIA

Applications are the basis of all computing experiences, and we need them to do what we do. However, most of the headaches the average person faces while using computers come from the way applications have been developed and deployed over the years. Traditional applications are tied to your computer, your operating system, and perhaps the file system. The problem with all of this is that it forces us to develop an understanding of the underlying layer below the application. In order to get work done, or experience something great, we need to know about file types, codecs, drivers, and other things that really have nothing to do with the task we are trying to accomplish.

In contrast, the RIA has brought about a huge change in computing for the average person. We can have great digital experiences that are easy to find and easy to use on the Web. With the advent of standards that web browsers have been developed to comply with, and with the ability to connect to the Web from wherever you are with whatever device you have, people now expect to be able to experience content on the web consistently, anywhere, at any time. RIAs are a new breed of application that have emerged, bringing the best of the Web and the best of the traditional desktop application together.

A well designed RIA can be a truly engaging experience to the user. It will allow the user to flow to many areas of the application without the click-and-wait that was the norm when browsing the Internet since its inception. RIA can also seamlessly include multimedia (audio, video, screencasts, and so on) and third-party tools (maps, messengers) to enhance the user's experience.

An RIA moves the ability to do work to the Web. It makes the process that we use to do something available to us everywhere regardless of what operating system we may be using. Further, our data and the content we create are also always available to us, moving our entire workflow from the computer to the "Internet cloud." When applications and their associated data truly reside in the cloud, radical new possibilities emerge. Sharing data or collaborating with others becomes much easier. People can collaborate on tasks in real-time or asynchronously, and they can use streaming video, audio, and text to communicate with each other as they are working on something. A good RIA often exposes the pitfalls in a traditional web application through being able to interact with the server data in a more intuitive ways.

Great RIAs also abstract the idea of "files." Your data is stored contextually, and is usually searchable within that context. You never really deal with raw files when working with an RIA; you deal with your ideas instead. These workflows can be radically more productive, as they keep the focus on getting work done, and they require no knowledge of the underlying platform on the part of the end user.

The traditional Web relied heavily on a few interface controls we have all come to know well. Things like links, combo boxes, and forms are great for dealing with interactive "pages," but they aren't all that helpful when you are editing images, streaming video, mapping GPS data, or making phone calls. New user interface requirements have driven the aforementioned technologies to allow designers and developers to explore the possibilities of brand new ways to interact with these types of data and processes.

The laptop and desktop computer are hardly the only places where we expect rich experiences and want to access our data. Great RIA technologies must also stretch their presence to devices including the mobile world as well as home theater. Most of the technologies mentioned offer the ability to develop for a plethora of devices. This space is emerging, but it may likely be the most critical of all. The race for ubiquity here is on and far from decided.

For enterprise applications, you are not tied to any particular technology when moving to RIA. You are not limited to any specific application server or language. There are many enterprise RIAs that employ ColdFusion, Java/J2EE, .NET, and PHP, and there are numerous other options out there. As with your client-side interface technology, your back-end technology should be determined by the needs of your application, your resources, and your infrastructure. Are you serving dynamic data? Are you streaming media? Are you employing real-time messaging? Are you upgrading an existing system, or building one from the ground up? Does your organization support open-source initiatives? Does your organization prefer commercial products that have technical support? What is your budget for technology? There are many variables in the equation, and many solutions to the problem. RIA is not locked into any one specific technology, nor does anyone expect it to ever be. The term "rich" is an appropriate reference to the user experience, but an RIA seldom sacrifices the other key aspects of the application, such as security, performance, stability, reliability, and so on, that are integral parts of any enterprise application.

Some RIA Examples

There are innumerable RIAs on the web that people use on a day-to-day basis without realizing that they are working with an RIA. In general, an RIA is anything that provides an engaging and delightful experience to the end user without having him/her go through a complex interface, multiple page refreshes, and the like to get what he or she wants. Some of the classic RIAs that people find exciting to use are illustrated in Figures 1-2 through 1-4; in addition to these sites, many of the social networking sites that people use every day are also RIAs.

RIA from Indaba for mixing and managing music online (www.indabamusic.com)

Figure 1.2. RIA from Indaba for mixing and managing music online (www.indabamusic.com)

www.miniusa.com

Figure 1.3. www.miniusa.com

www.worldwidetelescope.org/webclient/

Figure 1.4. www.worldwidetelescope.org/webclient/

Summary

Rich Internet Applications are allowing designers to create web sites in original ways that could never be imagined before, some of which you have just seen. RIA technologies are offering a number of new options for designing a creative visual interface. Rich Internet Applications are starting to have a serious impact on the whole software industry. It is amazing to see how Rich Internet Applications are starting to move into some of the most common and coveted areas of application development, and it would be truly exciting to be involved in a revolution in computing that truly makes work easier and more enjoyable for developers as well as consumers. In the next chapter, you will learn more about the JavaFX technology and its benefits, applicability, and usage.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset