@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

ASP.netでの開発について

投稿者投稿内容
ぽこぺん
会議室デビュー日: 2006/08/03
投稿数: 3
投稿日時: 2006-08-03 00:55
ASP.netにて次の仕様のソフトウェアを開発する予定なのですが、ソフトウェア構成をどのようにしたら良いか悩んでいます。詳しい方がいらっしゃいましたら、最善の構成を教えていただけないでしょうか。

仕様)
・Windowsサーバ上に常駐EXEを起動しておく。
・常駐EXEでは500MB程度のデータを常にメモリ上に保持する。

自分が思いつく限りでは、常駐EXEをCOM+で開発する。常駐EXEをサービスに登録しておき、ASP.netとやりとりをさせるという方法しか思い浮かびませんでした。

以上、よろしくお願いいたします。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-08-03 01:08
何をやりたいのか詳しいことがわかりませんが。。。
常駐のexeってほんとに必要なんでしょうか。
ASP.NETはサービスとして動くので、ある意味常駐してるのとおなじようなイメージのものを作れると思うのですが。。。

なぜそんなexeが必要なのか、という話がないとどういった構成がいいかの話はできないんじゃないかな。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-08-03 09:30
どっとねっとふぁん さん のおっしゃるとおり、
常駐プログラムに何をさせたいのかといったことの説明が無いと
答えようがないですよね、

ASP.NET から 処理を委譲するのが目的なら、
WebService や .NetRemoting なんかも選択肢にあがってくると思います。
ぽこぺん
会議室デビュー日: 2006/08/03
投稿数: 3
投稿日時: 2006-08-03 23:08
かるあ様、どっとねっとふぁん様、書き込みありがとうございます。

すいません。やりたいことをもう少し明確に書くべきでした。
やりたい事は、1日数10万件のデータを1年間保存して、必要なときにそのデータに単純な計算を施してWeb表示するというようなことです。データの参照速度を速めるために、メモリに保存データのインデックス情報を保持したいと考えています。常駐させたいのは、インデックス情報の保持が目的です。
インポートデータは外付けHDDでインポートします。(不思議な運用ですが。。。)

当初DBを使おうとしたのですが、データ量があまりにも多すぎてDBで出来るか心配だったので、結局バイナリファイルに保存することにしました。

COMを使おうと思ったのは、似たようなシステムを一度開発したことがあるからです。ただ、以前はクライアント側はEXEを使用していたのに対して、今回はクライアントはWebにすることになったため、単純にASP.netと開発実績があるCOMを使用して開発するのが良いのかな?と思ってしまいました。

その他にはインデックス情報だけDBに持つということも考えています。

WebService や .NetRemotingについては全く知識がないので勉強してみます。

[ メッセージ編集済み 編集者: ぽこぺん 編集日時 2006-08-03 23:09 ]

[ メッセージ編集済み 編集者: ぽこぺん 編集日時 2006-08-03 23:11 ]
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-08-04 10:27
> 当初DBを使おうとしたのですが、データ量があまりにも多すぎてDBで出来るか心配だったので、結局バイナリファイルに保存することにしました。

DBでやったほうがいいような気がする。
テストデータつくって試してみることはできないんでしょか。。。
バイナリファイルの扱いのほうがたいへんなよーな。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-04 10:33
引用:

ぽこぺんさんの書き込み (2006-08-03 23:08) より:

当初DBを使おうとしたのですが、データ量があまりにも多すぎてDBで出来るか心配だったので、結局バイナリファイルに保存することにしました。


データ量があまりに多すぎるから、データベースを避けるというのは違和感がありますね。

引用:

COMを使おうと思ったのは、似たようなシステムを一度開発したことがあるからです。ただ、以前はクライアント側はEXEを使用していたのに対して、今回はクライアントはWebにすることになったため、単純にASP.netと開発実績があるCOMを使用して開発するのが良いのかな?と思ってしまいました。


相性に関する情報がない以上、調査不足であると言えるでしょう。
COM と CLR の相性は、最悪だと思って頂いても差し支えありません。

開発実績だけで決定してしまうと、いつまでたっても開発効率の良い新しいテクロノジに触れられません。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2006-08-04 10:36
こんにちは。

読ませていただきましたが、余計わからなくなってしまいました。

「1日数10万件のデータを1年間保存して、必要なときにそのデータに単純
な計算を施」すというようなことは、程度の差こそあれ結構一般的にありえる
業務ですよね(私はそこまで大きなデータは経験ないですが)。そこで「デー
タ量があまりにも多すぎてDBで出来るか心配」という考えに至り「結局バイ
ナリファイルに保存することにしました」と結論が出る過程がちょっと想像でき
ません。

単純に試算して、10万件×365(あるいは366)日=3650万(3660万)件
となるわけですが、逆にこれだけ大きなデータを「DBで出来るか心配」だか
ら「バイナリファイルに保存」となると、ぽこぺんさんの考えでは

 バイナリファイル(自作)>>>>>>(こえられない壁)>>>>>>DB

ということになるのでしょうか。
私としては、そこが信じられないというかわからないというか。
# DBを作ってる人に聞かれたら問答無用でぶん殴られそうです
# と書いてたらどっとねっとふぁんさんも同じ考えを。そりゃそうか。

また、インデックス情報(約500MB)をメモリに持って常駐というのも少し私
の想像の範囲を超えている感じです。例えば突然リセットがかかったらメモ
リ上のインデックスはどうするの?またバイナリファイルを読んで作り直すの?
とか、疑問がいろいろと沸いてくるのですが、ぽこぺんさんはその辺はどうお
考えですか?

まだ実際の開発と言うわけではなく調査段階なのだとは思いますが、もう少
し煮詰めるというか、仕様その他を含めていろいろ方向性を探ってみるのも
大事なのではと思います。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
ぽこぺん
会議室デビュー日: 2006/08/03
投稿数: 3
投稿日時: 2006-08-04 11:53
皆様、ご返信ありがとうございます。

DBで大量データ(1年で400GB)を扱えないとは思っていないのですが、
次のことを気にしています。

・DBにするとインポートデータ以上のHDD容量が必要になる。
・DBはデータ量が多くなると自分でファイル操作するのに比べて
 処理が少し遅い気がする。
 (テーブル設計を上手くすれば良いが、それでも限界が。。。)

メモリに保存するインデックス情報はファイルにも保存しておくので、
リセットがかかっても問題ないようにしようとしていました。

処理速度を調査したかったのですが、
あいにく今手元に環境がなく試す事が出来ません。

COMとCLRの相性は良くないというのは、ちょっと想定外でした。
市販本で調査した限りでは「.NETでもCOMは問題なく使える」という事しか
書いていなかったものですから。

皆様に指摘されている通り、いつまでも実績に囚われるというのは
あまり良くないことだと思っています。
DB周りも含めて、調査の幅を広げてみます。

ちなみに、ここで聞く事ではないのかもしれませんが、
DBはMicrosoft SQL Serverでも問題ないのでしょうか。

スキルアップ/キャリアアップ(JOB@IT)