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
自己紹介
- 普段は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
Tomcat | PHP | JRuby |
---|---|---|
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を使えるようにしたものです。
(ロガー:よう)
Keyword(s):
References:[RubyKaigi2007速報ログ]