統計分析をテーマにe-Learningサイトを公開している。URLは
http://nisiyama2.ih.otaru-uc.ac.jp/elhome/Main.html
なのだが、あまり多数が同時にアクセスすると直ぐに満杯になると思う(そんなことは当面ないとは思うが)
このサイトをリニューアルしようと考えている。まず統計シミュレーションには自作のライブラリーを作っていたが、全面的にR(D)COMを利用して、バックエンドでRを起動して計算を行うことに変更した。Rというのは、商用版ではS-Plus等に対応する高水準の統計分析ソフトで非常に有名である。
Visual Studio .NET、2005でASP.NETアプリケーションを開発する場合、参照先としてR (D)COMを追加しておくだけでよい。いま追加だけと言ったが、具体的にはもう少しややこしい。VS .NETから利用するときは、R(D)COMと同梱されているStatConnLib.tlbとStatConnectorSrv.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/
を参照すれば、まず解決できる。
一応、基礎となるルーティンは整ってきたので、UIはFlashで行こうかと編集を始めたところだ。暫く心覚えに役に立つことを書き留めていくつもりだ。
1 件のコメント:
実験用自己レスです。
R (D)Comを参照追加することに関連してですが、Visual Studio 2005では*.tlbファイルを参照追加しようとすると拒絶されますね。私は、tlbimpでdllファイルを作り、それを参照追加しました。うまく行きます。
コメントを投稿