Damon Cooper's BLOG
Viewing By Entry / Main
December 13, 2007
Adobe BlazeDS FAQ

Some pretty exciting stuff happening today as we (Adobe) have announced plans to release source code for its remoting and messaging technologies under a new open source product named "BlazeDS". I'm excited to be a part of this project as we move the Internet forward another notch in terms of richness and usability and bringing it all to the world with even more free and open software.

The public beta is available now for download from Adobe Labs here: http://labs.adobe.com/technologies/blazeds/

Read the Adobe Press Release PDF that went out this morning here.

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 RIA experiences. BlazeDS is being contributed to open source under the Lesser General Public License (LGPL v3) – the same license used by Red Hat/JBoss, which is good.

In addition, the Action Message Format (AMF) protocol specification has been published to open it up for other implementations across other server environments, and we'll be adding an Appendix to the AMF spec doc to include the details of the Small Messages feature new in BlazeDS as well.

What about the product Adobe LiveCycle Data Services product? We'll be offering a LiveCycle Data Services, Community Edition as a subscription offering that includes certified builds of BlazeDS, enterprise support, additional developer support, and may contain additional benefits, such as product warranty and infringement indemnity.

The commercial version of the product, LiveCycle Data Services ES, includes enterprise class capabilities for building advanced customer engagement applications. We haven't yet announced the feature set for the next version of LiveCycle Data Services ES, but a private Beta program begins early next year, and we're very, very excited about it.

Also note that with today's announcement, there are new Beta versions of Adobe Flex and Adobe AIR also available from Adobe Labs as well.

Why is this important?

Organizations are using RIAs to more effectively engage with customers, partners and suppliers across their extended enterprises. This has dramatically increased the requirements for better data connectivity options to back-end systems, improved data transfer performance, and a consistent and simplified programming model for exchanging data between clients and servers.

Contributing the BlazeDS data connectivity technologies to the open source community makes them accessible to all developers, and the documentation of the protocols opens them up for other implementations on non-Java back ends. This enables developers to extend the reach of their applications across different server technologies in a compatible and consistent approach, thereby accelerating application development and increasing application performance.

What is BlazeDS?

Previously available only as part of LiveCycle Data Services ES, BlazeDS is the Remoting and HTTP-based Messaging technology that Adobe is contributing to the community free and open source.

  • Easily connect Flex and AIR applications to existing server logic.

  • High performance data transfer for more responsive applications

  • Real server push over standard HTTP

  • Full pub/sub messaging that extends existing messaging infrastructure

  • Free and open source

What is LiveCycle Data Services, Community Edition?

LiveCycle Data Services, Community Edition allows organizations to take advantage of open source BlazeDS, but with all the trust and Adobe backing required for business-critical applications.

  • Includes access to the latest BlazeDS technology as it is tested and released, as well as patches, bug fixes and upgrades to newer releases

  • Also includes product warranty, infringement indemnity, additional enterprise and developer support

  • Subscription pricing will be announced at the time of general release of BlazeDS under the LGPL v3, currently scheduled for early 2020.

What is LiveCycle Data Services ES?

LiveCycle Data Services ES is the commercial version of the product for enterprise-class applications that require data synchronization, offline support for Adobe AIR, portal integration, RIA integration with LiveCycle Enterprise Suite business processes and document services, as well as more advanced deployment options for maximum salability.

A good example of the capabilities added with LiveCycle Data Services ES is the recently announced win with NATO for its new Mission Support System.

NATO crew members will be able to put together mission briefs aggregated from over 80 different data sources, including information such as flight numbers, details about the region and routes to take refuge in case of an emergency. Mission briefs are highly visual electronic maps that show all the information they need to analyze, develop and deliver in preparation for a mission.

Pricing for LiveCycle Data Services ES starts at $6,000 per CPU.

Open is Good!

This announcement builds on Adobe’s commitment to open technology initiatives and its support for a vibrant developer community.

Examples include open source Flex (announced in April 2007), contribution of source code for the ActionScript Virtual Machine to the Mozilla Foundation under the Tamarin project, the use of the open source WebKit engine in Adobe AIR, and the release of the full PDF 1.7 specification for ISO standardization.

BlazeDS source code, builds and licensing will be hosted by Adobe, along with an open planning process that includes the publication of specifications for review and comment by the community. Contributions to the BlazeDS technologies will be encouraged initially through the public bug database, including feature requests and a community voting system. Over time, Adobe plans to promote external contributors to “committer” status, allowing them to contribute code to the source tree.

What is Remoting?

BlazeDS remoting provides a call and response model for accessing server-side Java objects and ColdFusion components from Flex or Ajax applications as if they were local objects. BlazeDS integrates with the existing Java security policies on the server and provides transparent data transfer between ActionScript and Java data types, including data structures that use Java 5 enumerations.

By freeing developers from writing tedious marshalling code, remoting saves developers valuable time, and the use AMF, a binary data transfer protocol natively supported by the Adobe Flash Player, can improve data transfer performance an order of magnitude compared to XML/SOAP.

What is Web Messaging?

