Using JRuby as the Secret Sauce by gyq81223

VIEWS: 191 PAGES: 43

									  Rails on Spring
Using JRuby as the Secret Sauce

        Brian Sam-Bodden

 The State of Java and JEE

Ruby on Rails to the Rescue

 Ruby makes Rails possible

  The Spring Framework

    JRuby - Ruby on Steroids

          JRuby on Rails

JRuby for Rapid Spring Prototyping

    JRuby on Rails and Spring
The State of Java and JEE
           Java & JEE

     the most prevalent language

the most complete enterprise platform

 a rich ecosystem of web frameworks

  a vibrant open source community
               Java & JEE

   plagued by mediocre web frameworks

    not well suited for rapid prototyping

in need of a dynamic language web framework

one level of abstraction too low for the web
Who could help Java on the Web Tier?
   Ruby on Rails

a revolutionary web framework

   complete MVC solution

       fast prototyping

     killer AJAX support
       Ruby on Rails

         a DSL for the web

leading the pack on the web 2.0 front

born from a product, not a committee

  a vibrant open source community
Ruby makes Rails possible
     ✓Elegant                        ✓General Purpose

✓ Multi-paradigm
                   Ruby                    ✓   Interpreted

    ✓Reflective                             ✓Dynamic

                   ✓   Garbage-collected
The Spring Framework
 A breath of fresh air for Java
     The Spring Framework

      is a layered Java/J2EE application framework

        is a lightweight IoC and AOP framework

         is one level of abstraction up from JEE

is the leading framework to build enterprise applications
 The Spring Framework

      let’s you use all of the power of JEE

     integrates seamlessly with Hibernate

POJO-based development keeps your code clean

     harnesses the power of IoC and AOP
The Spring Framework

  Spring 2.0 supports dynamic languages

 support for JRuby, Groovy and BeanShell

beans can be backed by dynamic languages

        scripted MVC controllers
Ruby on Steroids

100% pure-Java implementation of Ruby

        brings Ruby to the JVM

started in 2002, now under Sun’s auspice

open source with a growing community

call Ruby from Java or Java from Ruby

    lots of sub-projects emerging

better scalability with native threading

       native unicode support

specialized JRuby offerings are appearing...
The good gets better
      JRuby on Rails

the agility of rails - the scalability of Java

 JRuby likely to surpass Ruby in speed

sneak Ruby and RoR into the enterprise!
JRuby on Rails
JRuby on Rails
          JRuby on Rails

       JEE servers are good at scaling up

      no more multi-process management

         use JRuby “multi-VM” support

leverage the maturity of the JVM and JEE servers
  JRuby on Rails
 deploy your Rails app as a WAR

leverage JDBC from ActiveRecord
       For Rapid Spring Prototyping way of sneaking Ruby in through the back door
       JRuby+Spring RAD

      a simple example by the folks at jobster

          use JRuby for rapid prototyping

Spring controller that delegates to a JRuby controller

      JRuby controllers live alongside your JSPs
JRuby+Spring RAD

   Simple JRuby controller
    JRuby+Spring RAD

JSP view provides input to the Ruby controller
    JRuby+Spring RAD

JSP view provides input to the Ruby controller
 JRuby+Spring RAD

   this experimental library supports:

✓access to Spring beans from JRuby code
    ✓ access to Hibernate queries
The Perfect Pairing
  for a Java Shop
 JRuby on Rails + Spring
           JRoR on Spring
         Chris Nelson’s work

            ✓use rails-integration plugin
✓ expose WebApplicationContext in a RoR controller
      ✓include Spring - Spring plugin for JRuby
              JRoR on Spring
✓install goldspike rails-integration plugin on you JRoR app

 ✓ rake war:standalone:create to package a WAR with:
       ➡Your RoR app
        ➡JRuby and Rails libraries
   JRoR on Spring
rake war:standalone:create in action:
    JRoR on Spring
generated WARs work on many servers:

    ✓Tomcat        ✓Glassfish
     ✓Jetty          ✓JBoss
JRoR on Spring
✓   add Chris’ Spring module:
           JRoR on Spring

✓ Expand the generated   WAR

✓Add Spring application
   ➡ Application Code
   ➡ Libraries (Jars)
   ➡ Config Files
          JRoR on Spring
✓   access your Spring beans from a RoR controller
          JRoR on Spring

   ✓add a new face to your Spring applications
 ✓   leverage thousands of open source projects

✓leverage the good parts of JEE like JDBC and JMS

                  JRuby Rails Integration

         RAD Spring Prototyping with JRuby

                    Chris Nelson’s Work
Books by Integrallis

 Yes, they are all Java books :-(

To top