Web DevCenter
oreilly.comSafari Books Online.Conferences.
MySQL Conference and Expo April 14-17, 2008, Santa Clara, CA

Sponsored Developer Resources

Web Columns
Adobe GoLive
Essential JavaScript

Web Topics
All Articles
Scripting Languages

Atom 1.0 Feed RSS 1.0 Feed RSS 2.0 Feed

Learning Lab

Flash MX and the Bigger Picture: Lightweight Internet Applications

by Timothy Appnel

As the Internet continues to evolve into an "Internet operating system"--programmable interfaces, ubiquitous access, and distributed computing resources--the document-centric browser is an awkward solution to a growing number of emerging needs. The browser is not dying by any means; it just needs a mate. And an ideal partner would be an Internet-application-runtime engine to provide optimal user experiences. Flash MX player and the SWF file format shows the potential to serve as such a complementing mechanism.

In this article we'll look at current browser-based solutions, review the capabilities, then discuss ways that a lightweight Internet application using Flash MX player and SWF can improve a user's experience.

The Web Browser Has Its Limits

The browser has served us well and continues to do so. (Long live the browser!) So why do we need an application-centric complement to it? Evolution. The capabilities of Internet technology and how we use it continue to morph and unfold as the dominant technological platform by which we communicate and do business. The browser has been an integral part of that platform by providing a means to publish document-centric resources and basic interactive applications in a simple, open, and cross-platform way. However, the emergence of the transactional Internet, via Web services, beckons new and richer ways for users to more efficiently use this part of the Internet.

Let's consider Internet banking, an online service that I, like many of you, use on a weekly basis. I truly appreciate how it has made my life much easier and more organized. I'm frankly not sure how I would operate without it.

Related Reading

ActionScript: The Definitive Guide
Mastering Flash Programming
By Colin Moock

That said, as a developer I'm afflicted by my tendency to notice little things don't seem quite right. Like how my browser history has 40 or 50 pages in it from *one* banking session. Or how the browser has to pop open a JavaScript window to ask if I want to continue my session if I have not been active for a time, only to boot me back to the login anyway, making me have to work my way back to where I was. Something also doesn't seem right to me as I watch the same pages load again and again with a few differences. On a poor dial-up connection in a hotel room it's just painful. And occasionally, thanks to a Web page redirect trick, my back button will not allow me past a certain page.

As an experienced developer, I know the interactive team at my bank's service really couldn't have done much better because of the browser's low intelligence and functionality. (I'm pleased that they refrained from frames, expiring pages, or using Java's mutant stepchild, the applet.) Still, it leaves me wanting something more elegant for the task. We have to do some pretty silly things to provide rich application features. If you've developed "fat-client" applications in Visual Basic and Powerbuilder as I did earlier in my career, you know that these issues were not acceptable by users then and could be easily remedied if they came up at all.

The fact of the matter is the browser is not a panacea for all solutions. Browser-based applications require a connection and a server to operate. Bandwidth use is highly inefficient, which adds latency to the application's response and erodes the user's experience. The browser uses a page-centric model with poor support for "tightly coupled" screens, functions, and interactions; and only recently has it begun to add the most rudimentary features for direct data transactions.

Again, my intention isn't to degrade the browser (even though it may sound like it!), but to demonstrate how the Internet could benefit from an application-centric browser.

In Walks Flash

These experiences have led me to consider Macromedia's Flash Player and its underlying SWF format to provide a means of delivering lightweight Internet applications. While Flash and the SWF file format descend from being a multimedia/animation player, recent iterations have introduced increasing amounts of application features such as embedded forms (scripting language, object, and events model), user interface components, and XML feeds. The addition of these features provides developers with the means to take various inputs, such as scripting logical operations on the client-side and communicating with backends across the Internet.

In many ways Flash MX promises to do for Internet applications what Visual Basic did for Windows applications in the early '90s. Flash MX encapsulates the most common, low-level functions that can be scripted with relative ease by a developer. These applications are small and compact because they share a preinstalled core engine. According to Macromedia, Flash enjoys 90% plus market penetration though the latest MX player has just surpassed 30% as of June 2002.

Flash is not perfect, but it's the best, current solution for developing and deploying cross-platform, lightweight Internet applications.

Additional Reading:

SWF Is Not Flash (and Other Vectored Thoughts) -- With increased interest in SVG, some are saying Flash technology might be on its way out. "Not so fast," says Jacek Artymiak. Flash has more to offer than many realize.

SVG On the Rise -- Scalable Vector Graphics (SVG) are working their way into the fabric of the Web and mobile devices. SVG Working Group member Dean Jackson outlines SVG's progress and builds a case for its growth in popularity.

Macromedia reinvents the Web -- Macromedia's Flash MX seems to be an effort to take over the Web with Flash, and discard the useless bits that Macromedia doesn't happen to control.

I was disappointed with the initial debate, and sometimes the uproar, surrounding Flash MX and the SWF format that had focused on its multimedia functionality, particularly vector graphics, and its support (or lack thereof) of all open specifications. To some degree, I think an important aspect of Flash was overlooked in these posts--its ability to serve as an Internet application runtime engine.

Comparing SWF and SVG is not like comparing apples and oranges, but rather apples and a fruit basket. The argument over which is the better vector graphics or multimedia platform is increasingly one of splitting hairs, as the two will become essentially more similar over time. Simply put, we would all be better served by considering the functional issues facing Internet applications today and discussing how Flash MX could be a tool to address them more effectively.

Nonetheless, the notion of Flash as something more then a multimedia or vector graphics format is beginning to take root. The recent release of the Flash Communications Server demonstrates such potential. See Scripting Collaborative Applications with Flash Communication Server MX by Jon Udell for an overview.

Pages: 1, 2

Next Pagearrow