What does BlazeDS Livecycle Data Services do, that

2019-02-25 13:10发布

问题:

I'm doing a tech review and looking at AMF integration with various backends (Rails, Python, Grails etc).

Lots of options are out there, question is, what do the Adobe products do (BlazeDS etc) that something like RubyAMF / pyAMF don't?

回答1:

Other than NIO (RTMP) channels, LCDS include also the "data management" features.

Using this feature, you basically implement, in an ActionScript class, a CRUD-like interface defined by LCDS, and you get:

  • automatic progressive list loading (large lists/datagrids loads while scrolling)
  • automatic crud management (you get object locally in flash, modify it, send it back and DB will get updated automatically)
  • feature for conflict resolution (if multiple user try to updated the same record at the same time)
  • if I remember well, also some improved integration with the LiveCycle ES workflow engine

IMO, it can be very fast to develop this way, but only if you have only basic requirements and a simple architecture (forget SOA, that otherwise works so well with Flex). I'm fine with BlazeDS.



回答2:

The data management features for LCDS described here are certainly valid, however I believe they do not let you actually develop a solution faster. A developer still has to write ALL the data access code, query execution, extracting data from datareaders into value objects. ALL of this has been solved a dozen of times with code generators. For instance the data management approach in WebORB for Java (much like in WebORB for .NET and PHP) is based on code generation which creates code for both client side AND server-side. You get all the ActionScript APIs out of the code generator to do full CRUD.

Additionally, WebORB provides video streaming and real-time messaging features and goes WAY beyond what both BlazeDS and LCDS offer combined, especially considering that the product is free. Just google it.



回答3:

Adobe has two products: Livecycle Data Services ES (LCDS) and BlazeDS. BlazeDS contains a subset of LCDS features and was made open source. Unfortunately NIO channels (RTMP NIO/HTTP) and the DataManagement features are implemented only in LCDS, not BlazeDS.

BlazeDS can be used only to integrate Flex with Java backend. It offers not only remoting services using AMF serialization (as RubyAMF) but also messaging and collaboration features - take a look at this link (http://livedocs.adobe.com/blazeds/1/blazeds_devguide/help.html?content=lcoverview_3.html). Also I suppose that the support is better compared with RubyAMF/pyAMF.

If your backend is JAVA and you want to use only a free product you can also use GraniteDS or WebORB (BlazeDS competitors)



回答4:

Good question. I'm not a ruby guy (i use java with flex), but what I believe differentiates blazeds vs commercial livecycle ds is

  1. Streaming protocol support (rtmp) - competition for comet and such, delivering video
  2. Some advanced stuff for hibernate detached objects and large resultset caching that I don't fully understand or need
    1. support? Might be others but those are the ones I know off the top of my head.