In 2006, Adobe released an open source library, the Adobe Flex-Ajax Bridge, making it easy for developers to dramatically enhance their Ajax-based applications with the power and versatility of Adobe Flex software, the richness of Adobe Flash technology, and the ubiquity of Adobe Player.
In October 2006, we released the Adobe Ajax Client for Flex Data Services (now included as part of Adobe LiveCycle Data Services ES), making it possible for you to more fully integrate your Ajax applications with server data and SOAP web services.
Why is Adobe doing this? Aren't Flex and Flash in competition with Ajax? In the early days of the Ajax movement, some developers and analysts thought they might be. But more and more have come to realize Ajax and Flex/Flash are not in competition; rather, they complement each other.
Ajax has sparked a great deal of interest in improving online user experiences, and at Adobe, we see this as a good thing. We've been passionate about creating engaging online experiences for many years.
However, although Ajax has proven effective in eliminating the need for page refreshes in relatively lightweight web applications, this is only a small step toward creating truly engaging user experiences.
For example, if you are developing relatively complex rich Internet applications, you may want to make use of audio/video, vector graphics, high-performance data exchange, and message-based publish/subscribe. Or you may want to overcome browser limitations in offline data access.
Moreover, if you are creating or maintaining sophisticated web applications, you may require modern programming languages, extensible component-based development, and mature development tools. Or you may require enterprise integration, robust data management, automated functional testing, and end-to-end debugging. Ajax is constrained in delivering on these requirements because developers are working with browser technologies that are five-to-seven years old. They're doing this so they can ensure the widest possible adoption of their Ajax-based applications. This limits their ability to meet rich Internet application requirements as they evolve.
For these reasons and more, we believe that Flex and Flash can play an important role in augmenting Ajax. Adobe's Ajax-related open source libraries, the Flex-Ajax Bridge and the Ajax Client for Flex Data Services (both available now), can help you overcome chronic browser limitations and address a much broader range of rich Internet application scenarios than Ajax on its own.
Others agree. Commenting on the Flex-Ajax Bridge, Burton Group technical analyst Richard Monson-Haefel remarked: "In my opinion, the Flex-Ajax Bridge is the single most important advancement in Ajax this year.... Developers on the cutting edge have been working to use Flash and Ajax together. To these people, Flash and Ajax are not seen as competing technologies, but complementary."
In his blog post, Monson-Haefel went on to describe how Flash Player, which is installed on roughly 98 percent of all PCs and a growing percentage of mobile devices, can be the Ajax developer's greatest asset. "The analogy I like to use is that Ajax and Flash are like peanut butter and jelly," he stated. "They are great by themselves, but when put together, the combination is unbeatable. In the IT industry, you shouldn't think of using Ajax without thinking of Flash."
If you are an Ajax developer, you can leverage the Flash platform by incrementally adding Flex or Flash elements that are scriptable directly within your Ajax application.
The Flex-Ajax Bridge is a new JavaScript library that enables the seamless integration of Flex applications with Ajax or DHTML code running in the browser. It opens the world of rich Flex components to your Ajax application without the need to learn Flex. In addition, it gives you direct access to the Flash DOM from your Ajax application, exposing the Flash API, and making possible the world's first truly cross-browser canvas.
When you want to move beyond the limited data capabilities of the browser, you will soon be able to augment your Ajax application with the rich data capabilities of the Ajax Client for Flex Data Services (ACFDS).
ACFDS provides your Ajax application with a robust suite of data services, including:
Using ACFDS, you will be able to easily configure all of the data services—such as RPC, messaging, and data management—in multiple ways to enable the right functionality for your application. For example, they can be configured to use direct socket connections to the back-end resources, enabling server push without polling, and a binary transport for minimum bandwidth usage. For an example of the bandwidth comparision, check out the census application written by James Ward.
With Ajax Data Services and the Flex-Ajax Bridge, the browser is no longer a limiting factor for providing a truly rich Internet application with Ajax.
Jason Williams is a senior computer scientist with Adobe Software Engineering.