Wednesday, April 22

The Railo Project, Part I

My center, The Center for Disaster Risk Policy, has for years been using an custom application called Tabletop Exercise System Technology (TEST) to facilitate discussion based tabletop exercises. TEST was written in house, lately by me, in Adobe ColdFusion, utilizing a MySQL database backend. We deploy TEST on a 'server' laptop that is connected via a wireless network to a cache of client laptops that then run the application via a web browser. The application captures particpant responses to scenario information, and formats those reponses to be compliant with the Homeland Security Exercise Evaluation Protocol (HSEEP).

TEST has been used successfully by the center since 2004, and has been evolving ever since. As part of that evolution, we have licensed the software to a private firm, who is now marketing the product across the country. As we anticipate third party users, I started to think about the licening fees we were going have to pay Adobe to use ColdFusion. This led me toward two newer ColdFusion Markup Language servers, Open BlueDragon and Railo. BlueDragon is the older of the two, but it was Railo that I've settled on for our needs.

Railo has been around for a few years, but version 3.1 was released as an open source project just a few weeks ago. It is compatible with almost all of the ColdFusion 8 standards, and includes a few tricks of its own that Adobe's server can't do. For starters, using Railo, you can deploy a CF application as a Java app into a cloud environment. That's pretty exciting, and I can't wait to give that a go.

I downloaded Railo Community server 3.1 and installed it on a Windows 2003 virtual machine. The install started simple, but got more complicated as I configured Railo to work with IIS, not it's own internal web server. Railo is marketed/packaged as a stand alone product, but in fact is a layer that sits on top of Resin, an existing Java server. Once you have everything working properly, you never notice that Resin is there, but getting everything up and running took a little trial and error. More on that in a different post.

Once I had everything running, I installed the TEST codebase on the new server and took it for a spin. A couple fo things needed to be fixed, highlighting the subtle differences between Railo's CF interpretation and Adobe's. All the changes were minor, and fixed with about thirty minutes. Once that was done, the app ran beautifully, In fact, it was perceptibly faster than the Adobe CF server. That was impressive.

I've not had time to play much beyond that, but I'm fairly certain I've purchased my last Adobe CF license. I can see where CF Enterprise may be required in some instances, but Railo has clustering and failover capability built in. Impressive. Our next step here at the Center is do deploy a CentOS server running Apache, MySQL, and Railo. That would allow us to deliver enterprise grade CF apps without paying for any server software. Personally, I can't wait.

More to follow on Railo as we continue our migration, and I fully intend to document how we got it running from scratch, since there was a lack of single source docs on the subject.

No comments: