InfoQ

News

JRuby brings Rails applications to Glassfish

Posted by Rob Thornton on Nov 20, 2006 01:27 PM

Community
Java,
Ruby
Topics
Dynamic Languages
Tags
Glassfish ,
JRuby ,
Ruby on Rails

It is now possible to deploy Ruby on Rails applications on Glassfish. Utilizing JRuby and its growing support for Rails, Glassfish can now be used as a production platform, allowing a more robust and scalable deployment platform.

Previously, Rails applications were deployed using multiple processes of Mongrel, which required managing all of them, and handling zombie processes. Now, Takai Naoto has detailed the steps to deploying a JRuby on Rails application in Glassfish. Charles Nutter, one of the JRuby leads, describes the benefits of this approach:

The potential here should be obvious. GlassFish, like other Java EE application servers, is extremely good at scaling up many concurrent requests across many independent applications; so good that many organizations deploy only a single appserver-per-machine and stuff it full of applications to serve. That means a single server, a single process to manage. GlassFish also supports clustering, which means you'll be able to hit the deploy button once and have your n-server cluster instantly start serving up Rails. But there's one last area that trumps all the rest:

That single app server can handle as many concurrent requests across as many independent Rails apps as you desire, scaling them across all the CPU cores you can throw at it.

There are some drawbacks to this solution, namely the deployment process. Robert Cooper describes how this loses all the benefits of WAR packaging. He points out that the Java tools are very good and while it is good to have Rails applications running in Glassfish, it should be done in such a way to leverage the existing tools.

WAR-based deployment *will* happen by Charles Nutter Posted Nov 21, 2006 3:15 AM
A bit like PHP in Oracle Application Server by paul browne Posted Nov 24, 2006 7:16 AM
New screencast showing first JRuby app using NetBeans by Arun Gupta Posted Aug 8, 2007 8:42 PM
  1. Back to top

    WAR-based deployment *will* happen

    Nov 21, 2006 3:15 AM by Charles Nutter

    What Cooper fails to understand is that WAR-based deployment *is* the ultimate goal. We've been looking at the problem a lot lately, and by my estimation no Rails appserver deployment model will be complete until there's support for bundling your entire app as a WAR file and deploying it like a standard Java webapp. It may not be here today...but we like to think we're moving pretty quickly. It will be here "tomorrow".

  2. Back to top

    A bit like PHP in Oracle Application Server

    Nov 24, 2006 7:16 AM by paul browne

    JRuby in Glassfish is a bit like PHP in Oracle Application Server. Both allow you to use a non-Java language for rapid Web development, while having a Java 'core' to your application to ensure maintainability. Paul , Technology in Plain English

  3. I released a screencast this morning that shows how you develop your first JRuby app using NetBeans IDE at: http://blogs.sun.com/arungupta/entry/screencast_web6_first_jruby_app This entry also shows how the Rails app can be deployed as WAR on GlassFish.

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.