dRuby入門の発表資料

9月 10th, 2009 admin Posted in Ruby, 未分類 |

9/6のCSNagoyaで発表(LT)をやらせてもらいましたので発表資料を公開させて頂きます。
dRubyってのは分散オブジェクトシステムを簡単に構築することができる仕組みのことです。ネットワークの知識がほぼ不要なあたりなど、ぜひdRubyの威力をサンプルを触ったりして試してもらいたいと思います。

dRuby
View more documents from toyoshi.

いかに簡単かというサンプル

オブジェクトを共有する最小のサンプルをここに紹介します。今回は配列オブジェクトをdRubyを使って共有してみます。
server.rb

RUBY:
  1. require 'drb/drb'
  2.  
  3. foo = ["apple","orange","lemon"]
  4. DRb.start_service('druby://localhost:12345',foo)
  5. puts DRb.uri
  6.  
  7. sleep

このスクリプトを起動すると、配列オブジェクトfooを共有したdRubyサーバが立ち上がります。
そこにirbで接続してみます
$ irb -r drb/drb

RUBY:
  1. >irb -r drb/drb
  2. > r = DRbObject.new_with_uri("druby://サーバのアドレス:12345")
  3. > p r[0,3]
  4. ["apple", "orange", "lemon"]
  5. => nil

オブジェクトが取得できていますね。では本当に共有できているか確認してみましょう。
いまのirbにつづけて

RUBY:
  1. > r.push "melon"
  2. => ["apple", "orange", "lemon", "melon"]

と入力します。そしてもう一つクライアントを立ち上げて

RUBY:
  1. >irb -r drb/drb
  2. > r = DRbObject.new_with_uri("druby://localhost:12345")
  3. > p r[0,4]
  4. ["apple", "orange", "lemon", "melon"]
  5. => nil

melonが追加されているので、オブジェクトが共有できていることが確認できました。

まとめ

・dRubyはとても簡単に分散オブジェクトを体験できる
・Rindaというシステムがあってそれがとても面白い(こっちをもっと紹介したかった)

関連サイト

dRuby I like Ruby
dRubyの作者である関さんのサイト。Ruby会議などで何度か発表を聞かせてもらっていますが、ゆるい雰囲気をもった素敵な方です。dRubyよりもERBのほうが有名ですね。ここに書籍の内容がですぎているのが書籍が売れない理由な気も・・・

dRubyによる分散・Webプログラミング
関さんが著者のdRubyの入門書 通常「幸福の王子本」 読みやすくわかりやすいです。

Leave a Reply