Granite Data Services 1.0.0 RC1
Granite Data Services (GDS) is a open source alternative to Adobe® LiveCycle® Data Services for J2EE application servers that provides a framework for Flex 2/EJB3/Spring/Pojo application development over AMF3. Recently GDS has been released in version 1.0.0 RC1, with major improvements since the last version. This release candidate introduces data push for Granite, based on Comet, and also enhances Granite's integration with Spring and Seam.
One of the new features in GraniteDS is the use of data push, code name Gravity, which has been implemented using the Comet architecture (http://en.wikipedia.org/wiki/Comet_%28programming%29) and is working on Tomcat6 and Jetty6 containers. The data push uses Tomcat's CometProcessor (http://wiki.apache.org/tomcat/WhatIsComet) and Jetty's Continuation (http://docs.codehaus.org/display/JETTY/Continuations), which are experimental implementations as currently is Granite's approach. Nevertheless the feature has a good potential as it uses AMF3 over HTTP to transfer data.
The Flex client uses its own implementations of a Producer and Consumer, org.granite.gravity.Consumer and org.granite.gravity.Producer, but their functionality is similar to LiveCycle Data Services Consumer and Producer: they allow the producer to connect to a destination and the consumer to subscribe to a topic on a destination. Destinations as usual are configured in services-config.xml and, for a messaging destination, a GravityChannel over AMF3 must be configured to enable data push functionalities. More information on the implementation can be gathered from the source code and from the Granite community, before a version 1 documentation is released.
The Granite community also completed Granite's integration with the Spring framework and now supports security issues; Granite integrates with JBoss Seam too (http://www.jboss.com/products/seam), providing a good coverage on the major frameworks in the JavaEE development world. They also announce that their GAS3 java to actionscript code generator also brings extended support for Java Enum.
This release is not final, anyway, but it is possible to try out their samples from http://www.graniteds.org while waiting for the final version to be released.
GraniteDS brings data push to the open source community, but in a different manner than Adobe BlazeDS, which relies on HTTP streaming; we will be able to know more when BlazeDS will release the sourcecode (http://labs.adobe.com/technologies/blazeds/).