« 2章.Hello, dRuby (その4) | メイン | [番外]単純な送信時のメッセージパッシングの雰囲気 »

[番外]今までの整理

ひとまず今までのところで学んだことを整理することにしました。

dRubyとは

  1. Rubyのオブジェクトをプロセス間でやり取りするための仕掛け
  2. dRubyは100%Rubyなので、変数が型に縛られないから楽に使える。IDLとかもいらない
  3. dRubyはプロセス間通信の仕組み自体もRubyで書かれているので、OSに依存しない

dRubyの仕組み

  1. URIに対してひとつのオブジェクトを紐付けられる
  2. 複数のプロトコルを扱える。デフォルトはDRbTCPSocket。自分で追加も可能
  3. URI文字列のパースや、メッセージをやり取りするときにProtocol関係のオブジェクトへ委譲されるため

  4. サーバー側でどんなオブジェクトを公開してようとも、クライアントが扱えるリモートオブジェクトは常にDRbObject
  5. DRbObjectを使った呼び出しであっても、自分自身がサーバー側であれば、ローカルのオブジェクトのメソッドを直接呼ぶ
  6. DRbObjectのmethod_missingからリモート呼び出しをしている
  7. メッセージの送受信を実際に行っているのはDRbMessage
  8. サーバーへの接続はDRbConnによってプールされ、接続の確立にかかるコストを抑えている

まだわからないところ

  1. puts00でサーバー側のPutsからクライアント側の@stdoutに出すにはどうしたらいいの?
  2. サーバー側は、マルチスレッドで並列にメッセージを処理している?
  3. まだmain_loop内を見ていないのでわからない
  4. fetch_serverのfriendって何?どういうときに使われるの?
  5. 通信時のMarshalを使った仕組みの詳細
  6. プールのところにある#FIXMEがなぜFIXMEなのか
  7. URIのoption引数の使い方、というか使われ方

トラックバック

このエントリーのトラックバックURL:
http://www.grandnature.net/bin/mt-tb.cgi/55

コメントを投稿

About

2007年09月11日 09:42に投稿されたエントリーのページです。

ひとつ前の投稿は「2章.Hello, dRuby (その4)」です。

次の投稿は「[番外]単純な送信時のメッセージパッシングの雰囲気」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。