[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:001728] gphys-remote



堀之内です。

GPhys オブジェクトをサービスするライブラリー GDir と、
dRuby を使ってそれを用いるサーバー&クライアントを含む、
gphys-remote というパッケージをリリースしました。

  http://ruby.gfd-dennou.org/products/gphys-remote/

依存ライブラリーは GPhys と dRuby です。後者は Ruby 1.8 では標準
添付なので、要するに GPhys があれば良いです。なお、本パッケージ
は、将来的には GPhys 本体のディストリビューションに取り込むかも
しれません。(すみません)

サービスの内容は、ローカルなファイルシステムのどこかにルートディ
レクトリーを設定し(デフォルトでは '/' つまり、ファイルシステム
のルートディレクトリーそのもの)、ルート以下のディレクトリーツリー
をアクセス可能にします(但し、読むだけ)。で、その中の GPhys 化可
能なデータを提供するというものです。ついでに README 等のテキスト
ファイルも読めるようになってます。

サーバーは、dRuby を使ってリモートホストからアクセス可能にします。

クライアントはいろいろあり得ますが、とりあえず ftp 風に利用でき
るものを用意しました。対話セッションは irb を用いるので、history 
機能があります。pwd で現在のディレクトリー表示、ls でカレントディ
レクトリーの内容表示、その他 cd や help などが使えます。データが
見つかったら、open で GPhys オブジェクトを開きます。GGraph のメ
ソッドをインクルードしてあるので、GGraph の描画メソッドがフルに
使えます。

dRuby に詳しい方へ: GC 対策はまだしてません。

ftp 風の利用というのは、あくまでそういうサンプルプログラムを作っ
てみたというだけです。サーバーが提供するのは、より一般的なディレ
クトリーのサービスです。

なお、現在西澤君が似たような、しかし、実際のファイルシステムのディ
レクトリーツリーには依らず、むしろ意味ベースでデータをツリー上に
整理するサービスプログラムを作ってます。これは、階層的に整理した
データベース(あるいはネーミングサービス)と言ったところ。二人で 
API を合わせてるので、上記の ftp 風クライアントは、require 行を
一行加えるだけで、西澤君のサービスのサーバーにもアクセスできるは
ずです。

なお、dRuby を生で使ってますので、ファイやーウォールには引っ掛か
るでしょうし、セキュリティー面でも不安があります。これは、SOAP 
サーバーをはさんで解決できればと思ってます。いずれにしろ、多人数
にアクセスさせるためには、入り口で整理するログインサーバーを表に
立てることになるでしょうが、それはまだありません。

dRuby を使ってるので、ソースが短いのが自慢です。サーバープログラ
ムは実質 40 行程度。ftp 風クライアントは、充実した(?)ヘルプメッ
セージもついて100数十行です。

3/25 の電脳 Ruby ワークショップでは、以上に関する話もします。
私の開発に関しては、去年のワークショップの目玉は GPhys のリリー
スですが、今回はこれら、GPhys の応用&発展ということになります。