-
Seam Flex Integration
Off late there has been lot of integrations happening between Adobe Flex and other J2EE technologies, Flex-Spring, Flex-POJO, Flex-Hibernate, Flex-Struts and many more which have evolved maturely and have been stable over last two years. But there has been very little work on Flex-Seam integration, Seam is a very robust framework for server side technology but i have hardly seen developers working or talking about Flex-Seam integration. This was quite left topic because RichFaces has been native support with Seam frameworks apart from JSF, and you can pretty much to do a lot with them as you do in Flex except that in Flex you have a single page interaction. Also another reason was the current remoting connectors like BlazeDS or GraniteDS didn’t have AMF serialization implemented for Seam framework. Well this not the case now, major work to make Seam based apps to work Flex based apps has been initiated by Exadel, also now GraniteDS Tide supports Seam based backends and also BlazeDS can be made to work with Seam EJBs . With current introduction of work by developers like Max Katz from Exadel, it is now very much possible to develop and deploy stable Flex-Seam based Apps.
Among all possible scenarios to make Flex-Seam work, I would appreciate Exadel Flamingo connector, for the following reasons:
1. Firstly it helps me build all server side classes required for plumbing the server side with the Flex UI framework.
2. Secondly it uses Maven to work on, which i am very comfortable with and i would say even other J2EE developers would be as it gives the freedom change the structures as we want to.
3. Usually in case of BlazeDS or GraniteDS, we have only two components to work with at client side RemoteObject and Producers/Consumers for AMF remoting. But when working with Flamingo, it just does not provide server side jar files but also an AS3 library SWC file, which when included in your flex project, lets you use some Flamingo Client Side Components like Validator, CallSet, SeamBinding and SeamRemoteobject. What would this mean is you don’t have to right custom classes at your flex side to do things like string validation based on business policy or you wouldn’t have to write wrapper classes for VO.
4. It lets me use either of the protocols AMF or Hessian for serialization. Though we all have been using more AMF for data remoting, giving a try Hessian is worth (but setting it up sometime can be very tricky) also Hessian is light weight. One difference you will notice is that when working with AMF you use remote-config.xml to define destinations but when working with Hessian you will need to define destinations in web.xml.
5. Also i dont think any tool which doesnt save time is a good tool (no matter how extensible and robust it is). So when working with Flamingo i noticed that i had very little to do on coding extra classes to bind data sets, which i think is very crucial at service integration point.
With these few highlights on Flamingo, do check out Max Katz blogs as he is a commandable authority on Flamingo or anything with Seam and RichFaces. Also in coming days i would post a blog on how to start and work with Flex-Seam based projects using both BlazeDS and Flamingo.
