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

[dennou-ruby:002663] Re: スクリ プト検査



西澤さま、ごとけんさま

堀之内です。

すみません、ちゃんと読んでませんでした。

from 西澤>
> > > > あからさまな穴としては END{ } が使える点でしょうか。
> > > > DOSも防ぎようがないですね。begin raise rescue retry end みたいな。
> > > > フックがあるのは何とかなるのですが rescue みたいなのは
> > > > この方法では手が出せないのかも。
....
> > よくわかってないので、以下、勘違いでしたらごめんなさい。
....
> 僕の解釈も間違っているかも知れませんが、
> DOS攻撃のことを書いてるのだと思っているのですが。
> retryがあるのでぐるぐる回って負荷が上がるということでは?

最初から DOS という文脈で書いてありましたね ^^;

tryruby で無限ループを試してみました ^^;
while(true) ループも begin;raise;rescue;retry;end
も、ちゃんと途中できられました。ループが一定数
以上回ったり、時間がかかりすぎたりすると切られる
みたいです。

> END問題は、
> プロセスを分て、結果は何らかの方法で通信するとかすればよいのかな?

いずれにしてもプロセス(or 最低限スレッド)をわけることは必要と思
います。これを書かなかったので、余計混乱を招いてしまったように
思います。

GPhys は、内部ではいろんなクラスを使ってますから、例えばFile
クラスは禁止となると走りません。そこで、ユーザーが与えた
スクリプトは、なんらか隔離された状況で走る必要があるでしょう。
例えばdruby で交信しながらとか。しかし、よく考えると GPhys で
もなんでも、リモートオブジェクトは全部 DRbObject になるので、
クラスで制限というは破綻しますね。druby を使うなら、開発要素は
ゼロに近くて楽なのですが、webサービスだと大変でしょうか。。。
なお、

> > ruby スクリプトをjavascript のようにクライアント側で実行で
> > きたらだいぶ楽になる

と書いたのも、GPhysオブジェクトはサーバー側にあって、クライアント側
のスクリプトはサーバーと通信しながら走るというのを念頭においてました。
なので、ごとけんさんが「おとしどころ」として書いた、

>>> 自分たちで出来る解としては機能はwebサービスで提供して
>>> クライアントサイドに対してそのサービス用の ruby バインディングを
>>> 用意するというのがひとつの落としどころのような気がします。

と同じようなことのつもりです。ただ、ブラウザー上で動くという。
技術的には web サービスでないといけないのか良くわかりませんが。

> > ところで、西澤君、スクリプトにおけるデータの受け渡し
> > 方法はどうしたらいいんでしょうね。検索された GPhys
> > オブジェクトをどう受け取るか、また、結果をどう
> > サーバーに渡すかですね。メソッドを登録する?
> gphys(or gphysの配列)をうけて、結果のgphysを返すと考えていました。
> 実装方法や、やりたいことによって変るとは思いますが。

はい、そのつもりですが、問題はどう(どこから)受け取って
どう(どこへ)返すか考える必要があるかと思います。
「どこへ」問題については、選択された GPhys 相当のものが
ブラウザーに並んで表示されているのであれば、そこに加え
ることが出来て欲しいですね。「どう」やってといえば、
メソッドの戻り値が GPhys だったらというのが一法ですが、
メソッドでなくメインで対話的に作業していきながら、
可視化してみたいのを add_to_cart(a_gphys) 的なメソッド
でプッシュするのも考えられると思います。

末尾になりましたが、

from ごとけん>
> たいていの解析が出来るというのは結構野望っぽいですが、
> 西澤さんがこれまで gtk で書いたようなツールを
> ウェブアプリケーションにするのが最初のゴールなんじゃないかな
> と思っていました。

はい、全くその通りです。今はその先の野望の話に飛んでましたが、
そっちをちゃんと考えないと、ですね。

-- 
堀之内 武                      horinout@xxxxxxxxxxxxxxxxxx
京都大学生存圏研究所                    phone:0774-38-3812  
611-0011 宇治市五ヶ庄                     fax:0774-31-8463