The web messaging service in BlazeDS provides support for publish and subscribe messaging over HTTP using standard protocols, concepts and terminology.

  • Adobe Flex and Ajax clients receive pushed messages from the server by subscribing to one or more topics.

  • When client or server code publishes a message to one of these topics, it is received by all clients who have subscribed to that topic.

  • >The management of subscriptions and publishing of messages is performed by a messaging adapter.

Adapters are provided for routing messages between Flex/Ajax clients and between Flex/Ajax clients and the Java Message Service (JMS) and ColdFusion. -Developers also can write their own message adapter by writing Java code to perform custom message processing or subscription management.

With BlazeDS web messaging, developers will be able to create real-time collaboration and data push applications for better decision-making and more engaging user experiences, such as guided self-service, live help, performance monitoring, and incident tracking.

BlazeDS introduces a new HTTP streaming channel that establishes a persistent connection between client and server for true data push

What is AMF?

"AMF" stands for "Action Message Format", and is a compact binary format for data serialization/deserialization and remote method invocation.

A key feature of this format is that it preserves the entire graph of data without duplicating identical objects. Object encoding controls how objects are represented in AMF. Flash Player uses AMF to enable efficient communication between Flash Player and a remote server. AMF encodes remote procedure calls into a compact binary representation that can be transferred over HTTP/HTTPS. ActionScript objects and data values are serialized into this binary format, which is generally more compact than other representations, such as XML.

Data delivery performance when using AMF is up to 10 times faster than applications delivering data payloads using plain XML over HTTP or web services. As data size increases the performance benefits of using BlazeDS increase exponentially. AMF improves performance by dramatically compressing the size of data transferred and parsing binary data into objects in memory far more efficiently than parsing XML data.

How does BlazeDS relate to Adobe’s RIA technologies?

BlazeDS is an integral part of Adobe’s RIA technologies, including best-in-class tools, servers, services and runtime environments, that allow designers and developers to create engaging application experiences that run on more platforms and devices than any other technology.

The combination of open source Flex and BlazeDS dramatically reduces the time it takes for developers to build responsive RIAs.

Damon

Comments

Hi Damon,

Could you clarify things about LCDS Data Management facility. As I understand I was able to use LCDS Express Edition for free when I don't use clustering. So for one server I could use FDMS for free.

Now it seems that I has to pay 6000$ to use FDMS. Am I correct?

For us is very important question since in the case prices were changed we will move to Granite Data Services.

Den


Hey Den, no worries...I should have included that in the FAQ:

LiveCycle Data Services ES "Express" is unchanged in all of this. It continues to be free for deployment on a single CPU, correct.

Sorry for the confusion!

Damon


Good news. Thanks, Damon!


Hi Damon, Can ColdFusion consume AMF calls?

MD


Mark, yes, CF can "talk" AMF already: when you use Flash or Flex Remoting to call a public CFC method, that's what's being used over the wire.

Any AMF "client" could involke CFC's using AMF to CF.

Damon


Hello,

Following two release candidates, the final Granite Data Services 1.0.0 release is available for download on Sourceforge: http://sourceforge.net/project/platformdownload.php?group_id=183386. Documentation has been updated and now covers all new features available in GDS 1.0. Browse it here: http://www.graniteds.org/confluence/display/DOC/.

Here is a brief list of the main changes since the 0.4 version:

* Data Push (Gravity): this new feature is implemented as AMF3 data sent over HTTP (Comet, freely based on the Bayeux protocol). * Spring integration is now complete with full support of Acegi security. * Seam integration is new and experimental feature in GDS 1.0. A sample application is available. * Guice/Warp integration is new and experimental feature in GDS 1.0. A sample application is also available. * Gas3 (the ActionScript3 code generator) gives better performance and brings support for Java Enum types and all kind of Ejb3. * Flex3 beta3 compatibility: GDS 1.0 is fully compatible with Flex3 beta3.

Complete release notes is available in documentation. See more on http://www.graniteds.org/confluence.

Regards, Franck Wolff.


Franck -- I don't have any clue how to do a data push from Java (or receive from a Flex client). Can't find a single example. Only examples I see are Flex client to Flex client... which isn't very useful except for the most basic chat program possible. What the heck? More examples or documentation coming I hope? And of course, Sun's JMS documentation seems barely relevant and almost impossible to follow anyway, thanks for that Sun!


Hi Damon -

Can I transfer real-time data using Flex3/Blaze DS & AMF3 using HTTP/HTTPS, without having a persistent RTMP connection?

I may also be interested in pushing data one way from server > client using Blaze DS and HTTP.

Thanks, Theron


Theron,

BlazeDS offers several options for moving data from the server to clients over HTTP (simple polling, long-polling and streaming). There's an overview here: https://dcooper.org/?mode=entry&entry=8E1439AD-4E22-1671-58710DD528E9C2E7

And additional details here: http://livedocs.adobe.com/blazeds/1/blazeds_devguide/help.html?content=messaging_framework_2.html

LCDS 2.6 (currently in beta) includes support for non-blocking long-polling and streaming over HTTP using custom NIO-based AMF and HTTP endpoints. These are disjoint from the servlet container's request handling pipeline (so different sessions) but have the advantage of non-blocking IO so they can scale to much higher numbers of connections than is possible with BlazeDS.

Best, Seth