With the big announcement of the release of open source BlazeDS on Labs, ColdFusion users have been trying to figure out which option is better for them – the full LiveCycle Data Services (LCDS) which is included with ColdFusion 8, or the new open source BlazeDS option.
BlazeDS is, for the most part, a subset of the full LCDS. It supports remoting and messaging, and it can be used with ColdFusion. And it’s free. However, BlazeDS does not support data management (including the data synchronization functionality) which is one of the most appealing aspects of LCDS for ColdFusion users.
ColdFusion 8 can be installed with an embedded LCDS engine. If a license is provided then it is a full LCDS implementation, otherwise it is LCDS Express which has a single CPU license restriction.
So, should ColdFusion users stick with the integrated LCDS or use the new open-source BlazeDS?
If all you need is messaging (the ability to push from ColdFusion to the client), then BlazeDS may be a better option, if for no other reason than there is no license to worry about. But, if data management is important then LCDS is the better option.

25 thoughts

  1. Hi Ben – this is great news, a quick question, if I may – how is the performance of Blaze versus the express version of LCDS (or the full version of LCDS minus the additional features, that is).
    Also, is it possible (or recommended) to have goth Blaze and LCDS express configured on the same (enterprise in my case) CF 8 server? For example if you want to take advantage of some of the data management you mentioned in your post with LCDS express, but just push data to the client with blaze.
    Cheers,
    David

  2. Hi Ben
    The post doesn’t make it particularly clear to me what the huge advantage of LCDS over Blaze is. Blaze can push data, great. But data synchronisation and data managemeht are two of those big terms that don’t necessarily mean much to the great unwashed (people like me). Does it mean data synchronises between clients? Between the fornt end and back end? Is there a simple block diagram example of why it would be important. Have I missed this in a previous post?

  3. David, BlazeDS and LCDS can’t co-exist in the same CF instance server but you can always deploy them in differnet instances.
    Everything Blaze has is in LCDS, except for the new HTTPStreaming Channel. Of course, Blaze doesn’t suffer from the LCDS Express cpu restriction.

  4. I will second the request for an "overview" of the benefits and features of LCDS and Blaze for CF/Flex developers, if you would be so kind.

  5. Ben,
    At the Flex3/AIR meeting in Raleigh, I was a little surprised when I asked about using BlazeDS with Coldfusion and you said if you’ve got CF8 you don’t need BlazeDS because CF8 comes with a full version of LCDS. That’s the part that surprised me.
    But I see now that the included version *IS* the express version, which does me no good because our server is a two CPU machine. Therefore, I cannot use the LCDS that is included with CF8.
    So, if I want server push and I don’t need data management, BlazeDS is my free option, and buying a non-express version of LCDS is my cash option.
    Right?

  6. Rick,
    Blaze gives you two things for the most part, 1: Flash Remoting, 2: Messaging. The former is not a real benefit for CFers as Flash Remoting is baked right inside of CF already. Messaging though can indeed be used. LCDS offers more functionality than BlazeDS does, including data management and data synch, and if you need those then you need LCDS and not BlazeDS. If all you want is messaging, the ability to push to a client, then yes, BlazeDS is a better option because of the license.
    I hope this better explains it.
    — Ben

  7. Hi Ben,
    I am trying to use BlazeDS under CF8 default aoolication server and this is not working for me, it is not sending back the messages, do you have any document or any tutorial to how to set up and use under CF server? I tried it on different forums and googled it as well with no luck.
    I am stuck, could you please give me some tips on this?
    Thanks
    Philip

  8. Hi Ben,
    I developed a chat application using the following.
    – Blaze DS turnkey 3-0-0-544
    – the embedded Tomcat server with Blaze DS turnkey.
    While sending message I am getting the following error.
    Channel.Security.Error error Error #2048:
    Security sandbox violation:
    http://servername/apache2-default/chat.swf
    cannot load data from
    http://sez-ws-19:8400/blazeds/messagebroker/amfpolling. url: ‘http://sez-ws-19:8400/blazeds/messagebroker/amfpolling’
    I am compiling the application using the following xml file.
    -services "C:blazeds_turnkey_3-0-0-544tomcatwebappsblazedsWEB-INFflexservices-config.xml" -locale en_US
    In the services-config.xml, the Channel definition is given as
    <channel-definition id="my-streaming-amf" class="mx.messaging.channels.StreamingAMFChannel">
    <endpoint url="http://sez-ws-19:8400/blazeds/messagebroker/streamingamf&quot; class="flex.messaging.endpoints.StreamingAMFEndpoint"/>
    </channel-definition>
    <channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
    <endpoint url="http://sez-ws-19:8400/blazeds/messagebroker/amf&quot; class="flex.messaging.endpoints.AMFEndpoint"/>
    </channel-definition>
    <channel-definition id="my-secure-amf" class="mx.messaging.channels.SecureAMFChannel">
    <endpoint url="https://sez-ws-19:8400/blazeds/messagebroker/amfsecure&quot; class="flex.messaging.endpoints.SecureAMFEndpoint"/>
    <properties>
    <add-no-cache-headers>false</add-no-cache-headers>
    </properties>
    </channel-definition>
    <channel-definition id="my-polling-amf" class="mx.messaging.channels.AMFChannel">
    <endpoint url="http://sez-ws-19:8400/blazeds/messagebroker/amfpolling&quot; class="flex.messaging.endpoints.AMFEndpoint"/>
    <properties>
    <polling-enabled>true</polling-enabled>
    <polling-interval-seconds>4</polling-interval-seconds>
    </properties>
    </channel-definition>
    The Application path is D:ProjectsGlasnostchat
    The Root URL of the application "http://sez-ws-19/&quot;.
    Can you please provide a suggestion how to compile the application in the local and make it run in the linux server.
    Anil

  9. Hi,
    I built a chat application using flex and blaze ds.I have one more requirement in the application,"File Transfer".I want to know whether is it possible to transfer the files from one application to another using the blaze ds server.

  10. Hi Anil,
    You want one person to be able to send a file to another person? You would have to build that yourself. BlazeDS wouldn’t be of much use but the servlet container it runs in could be used to handle the upload and download.
    -James

  11. Hi Anil,
    This is just standard Java web application security contrainsts. Reference your app server’s documentation and look for "security-constraint".
    -James

  12. Hi,
    I have an requirement in my application.Please consider the following scenario,
    A user is alloted a 5MB disc space.The user cannot exceed the space limit.The used space is kept in a Table.For each insertion,delete and updation we have to check whether the user exceed the space limit and update the disc space to the DB.How can I sort out this? Should I take the disc space from the DB to the Flex and check before insertion?
    Is there any other feasible solution, can you please help me to sort this out.

Leave a Reply