JRuby on Rails でエンタープライズ Ruby (高井 直人)

スピーカー
高井 直人 - recompile.net
プロフィール
ソフトウェアエンジニア。1977年横浜生まれ。Java EEやRubyといったオープンソース技術を活用したウェブサイトの企画、構築、運用などの分野で活躍中。
講演時間
10:30〜11:00
講演者による資料
http://recompile.net/rubykaigi2007/enterprise_ruby_with_jruby_on_rails.pdf
http://recompile.net/2007/06/rubykaigi2007.html
rubykaigi_biz2.jpg

自己紹介

  • 普段はJavaとかRubyとかでSIしてます
  • JRubyのサポートのプログラムを書いています

今日の発表について

色物投入しようと思いました。

「Enterprise Ruby(笑)」ってタイトルにしようかと

  • Introduction to JRuby
  • JRuby on Rails
  • GoldSpike
  • Grizzly on Rails
  • Enterprise Integration with JRuby

昨日のJRubyの講演を聴いたひとどれくらいいますか?(会場ほとんど挙手)

ほとんどの人が聞いてますね。それでは今日の目玉は日本語でしゃべるということでwww

Introduction to Ruby

Version 1.0がリリースされました(拍手)

  • Pure Java
  • Ruby 1.8.5相当
  • Java support
    • Threading
    • JIT(Java classにコンパイル)

JavaをJRubyから使う例

require 'java'

import javax.swing.JFrame
...

昨日とかぶった><

RubyをJavaに埋め込み

import org.jruby.Ruby;

Ruby ruby =  Ruby.getDefaultInstance();
ruby.evalScript(script);
...

Rubyの構文を使ってDSLとして使える

JRuby on Rails

  • 98%以上のコンパチビリティ
    • RSpecとか変態的なものもいけてる(笑)
  • Rails family
    • WEBrick
    • Mongrel
    • GoldSpike
    • Grizzly

WEBrick

  • Pure JRuby (typo: Pure Java)
  • 遅い

Mongrel

  • JRuby + Java Extension
  • 速い
  • stable

GoldSpike

Servlet APIを使ってJRuby経由でRailsを動かす

Ruby on Rails
JRuby
RailsServlet
App Server
JVM

インストール

  • ビルド
mvn install
  • プラグインとして作られている
./script/plugin install ....
  • warを作成
rake war:standalone:create
  • Standalone mode
rake war:standalone:run

これだけでサーバーが動く

Grizzly on Rails

  • GlassFish :Sunのアプリケーションサーバー
  • NIO framework
  • JRuby support
Ruby on Rails
JRuby
RailsAdapter
Grizzly
JVM
  • SelectorThreadを実装しているRailsSelectorThreadがあって
  • Adapterを実装しているRailsAdapterがあって
  • SelectorThreadはAdapterを参照していて
  • RubyObjectPoolがRailsAdapterとRailsSelectorThreadを参照している

みたいなクラス図

よくわからなかったです。RubyObjectPoolはリクエストごとにRubyのインスタンスを返すみたいです。

なぜJavaでうれしいの?

  • JMXでメモリー、スレッドなどをモニタリングできる

ここでデモのつもりが、「めちゃめちゃ遅いですね><」

  • RCM(Grezzlyに乗ってる)

リソース管理、非同期も出来る

GrassFish

TomcatPHPJRuby
HK2
Grizzly
JVM

SUNはJRubyに本気らしい

ここでデモ

Hello, World!

WEBrick,Mongrelでデモしました。Hello, World!とだけ表示するデモに会場大うけでした。 GoldSpikeはMacで動かなかったそうです。

「すばらしいですね!」の一言に会場拍手

ベンチマーク

C実装のMongrel >>>超えられない壁>>> Grizlly > GoldSpike > Mongrel >>>>>WEBrick

ActiveRecordとJDBCが使える

JDBCはサポートするDBが意外と多いから便利だよ

EJB3

鐘一回鳴ったので「こんなんどーでもいいですね」の一言でばっさり切る講演者。場内爆笑。

デモ

デモはまーいいかwwww

Hello, EJBと出るだけだしww

飛ばす講演者。場内爆笑。

WEBサービスも簡単につくれる

Enterprise Railsって?

ここから本題なんですけど、時間がないですね

Railsはどこがセンスがいいのかというと選ばないこと

JRuby on Rails as Enterprise Glue
  • JRubyにエンタープライズの機能を組み込むのではなくて、すでにあるJavaのエンタープライズの機能を生かしていける
  • JRuby on RailsでEnterpriseのインテグレーションが可能になる
The glass is half empty. or The glass is half full.

まだ半分しか出来ていないではなくて、もう半分も出来てる!

JRubyをよろしくおねがいします。

質疑応答

JRubyのバージョンは?
1.0
遅い理由はどのへん?
わかりません。JRubyのチームにでも聞いて
Grizzlyサーブレットコンテナを介さないということ?

そうです。 サーブレットコンテナを取り去ってJRubyを使えるようにしたものです。

(ロガー:よう)

Last modified:2007/06/16 15:55:02
Keyword(s):
References:[RubyKaigi2007速報ログ]

Login