2007年9月17日月曜日

今回のリニューアル

統計分析をテーマにe-Learningサイトを公開している。URL

http://nisiyama2.ih.otaru-uc.ac.jp/elhome/Main.html

なのだが、あまり多数が同時にアクセスすると直ぐに満杯になると思う(そんなことは当面ないとは思うが)

このサイトをリニューアルしようと考えている。まず統計シミュレーションには自作のライブラリーを作っていたが、全面的にR(D)COMを利用して、バックエンドでRを起動して計算を行うことに変更した。Rというのは、商用版ではS-Plus等に対応する高水準の統計分析ソフトで非常に有名である。

Visual Studio .NET2005ASP.NETアプリケーションを開発する場合、参照先としてR (D)COMを追加しておくだけでよい。いま追加だけと言ったが、具体的にはもう少しややこしい。VS .NETから利用するときは、R(D)COMと同梱されているStatConnLib.tlbStatConnectorSrv.tlbを参照先に追加する。次いで、dcomcnfgを起動してからDCOMの構成からStatConnectorSrvのプロパティを表示し、セキュリティ・タブを選び、<起動とアクセスの許可>にアカウント”ASPNET”ないし”NETWORK SERVICE”を追加しておくことが必要である。XPではASPNETを追加しておけばよいし、私の経験ではWindows Server 2003ではNETWORK SERVICEで支障はないはずである。

こうしておいてプログラム中から

Dim rcom as StatConnector = New StatConnector()

とすれば、Rがインスタンス化されるので、あとは例えば

rcom.EvaluateNoReturn(“x<-rnorm(1000)”)

などと記述していけば、バックエンドで動作しているRを操作することができる。Rで生成した変数にアクセスするには

rcom.GetSymbol(“x”)

とすればよい。但し、.NETでは

Dim x as double

X = CType(rcom.GetSymbol(“x”),Double)

のように型変換が必要となる。

グラフ作成は一時ファイルを保存して、それをWEBページに貼り付けるという単純な方法をとった。保存ディレクトリーをその都度、クリーンアップするのは言うまでもない。今のところ、bmpファイルを貼り付けている。

不明の点は《RCOMホームサイト》

http://sunsite.univie.ac.at/rcom/

を参照すれば、まず解決できる。

一応、基礎となるルーティンは整ってきたので、UIFlashで行こうかと編集を始めたところだ。

暫く心覚えに役に立つことを書き留めていくつもりだ。

1 件のコメント:

shamani さんのコメント...

実験用自己レスです。

R (D)Comを参照追加することに関連してですが、Visual Studio 2005では*.tlbファイルを参照追加しようとすると拒絶されますね。私は、tlbimpでdllファイルを作り、それを参照追加しました。うまく行きます。