Sponsored Link •
To do rich apps well, we need the right app model and we need a cross-platform ubiquitous client. I've written about the former, a declarative model for building service-oriented rich apps, called Flex. Now I'll mention a new product aimed at the latter: An evolution of the ubiquitous Flash VM that transcends the browser and runs in the desktop.
On Central and Rich Client Containers
Richness within a web browser is important, but it doesn't satisfy a couple of important requirements of data-rich and behaviorally-rich applications: inside a browser, it's difficult to develop sophisticated apps that can function as well offline as they can while connected, and it's difficult to develop true push-based and other more sophisticated message-oriented applications.
It is also difficult to aggregate data from one web app or service with that of another, as the decisions about what data can be aggregated are more or less locked into little web app black boxes on the server. There is no client-side OLE-like facility for web apps and web services, as data aggregation decisions are made by the web app and service developers. Even if you want to do something as simple as send a song name returned by Google to an Amazon or iTunes search input, forms-based cut-and-paste is involved; and that simple example doesn't touch on more useful automatic combinations of metadata through different service inputs and outputs. There are also not enough smarts, or basic server-side functionality in the client, to do much interaction with services on other clients (as opposed to servers hosting web apps).
Macromedia Central, which is a Flash desktop player and an application container atop that player, begins to address some of these issues.
Developers can create Central applications and Macromedia will use its distribution mechanisms (similar to the mechanism we used to deploy the Flash player to the world) to get those applications to users everywhere. By way of a single-click installation, end users can add applications and agents to their Central installations. Developers can create agents that run in the background while Central is operating, can bind agents to remote web services, can store data in one of two different local storage facilities, and more. Central also provides a try/buy mechanism and provides a payment facility, so that developers can decide to charge for their apps and provide trials -- using a simple XML declaration in the Central app descriptor -- and Macromedia handles the details.
Central can help aggregate and unite disparate data sources, allowing users to essentially cut-and-paste the data output by one app or service into the input of another, making it possible to create powerful service workflows and client-side portals. Users can send data from one application to another using Central's "Blast" feature, which behind the scenes generates and sends Schema-compliant XML from one app to another. The possibilities are encouraging, particularly (in my opinion) in intranet and extranet scenarios, where there is a hunger for smarter portals.
As a quick personal aside, it is written mostly in C++ like all the Flash players, and while I initially enjoyed working in C++ again after about four months I remembered why I stopped working in C++ in the first place. Looks like my next project will take me into C# land, a change I personally will welcome. My admiration for those who will continue to work on the C++ Flash codebase going forward is very high indeed, yet I also suspect a certain degree of masochism is intermixed with their undeniable brilliance.
One very powerful part of Central came from one of our partners rather than us: America Online is onboard and is planning to provide a Central API that allows developers to build apps that use AOL Instant Messaging. While yet another chat application is probably not what the world needs, treating IM as an embedded feature of applications has still not been fully exploited. Even more interesting to me is exploring IM networks as conduits for real-time data transfer rather than just for person-to-person messaging. This is a 1.0 release, but I'd expect similarly encouraging developments to follow.
You can read more about Central from Kevin Lynch, the keeper of the Central vision: Central Whitepaper (308 KB, PDF format), and you can grab the software itself from the Central page on macromedia.com.
On App Models and Ubiquitous Clients: Flex and Central Together
Many smart folks have tackled rich application issues, and most have come to the conclusion that creating the technology isn't enough to make it a broad reality. To make rich internet apps real requires both (a) a rich application development model that is fairly simple, standards-based and familiar to all the parties involved in building, testing, and managing web and service apps today; and (b) a ubiquitous cross-platform runtime which can host the rich client applications.
I see Flex as the former and Central as the latter. Others may make cases that other technologies meet the same requirements, but while there are folks who can craft strong application development models (Microsoft's XAML, for instance) I think the latter requirement, the ubiquitous cross-platform runtime for rich apps, is darn near impossible to find.
I realize there are those in the DHTML world who would argue that the browser itself is a ubiquitous runtime, but in practice I have found that assertion to be false where rich apps are concerned, as even if browser inconsistencies are dismissed and even if the winner of the browser war does change course and does announce a future for the primary DHTML runtime (two very big 'ifs'), DHTML in browsers alone does not provide the data richness that I seek: namely, sophisticated offline storage and synchronization facilities, support for local service interaction as well as peer-based services and remote services, support for push models, etc.
So powerful possibilities, post-1.0 for both Central and Flex, comes from uniting these two in deeper ways.
|Sean Neville is a software architect at Macromedia where he is focused on creating the Flex platform. His previous projects include the JRun application server and Flash-related products for J2EE and .NET. His experiences include membership in the JCP Executive Committee and numerous JSR expert groups; authoring articles, contributing to books, and speaking on enterprise topics; financial services app consulting; building doomed yet fun web startups; maintaining open source projects; and half-decent fiddling of Irish jigs and reels.|