RIA platforms lend apps more Flash

Macromedia Flex and Laszlo Presentation Server bring new tricks to Internet application delivery

Building effective applications -- ones that can be distributed and run smoothly over the Internet -- requires circumventing the shortcomings inherent in static Web browser delivery. Many companies are turning to RIAs (rich Internet applications) to achieve that goal.

Two updated products, Macromedia Flex 1.5 and Laszlo Presentation Server 2.2, offer RIA platforms with a delivery model involving server-side proxies for data aggregation and the Macromedia Flash run time as a desktop thin client.

These Flash applications request and receive data via the server but manage the presentation layer and processing logic locally. The interaction feels like a desktop application, runs in a browser, and, after the initial application is loaded, requires only a minimum amount of data transfer to update the local display. The process reduces the number of round-trip page refreshes required to accomplish a task using browser-based HTML delivery.

The Flex and LPS (Laszlo Presentation Server) platforms have a distinct advantage over other RIA vendors in that Flash run time has broad market penetration and acceptance, making it a trustworthy delivery model for consumer-side applications.

Further, your UIs get a usability upgrade thanks to the glitzy Flash animation. With effects now accessible programmatically, there's no need for developers to endure the tedium of frame-based animation.

Macromedia and Laszlo take different approaches to reach the same goal. Unlike Macromedia's bundled IDE, Flex Builder, Laszlo offers no development tools to speak of, aside from a rudimentary debugger. However, Laszlo recently open-sourced LPS under the CPL (Common Public License), making it available free for commercial reuse and perhaps a little easier to justify to a cost-conscious executive.

Because Flex and LPS are just presentation-layer tools, they snap onto, rather than replace, existing back-end infrastructure. That makes it easy to build and deploy apps at a fraction of traditional development costs. With features for charting and support for Web services calls, they make a good match to tasks like improving customer service initiatives and implementing executive dashboards applications with ease.

Overall, both vendors did an impressive job. In the grand scheme, though, you'll still need to look to Integra SP's AltioLive and other vendors for bells and whistles such as XML transformation tools or Web services connection wizardry. For features such as offline sync, local file access, reliable persistence, and information sharing across local RIA apps -- like the baked-in capabilities in Digital Harbor's PiiE -- you'll need Macromedia Central to circumvent Flash sandbox restrictions.

RIA Showtime

Getting started with these packages was easy; both use a one-click process to set up the server. LPS streamlines installation by bundling and installing all of the third-party pieces in its Java-based infrastructure -- namely, Jakarta Tomcat app server, Python XML parser, and JGenerator (an open source tool used to merge run-time data into Flash bytecode, similar to Macromedia's Generator).

The architectural basics of LPS and Flex are grounded in the same primary fundamentals: a Java application server platform, with XML and JavaScript (ActionScript, in the case of Flex) defining a foundation class for event management and data binding, and a variety of canned, customizable interface components for building event-driven apps.

Both vendors' development languages are XML-based. LPS has its own LZX presentation language, and Flex uses MXML (Macromedia Flex Markup Language). Although both were easy enough to follow, Flex Builder, included in Flex's pricing, is a welcome addition for quickly creating and binding interfaces.

However, there's something disappointingly ironic about a UI development platform being as deficient in its own user interface as Laszlo is, because it lacks an IDE. Flex Builder, on the other hand, provides a DreamWeaver-like experience for managing MXML. I could work in both code view and design view simultaneously, easily effect data binding, and work with events from a pallet of predefined behaviors. 

This version of Flex shows off a new data-grid component that does a fine job of displaying tabular data. I was able to wrap text and images within cells and easily customize row heights. I also preferred the full range of mouse-tracking events, which accommodates mouse-over events, unlike LPS's button messages.

Laslzo has done a good job of improving the LPS developer's guide, and this version offers an impressive number of prebuilt components for building interfaces. I easily modified visual properties programmatically; for example, to highlight a screen element to capture a user's attention based on the value of a variable. With absolute and relative data addressing via XPath, working with LPS's XML data trees was easy.

I did encounter minor rendering difficulties with LPS, and I think better text manipulation tools would benefit layout efforts. Nevertheless, the outcome was a slick-looking application that far surpassed anything possible using straight HTML-based markup.

I found SOAP performance slow and SOAP header support lacking in LPS, but the additional whitelist tag helps to extend security over Java classes being called from your applications. LPS now supports Web services calls using Java RPC, XML-RPC, and SOAP-compressing transmissions using gzip. Flex adds its own AMF (Action Message Format) protocol for binary transfer and compatibility with Flash Remoting.

Performance Tiebreaker

When it came to running my applications, there was a discernable performance difference between Flex and LPS during both the initialization sequence and in overall server responsiveness. In the past, I found LPS to be sluggish. Although Laszlo has made some improvements to that end, the latest version remains stymied by underperformance.

In general, application startup and initialization performance was better in Flex. Macromedia has re-architected its delivery framework, separating underlying Flash libraries from application code. The new run-time libraries improve performance by allowing applications to share a single code base. Users receive the foundation and application code in the initial transfer, but subsequent applications require downloading only application-specific code, which saves bandwidth.

LPS 2.2 includes a new tool called Krank to help developers optimize application startup performance. Krank jumpstarts initialization by precompiling static views directly into the app, bypassing startup on the client. The problem with Krank was that it caused my applications to grow considerably, often to more than twice and, in one instance, three times the size. 

Any perceived user benefits from Kranking an application need to be weighed against factors such as bandwidth availability and processing capability of the client. Some type of profiling tool would offer developers more than the trial-and-error insight currently available.

This development-tool need extends, too, to LPS' general server administration. Beyond basic monitoring reports, there were minimal tools for managing server-side caching optimization or client-side run-time performance controls. Flex offered no better. As RIA becomes more prevalent, these types of tools will be necessary for managing performance.

Making the Grade

Laszlo's wagon is currently hitched to Macromedia's profit model and the nonstandardized future direction of Flash, which brings up the issue of the long-term ROI and extensibility of products such as LPS. LPS still only compiles to the Flash 5 standard, so it is unable to directly support Flash MX assets or take advantage of enhancements in Version 7 clients.

Laszlo needs to take the abstraction afforded by its XML language and reduce its run-time dependency on Flash, as well as broaden its choices for cross-platform opportunity. I would like to see both vendors work toward solutions that allow apps to be completely decoupled from the presentation server.

These tools offer a good first step toward simplifying application delivery and improving end-user interaction, but given that the greatest benefit realized over competing RIA offerings is the ubiquity of the Flash browser, both may be best suited to direct-to-customer, rather than in-house, applications. Of the two, Flex is nearest to realizing reliable, stovepipe application integration possibilities.

When it comes to enterprise-grade app dev, Flex makes rich Internet applications attainable. For smaller, niche projects, Laszlo can fit the bill -- and the cost savings may just make it worth the added time or effort to get LPS working.

InfoWorld Scorecard
Documentation (15.0%)
Capability (25.0%)
Flexibility (25.0%)
Ease of development (15.0%)
Setup (10.0%)
Value (10.0%)
Overall Score (100%)
Laszlo Presentation Server 2.2 7.0 7.0 7.0 6.0 9.0 8.0 7.2
Macromedia Flex 1.5 8.0 8.0 7.0 9.0 9.0 7.0 7.9