AdobeStock_455007340

ColdFusion And Data Services – LiveCycle Data Services or BlazeDS?

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 responses to “ColdFusion And Data Services – LiveCycle Data Services or BlazeDS?”

  1. David Avatar
    David

    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. Steve Powell Avatar
    Steve Powell

    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. João Fernandes Avatar
    João Fernandes

    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. Troy Allen Avatar
    Troy Allen

    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. Troy Allen Avatar
    Troy Allen
  6. Ben Forta Avatar
    Ben Forta

    This article was written for Flex 2 and Flex Data Services, so it is a bit dates, but it briefly explains what Data Services adds to CF.
    http://www.adobe.com/devnet/coldfusion/articles/fr_fds.html
    — Ben

  7. Rick Root Avatar
    Rick Root

    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?

  8. Ben Forta Avatar
    Ben Forta

    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

  9. Philip Bedi Avatar
    Philip Bedi

    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

  10. Ben Forta Avatar
    Ben Forta

    The instructions for integrating are included with BlazeDS in the resources/ColdFusion directory. That’s all I am aware of.
    — Ben

  11. Anil(aK) Avatar
    Anil(aK)

    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

  12. James Ward Avatar
    James Ward

    Hi Anil,
    You need to put the SWF file on the same server as BlazeDS. For instance:
    http://sez-ws-19:8400/apache2-default/chat.swf
    Feel free to ask these kinds of questions on the javaflexcoders Yahoo Group.
    -James

  13. James Ward Avatar
    James Ward

    Hi Joe,
    Definitely. Check out this how to:
    http://www.infoq.com/articles/blazeds-intro
    -James

  14. Joe Avatar
    Joe

    Any way around having the SWF file on the same server as Blaze?

  15. Anil Avatar
    Anil

    Hi James,
    Thanks for the reply..
    Now the application is working fie…

  16. Anil Avatar
    Anil

    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.

  17. James Ward Avatar
    James Ward

    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

  18. Anil Avatar
    Anil

    Hi James,
    Thanks for the reply.I have built the file transfer application.
    Thanks

  19. Anil Avatar
    Anil

    Hi,
    Can we deny the permission to access the blazeds through the URL installed in the live server .
    Thanks

  20. James Ward Avatar
    James Ward

    Hi Anil,
    Yes, you can use the web.xml security constraints to deny permission to accessing blaze resources.

  21. Anil Avatar
    Anil

    Hi James,
    Thanks for the reply.
    Anil

  22. Anil Avatar
    Anil

    Hi James,
    could you please tell what are the steps needed for setting the security constraints.
    Anil

  23. James Ward Avatar
    James Ward

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

  24. Anil Avatar
    Anil

    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