Review: Adobe Delivers Web 2.0 Sizzle, But Can it Serve Up Enterprise App Steak

Adobe's portfolio can help you add Web 2.0 style rich graphics, interactivity and multimedia functionality, but does it offer the data-connectivity and beefy support enterprise developers need to do their jobs? Here's a closer look at the matrix of capabilities.

Nelson King, Contributor

November 13, 2007

11 Min Read
InformationWeek logo in a gray background | InformationWeek

It's not easy for IT shops to get on top of tools for developing Rich Internet Applications (RIAs). Developers are often excited about the wiz-bang features, but managers may be skeptical — with good reason. The market is confusing; almost every tool vendor is hawking one approach or another. Not many of them are ready for the enterprise.

This review looks at a matrix of products from one of the RIA leaders, Adobe, long known for its powerhouse creative software (Photoshop, Illustrator and so on) but less well known for its software development tools. This lack of recognition should change. Adobe is in a special position with its broad and multidimensional approach to developing Rich Internet Apps. Still, it's fair to ask, "How well does Adobe address the needs of the enterprise?"

Talk About an Ecosystem

For the most part, Rich Internet Applications are built for the Web, and "rich" implies a high(er) level of graphical user interfaces, interactivity and use of multimedia. RIAs are about presentation and user-oriented software, not about hardware drivers, server-side apps or back-end data management. This is an important distinction because Adobe brings to the table an overwhelming background in graphics and multimedia, but not so much in the way of back-end software development experience.

The nexus of RIA development is in three Adobe products, Flash, Flex and AIR, and they are part of an ecosystem of increasingly integrated Adobe creative products. Some of the products provide content, such as Acrobat for document formatting and collaboration, Photoshop for image manipulation, and Illustrator for drawing. Other products, such as Dreamweaver and Fireworks, are for Web site production and management. Yet other products, such as Bridge and Version Cue, provide integration services.

Together under the umbrella moniker of Adobe Creative Suite 3, there are some 18 products that provide a unique content supply system and Web site framework for applications developed in Flash, Flex, or AIR. No other software company has this much depth on the creative side, although Microsoft is mounting a challenge with its Expression Studio and the Silverlight engine.

It Starts with the Engine

For good performance, Web-based multimedia and especially streaming media currently need dedicated client software. This usually means a "media engine," in the form of a downloaded Web browser plug-in or a client program. In Adobe's case the media engine is Flash Player with its AVM2 (ActionScript Virtual Machine). Over the years, media engine programs have taken on more responsibilities; Flash Player, Microsoft's Silverlight, and Sun's Java FX in the Java Runtime Environment have essentially become specialized application servers that reside on the client computer.

Media engines tend to be proprietary, so their breadth of distribution is very important. Of course, many developers consider "proprietary" to be a pejorative; for the enterprise, adoption of a particular engine is a significant commitment. This brings in the numbers game. To wit, it's easier to commit to something that is distributed to 99 percent of Internet-connected desktops in mature markets; that's Adobe's claim for Flash Player, and it represents larger coverage than even the Java Runtime Environment. There are many caveats to this numbers game, but few would dispute that Adobe has a significant lead.

Flash, Flex and AIR produce code (in the form of ActionScript) that is compiled into bytecode to run on Flash Player. AIR runs on a separate version that does not require a connection to the Internet, but its core is still Flash Player. Essentially a rich enterprise application built with Adobe tools implies a commitment to the capabilities and distribution of the Flash Player.

Flash CS3 Professional

A bit of history: Flash Player and Flash development tools were products of Macromedia, which merged to become a division of Adobe in 2005. The Macromedia division continues to develop much of Adobe's Web design and programming portfolio, including Flash, Flex and AIR.

Flash grew out of a desire to bring graphics, animation, and other media to the Web, and the Flash development tools were designed for creative professionals. Consequently, Flash CS3 Professional is part of the Creative Suite (Flex and AIR are not), and its development environment uses a "stage" and a "timeline" for primary working surfaces. There are tools for drawing, making animations, designing graphical effects — a whole host of presentation development tools that some call the "Swiss Army knife of Web graphics." This does not sound like a standard programming IDE and it's not; but behind the graphics and animation is code. The heart of a Flash program is ActionScript, originally a language built for animation and graphics. Today, ActionScript 3.0 is a full-blown, object-oriented language. Flash CS3 Professional is one ActionScript programming environment; Flex is the other. Flash CS3 Professional includes a library of application components, a good code editor, and serviceable debugging tools. It can produce RIAs, but in this environment, ActionScript is more often used to capture the subtleties of graphic and animated presentation and make it easily repurposed.

Flash is immensely popular (see YouTube, for example), and it's a good bet that Flash programs have been developed at one time or another by almost all IT shops. The flip side, however, is that Flash is associated with, well, flash and sizzle, not with serious enterprise application development.

Flex 2

Years ago, Macromedia realized that Flash was attracting application programmers, but it also realized it was an awkward fit. Not only was the programming environment unconventional, ActionScript and the Flash Player only weakly supported the data handling, business logic and application management needed in full-scale Web applications. The company's response was to develop the Flex Framework, a core of application services and classes that has gone through several tortured iterations on the way to stability and depth —Flex 1.0, 1.5, 2 and soon Flex 3. At the same time the ActionScript language was broadened to give it more general programming capability.

There are two ways to use Flex. One way is to use the free Flex SDK, which supports many different IDEs, includes the Flash code compiler (no more application server required), and can work with other language components (specifically AJAX and Java). On the downside, the SDK may be complicated to set up and debugging can be Byzantine.

