|MySQL Conference and Expo April 14-17, 2008, Santa Clara, CA|
Flash MX and the Bigger Picture: Lightweight Internet Applicationsby 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.
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.
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.