|
When Macromedia began work on the MX series of products,
we knew that we had an opportunity to help take the basic
architecture of the web to a new level. Two central concepts
emerged that informed this new approach: rich clients and
web services.
Macromedia's rich client, the Macromedia Flash Player,
could help transform static and cumbersome user interfaces
into rich, engaging, and interactive applications. More
importantly, it could help put into place a more clearly
defined presentation layer or client-tier in the Internet
application stack.
We also saw another trend emerging, which was helping to
overcome clear architectural limitations on the Internet,
and that was web services. Web services promise to free
application logic and data from location and platform dependencies
by exposing applications to each other through a common
set of protocols and data standards based around XML, SOAP,
and WSDL.
These trends converged for us in MX, where developers build
Rich Internet Applications running in the Macromedia Flash
Player, and consume back-end services provided by application
servers using Macromedia Flash Remoting, a native feature
in ColdFusion MX. In ColdFusion MX, we added a new capability
called ColdFusion Components, or CFCs, which provide a simple,
script-based mechanism for building web services that can
be used by Macromedia Flash clients as well as through SOAP.
Acting together, this approach uses a services-oriented
architecture, where both the client and server tiers are
designed to be loosely coupled and freely interchangeable.
The Macromedia Flash client tier has been implemented using
an API in ActionScript, where the order processing, catalog,
and other functions are accessed as a service. The service
in turn uses Macromedia Flash Remoting to communicate with
a back-end application. The great thing about this architecture
is that you can swap out the back-end easily, just as we've
done by layering the Macromedia Flash front end on top of
the Java(™) Pet Store and Microsoft .NET Pet Shop.
Similarly, the server-side of Pet Market, implemented as
a collection of CFC-based web services, is entirely client
independent. In fact, these CFCs have no idea that they
are being called and used by the Macromedia Flash client
application. The CFCs could just as easily have been called
by a dynamic page that was generating a HTML or WML view,
or even used as objects via SOAP called from another server
platform.
|