views:

689

answers:

2

In my company, we are going to use Flex3 for the presentation layer of a new financial web application and Spring for the business layer but a debate is still going on regarding the best messaging/remoting technology. Can you share your own experiences in terms of pros and cons of using one or the other technology?

A: 

BlazeDS supports real-time message streaming over AMF and HTTP. But the limitations of the number of clients it can handle are lower than the more efficient RTMP of Adobe LiveCycle ES. You can always switch to LiveCycle later if you need the performance boost, but there is a price tag involved (don't know how expensive it is).

rlovtang
My biggest cons to Flex compared to regular HTML/CSS/JavaScript development is the extra compile phase. Every extra second it takes to see the result is a big disadvantage in frontend development.
rlovtang
+5  A: 

In my experience, use BlazeDS unless you need to use web services which a variety of technologies can access.

BlazeDS

Pros: Less server intensive, less client parsing time, smaller data package (it's binary), meaning it's overall a faster call. Can do publish/subscribe as well as method invocation.

Cons: Not compatible with non-Flex front ends (although it's open source, so in theory, it could be.)

Webservices

Pros: Well established, pretty much cross platform. Easy to read and translate issues.

Cons: Much more verbose. If you use the internal translation of XML to AS Objects, the client has to do some intensive parsing. If you use the objects as XML, encapsulation will be weakened (objects outside of the call would have to know detailed information about the XML object, meaning refactoring can be problematic.)

For a good comparison on actual databases with actual numbers, see James Ward's Census application.

stevko
I agree with stevko. And thanks for linking to my Census app. :)Usually I recommend that you only use web services when you don't control the server-side and all it offers is web services. Otherwise BlazeDS is the clear choice. Also just because you use AMF remoting doesn't mean you can't also provide a web services end point for 3rd party integrations.
James Ward
Indeed, if you have well-defined service layer you can easily expose parts of both with BlazeDS and a web services engine such as CXF.
cliff.meyers