1.08.2008

Flex (Now LiveCycle) Data Services: A Beginner's Perspective


I got the chance over the last few months to work on a very cool project that required some pretty advanced (well, complex at least) architecture and abilities. I thought of LiveCycle Data Services and decided to look a little more into what it could do.


First, LiveCycle Data Services is really powerful. It includes four basic services that run as "middleware" (i.e. between the server and client sides). The services are Proxy Service, Messaging Service, Data Management Service, and Remote Object Service. My project only required the Messaging and Remote Object services, and believe me, I really only scratched the surface on these technologies. There are many, many cool things you can do with LCDS.


That being said, I wanted to record here a few thoughts and pieces of advice for others who are just starting to get to know this technology.


First, and probably the most daunting for me, was that you're going to have to get to know Java servers. My experience up until this point had been strictly limited to Windows or Linux running Apache, and even in those areas I was practically a beginner. Believe me, it was quite the task to get to learn Java servers. LCDS comes with an installation of Adobe's integrated Jrun server, which I ended up using, although you can use a number of Java servers (JBoss, Jrun, etc).


Second, and you might have seen this coming, but you'll need to get to know Java itself to a degree. I would say this largely depends on the requirements of the project, but for mine luckily it wasn't too bad. Also lucky was the fact that learning to write basic Java classes really wasn't that bad either. ActionScript 3.0 is a great prep :)


Finally, get to know Google. This is kind of tongue-in-cheek, but there were more than a bunch of times that I ran into a wall with either the server, LCDS or Java in general and I spent a lot of time trying to search for answers. One extremely helpful resource that I referred to a lot was David Gassner's Lynda.com series on Flex Data Services. It's slightly outdated, but still contains a lot of relative and extremely helpful tips on building your LCDS project in Flex. Here's a few things I saved for future reference, maybe they can help you out:


  • If you're getting an error with the server with loading MessageBrokerServlet, try this page

  • If you're having some problems with your server not loading classes, you may want to check your jrm variables on your server

  • For the Messaging service, check this page if you're having trouble with RTMP running on port 2038

  • A common error trying to use MySQL involving a "handshake error" is resolved here

  • When configuring your remote object services (remoting-config.xml), be sure to use different names for a channel and service (i.e. channel = "products" and service = "Products")



Hopefully this helps if you're just getting started with LiveCycle Data Services. Again, I really had a blast with this technology overall and hope to be able to use it again in the future. Feel free to post any useful thoughts or pieces of advice you've come across as well!

Labels: , ,