With BlazeDS, you essentially get the Message Service, the Remoting Service, and Proxy Service:
- The Message Service is for publish/subscribe messaging and for pushing messages from the server to clients.
- The Remoting Service is for calling methods on Java objects in your web app classpath from a Flex RemoteObject.
- The Proxy Service is proxying RPC calls to SOAP web services and HTTP services (REST) from Flex WebServices and HTTPServices.
In LiveCycle Data Services, you get everything in BlazeDS plus the Data Management Service and the ability to use model-driven development with the Data Management Service. The Data Management Service automates data synchronization between Flex clients and the middle tier. You can build applications that provide data synchronization, on-demand data paging, and offline capabilities. Additionally, you can manage large collections of data and nested data relationships, such as one-to-one and many-to-one associations. You can use model-driven development to take advantage of advanced Data Management Service features without writing Java code or configuring services on the server. Here's some intro info on the Data Management Service:
- In BlazeDS, all message endpoints are servlet-based. LiveCycle Data Services provides NIO HTTP and RTMP endpoints for far greater scalability. Here is some info that discusses the advantages of NIO-based endpoints over servlet-based endpoints:
- LiveCycle Data Services also adds advanced message handling features not found in BlazeDS, such as reliable messaging and adaptive data throttling:
There are other features in LiveCycle Data Services not in BlazeDS, but for the things you mentioned you are interested in, these are probably the most significant.
Hope that helps.