The other way to use Flex is through the $499 Flex Builder, an IDE which, as might be expected, has all the right hooks and tools to do the job. Flex Builder is implemented in the ubiquitous Eclipse environment as either a plug-in (if you already use Eclipse) or in a standalone version. It's a solid, no frills implementation with just enough hand holding for beginners without getting in the way of code jockeys. A full library of components is available to drag and drop onto a WYSIWIG design surface, but the code editor is clearly the center of attention.

To develop an application, Flex uses MXML, a rich, declarative XML-based markup language, and ActionScript 3.0. MXML is used primarily to create the user interface and handle basic application setup. ActionScript is used to provide sophisticated event handlers and almost anything else that ActionScript can do (which is a lot). Many rich effects such as wipes, blurs and dissolves are created by manually inserting code inside the MXML tags of controls dropped onto the design surface — a mix of GUI and manual coding. The interplay of MXML and ActionScript is not always obvious or well documented; learning both of them presents a fairly steep learning curve. That said, the Flex coding environment makes very good use of Eclipse, and MXML/ActionScript 3.0 make some stunning visual effects very easy.

Debugging in Flex covers the bases, including a useful debugging runtime version of Flash Player. The Eclipse workbench is famously extensible, so features such as version control or code profiling can be added as plug-ins. However, there is a sense that Adobe is sometimes leaning on the generic capabilities of Eclipse rather than expending resources to integrate programming features that are highlighted in development environments such as Microsoft Visual Studio .Net and many J2EE IDEs.

The Backend is Elsewhere

The user interface is where the action is for Rich Interenet Apps, but for enterprise apps a robust backend is at least as important. Adobe is clearly aware of this and has been adding backend functionality to the Flex environment. Still, much of the heavy-duty connectivity for Flex applications is at best loosely integrated. For example, data services and application management are dispersed between Adobe LiveCycle Data Services and Adobe ColdFusion.

Flex is quite good at lightweight data access through XML or Web services, but it presumes that these sources have made the connections to data management systems, completed the data transformations, and gone through data validation and user authentication steps. To go beyond Flex requires the Adobe LiveCycle Data Services Enterprise Suite (formerly Flex Data Services 2). LiveCycle Data Services seems aimed at bridging RIAs with the document and forms management of the other LiveCycle products. It comprises among other things: messaging services, data services (via J2EE application servers), RPC service, and RIA to PDF connections. It remains to be seen how the Enterprise Suite marketing configuration will affect the integration with the Flex environment.

An alternative to some of the features in LiveCycle Data Services can be found in Adobe ColdFusion 8, also a Web application development environment, which brings an application server orientation and strong data connectivity to the mix. Flex and ColdFusion can interoperate at some levels, but ColdFusion has its own development language, CFML, and the integration is tenuous. (The relationship is reminiscent of .Net and Visual FoxPro at Microsoft.)

AIR (Beta 2)

Adobe Integrated Runtime (AIR) is a response to the need for some Web-enabled applications to run while disconnected from the Internet. It's also a response to the needs of developers who know Web programming rather than conventional desktop programming. AIR uses its own client program (currently about 9MB in size) that packages most of the facilities of the Flash Player with the SQL Lite database engine, the WebKit HTML engine and access to desktop OS API functionality. In short, an application developed for AIR can run like a standalone desktop application while retaining most of the distribution and connectivity advantages of a Web application.

AIR applications can be built with the AIR SDK or Flex Builder 3 (beta), but Adobe is making AIR the most open-ended of its runtime engines, so apps can also be developed with Flash, Flex, Ajax, plain HTML and JavaScript to be compiled with the AIR SDK. Is it Rich enough for the Enterprise?

It's obvious that a monumental effort went into integrating the Adobe and Macromedia creative products, up to and including Flash. In the realm of the application developer and Flex, a lot of progress has been made with enterprise-level capabilities, but not yet to the same depth as leaders in the enterprise market. BEA and Microsoft, for example, surround their IDEs with fully integrated capabilities such as UML modeling, SOA management, Web services development, and sophisticated team programming systems.

Adobe appears to be in a transition period in which some of its enterprise attention is with the LiveCycle products, and the RIA products are still shaping up in various beta stages and in numerous open projects. From the perspective of an enterprise IT shop, the picture may seem patchy. Most enterprise shops already have comprehensive application development systems; committing to Flash (Player or AIR) as a major application delivery system is no small step. So, the question will be, "How will Adobe fit in?"

As it stands, Adobe is a leader on many fronts in the RIA world, and with Flex 2 (soon Flex 3) it arguably has the best creative/RIA development environment available. Does it really need integrated enterprise-level data and support systems to be viable in the enterprise? That's a question Adobe needs to answer more clearly for potential enterprise customers.

Pricing: Adobe AIR SDK: Free. Adobe Flex 2 SDK: Free; Adobe Flex Builder 2: $249; Adobe Flex Builder 2 with Charting: $699; Adobe Creative Suite 3 (CS3) -- CS3 Master Collection: $2,499 (all products in the CS3 line); CS3 Production Premium: $1,699 (video production); CS3 Web Premium: $1,599 (Web production); CS3 Design Premium: $1,699 (Web and print production).

Nelson King has been a software developer for more than twenty-five years. Further complications include being a computer-industry analyst, product reviewer and author (of nine books on database programming). He has been writing for Intelligent Enterprise (and its precursors) for more than ten years. Write him at [email protected]

Read more about:

20072007

About the Author

Never Miss a Beat: Get a snapshot of the issues affecting the IT industry straight to your inbox.

You May Also Like


More Insights