back

BlazeDS and what it means for the developer community

by Zach Stepek

As a seasoned web developer and Adobe Community Expert, I have experienced many great moments in the history of the Flash platform — the introduction of Flash-based video, the release of Adobe Flex 2, the new AVM in Adobe Flash Player 9, the beta release of Adobe AIR, and the addition of support for H.264-encoded video in Flash Player, just to name a few.

Adobe will soon release source code for its remoting and messaging technologies under a new open source product named BlazeDS. This will not be just a memorable moment; it will be a defining moment in the history of Flash.

An open source Java implementation of Action Message Format (AMF) 3–based remoting and messaging, BlazeDS includes technologies that were previously available only as part of Adobe LiveCycle Data Services (LCDS) ES. With BlazeDS, developers can easily connect to back-end distributed data, as well as push data in real time to Adobe Flex and Adobe AIR applications, for more responsive rich Internet application (RIA) experiences.

Adobe also announced that it has published the documentation for AMF 3 and will now support the developer community to make this protocol available for every major server platform. Now that AMF is an open specification and open source BlazeDS is about to be released, what does this mean for developers?

Action Message Format (AMF)

AMF is a binary format for exchanging data. It is most commonly used to transfer data between a Flash or Flex application and a database via a remoting request. In a remoting call, the external elements being called would be application tier services, which would likely be running on an application server such as Adobe ColdFusion, Java, PHP, or .NET.

AMF isn't used only for remoting requests, however. It's also used for other requests, such as NetConnection, NetStream, and LocalConnection. In addition, AMF is the data format for a few other classes and interfaces, such as ByteArray, IExternalizable, and Shared Objects.

The major benefits of using AMF for remoting requests are speed and packet size. A binary AMF packet of data is almost always significantly smaller than a RESTful XML or SOAP packet. This makes the transfer of an AMF packet smaller, faster, and more bandwidth efficient than SOAP or REST.

But don't take my word for it. Adobe evangelist James Ward has a Flex application on his site that enables you to run some benchmark tests yourself. Census RIA Benchmark demonstrates various methods of loading data in RIAs and determines how those methods affect performance, bandwidth, and client memory usage. Census enables you to run tests on Ajax-based HTML, SOAP, XML and JSON, Dojo, Laszlo XML, Flex SOAP with ActionScript objects and ECMAScript for XML (E4X), Flex XML with ActionScript objects or E4X, Flex AMF 3, and Flex Paged data.

There have been several third-party implementations of AMF-based remoting — projects such as AMFPHP, WebORB, and Red5. The only real drawback to these solutions has been that there was no way to verify that they were built exactly to the specification. With Adobe's AMF announcement, the full specification is available to build to, which should lead to even more robust solutions. It will be interesting to see all the new entries in the remoting space in the months to come.

BlazeDS

BlazeDS is, simply put, an amazing and unexpected release from Adobe. BlazeDS is a Java based remoting and web messaging technology. It's currently in beta and will be released under the GNU Lesser General Public License (LGPL) v3 as an open source project.

The origins of BlazeDS lie in LiveCycle Data Service ES. According to Adobe, the company plans to contribute the proven technologies from LCDS to the community through BlazeDS. For those of you unfamiliar with LCDS, it is Adobe's premier server product for powering data integration for RIAs.

LCDS is an amazing product and provides a large feature set that makes it easy to build robust applications that require things such as high-performance data streaming, paging, and data synchronization. When it makes sense to use LCDS, it is well worth the investment. Its expensive price tag has been the largest barrier to widespread adoption in the small and medium business marketplace. For Flex and Adobe AIR applications that only need remoting and messaging, it makes sense to take advantage of BlazeDS.

The two LCDS technologies included in BlazeDS in this release are the Messaging Service and the Remote Procedure Call (RPC) Services:

I love LCDS, but I am excited about BlazeDS because it contains most of the functionality I need to build applications. With BlazeDS, I can build chat applications and collaborative environments and use Java applications as remote objects. Plus, remoting in BlazeDS is fast — really fast. In fact, I might even call it blazing fast. Take a look at the Census application again. It uses BlazeDS for its AMF remoting calls, and you can clearly see that BlazeDS is faster than the other methods used in the test.

A bright future

It keeps getting less and less expensive to develop Flex applications. The Flex SDK is free and includes a command-line compiler and the entire library of Flex framework class files. BlazeDS is free and includes some of the functionality from LiveCycle Data Services ES. And if you prefer to develop with an integrated IDE, like I do, Adobe Flex Builder recently dropped in price for the Standard edition.

Flex and other RIA technologies are changing the face of the web. Developers are beginning to understand the need for effective user interfaces and designers are beginning to see that great designs really need great code behind them to be effective. These releases truly change the landscape of RIAs, and I can't wait to see what we can create with them.

Note: BlazeDS is currently available on Adobe Labs  as a public beta and will be generally available Spring 2008 on opensource.adobe.com. Additionally, Adobe will offer annual subscription services for certified BlazeDS that will include support services.


Zach Stepek is an Adobe Community Expert for RIAs, an Adobe Certified Instructor for Flex and Adobe AIR, and founder and manager of the Stateline Adobe User Group in Rockford, Illinois. His company, Crave Media Group, creates RIAs and rich media experiences built on Adobe technologies and is an Adobe Authorized Training Center. Stepek is also one of the founders of RIApalooza, a platform-agnostic mini-conference about the business of RIAs that debuted May 2008 in Chicago and should find its way to other midwest cities (USA) in the near future.