No.3ベストアンサー
- 回答日時:
2階層のC/Sシステムは経験がありませんので詳しくないのですが、クライアントから直接APサーバーのDBコネクションプールは使えないと思います。
APサーバーを立てると3階層のC/Sシステムとなり、クライアントはビュー、APサーバーはロジック、DBサーバーはデータベースの機能分担になります。クライアントとAPサーバー間は、.NET Remotingなどでの通信となります。
2階層システムか3階層システムとするかは重大な決断になります。書籍の購入やコンサルの利用をお勧めします。
私の手元には次の書籍があります。
・発行:日経SBソフトプレス
・Microsoft .NETによるエンタープライズソリューションパターン
システム規模(クライアント数、トランザクション数)が判断するための重要なキーになります。
多くの人が使う場合は、VB.NETでの開発よりもWebシステムの方がシステム構成や開発方法の柔軟性が高いように思えます。
ご回答ありがとうございます!
やはり、APサーバーを立てると、コンポーネント間での通信が必要になりますか。
私も個人的にAPサーバーを立てた3階層のC/Sシステムを調べてみたのですが、2階層の仕組みと比べて、パフォーマンスが落ちるといったような内容(オーバーヘッドが生じるため・・・)をいくつも目にしたものですから、安易に踏み切れない部分がありまして・・・
とくに、「XML Webサービス」は、パフォーマンスが低いと認識しています。やはり、ファイアーウォールを経由しないような、イントラ内のシステムでは、「.NET Remoting」を使用していますか?
> 私の手元には次の書籍があります。
> ・発行:日経SBソフトプレス
> ・Microsoft .NETによるエンタープライズソリューションパターン
ご紹介ありがとうございます。参考にしてみます。
よろしくお願いします。
No.2
- 回答日時:
APサーバーでコネクションをプールすればコネクション数をクライアント数よりも低減できます。
コネクションプール数がDBへの接続数となり、コネクションプールの上限を決めることでDBサーバーのメモリ量を決定できます。
「Oracle上に接続セッションの数が500ある」という状態は、接続されていることを意味しメモリを必要とします。
300同時接続のシステムでは数台のAPサーバーを立てました。システム起動時に業務アプリ実行用のプロセスを立ち上げ、各プロセス毎にDBコネクションを確立する手法を採っております。
新たなコネクションを確立する処理は非常に重いためこのように事前に確立するようにしております。
なお、複数台のAPサーバーを立てる場合は負荷分散機能やダウン切替なども考慮する必要が出てきます。
業務の重要度と開発費用を考慮して、システム設計を決めることが重要です。
ご回答ありがとうございます。
APサーバーをたてるということは、ハード的なアーキテクチャのみならず、アプリケーション自体も通常のC/Sのアプリとは、違った仕組みを採用する必要があるということになりますか?
APサーバーをたててのシステム構築の経験がないので、よくわからないのですが、いわゆる、「n階層アプリケーション」のような、クライアントアプリから、リモートでオブジェクト同士をやりとりさせるような技術(XMLWebサービス、.NET Remoting等)が必要になるのでしょうか?
素人の質問になってしまいますが、そもそも、APサーバーを立てる場合のシステム構成では、クライアントから直接Oracleへ接続するようなつくりは、実現できないのでしょうか?
ご回答、よろしくお願いします。
No.1
- 回答日時:
Oracleの同時接続数500は非常に大きな接続数です。
DBサーバーに大量のメモリを必要とします。500同時接続した場合のメモリ量をOracle社に問い合わせるのが良いと思います。私は100TPSとかなり大きなシステムを設計して来ましたが、オンラインで300同時接続数が最大でした。これで数億円もする高価なシステムになりました。
システム設計では次のデータをまず必要とします。
・利用するクライアント数
・1秒間当たりの最大トランザクション数(クライアント数から算出)
・DBデータの競合する程度
・開発する業務アプリの量
・ハードを含めたシステム開発費用
また、開発効率を向上するために各種のフレームワークが公開されておりますので、気に入った物を選ぶのが良いと思います。VB.NETを対象としたフレームワークはあまり見かけませんが、Javaは多く出ております。
システム規模の拡大に対応するにはAPサーバーを立てたシステムとなります。
さっそくのご回答、ありがとうございます!
やはり、同時接続500というのは、非常に大きい数ですか。。
さらに質問という形になってしまいますが、
同時接続という形ではなく、Oracle上に接続セッションの数が500あるという状態でも、同じようなことがいえるのでしょうか?
つまり、クライアントからのコネクションが各クライアント上で、プールされているような状態です。
(個人的には、APサーバーを立てることによって、クライアントから直接接続するよりも、このコネクションプールの数、および、Oracle上の接続セッションをおさえることができると認識しているので・・・)
ちなみに、syama2006さんは、300同時接続数のシステム構築の際には、APサーバーは、たてましたか?
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
副問合せにLIKE文を使う方法は...
-
バッチファイルで複数フォルダ...
-
子供向けプログラミングのスク...
-
写真のsql文空白をハイフン表示...
-
sqlで質問です。 Aテーブルは店...
-
SQLの中上級者へのレベルアップ...
-
SELECTによる表の変換方法を教...
-
開発対象となるアプリケーショ...
-
質問です。 下記のテーブルとデ...
-
Oracleですがsqlで質問です。 ...
-
sqlで質問です。 Aテーブルの登...
-
sqlで質問です。 Aテーブルの情...
-
SQLの書き方について
-
SQLについて教えて下さい。 主...
-
sqlで質問です。 idを元にidに...
-
oracleで 10,20, 30, というデ...
-
索引作成について
-
googleプレイの履歴で取得とイ...
-
sql(oracle)で質問です。 テ...
-
オラクルゴールドについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
クエリをキャンセルしたいので...
-
ODBC経由の処理が遅い
-
listener.logが肥大化
-
Access→Oracleデータ参照にはAD...
-
VPNでデータベースに接続した時...
-
CSEでDB接続しようとすると...
-
データベースに接続したままの...
-
Oracleで今接続しているセッシ...
-
VPNでの接続速度が異なります。
-
インターネット経由でデータを...
-
ADO接続でのセッションIDとシリ...
-
クライアントPCからのアクセ...
-
OracleからSQLServer参照時の不...
-
Oracleのパラメータ値について...
-
MySQLの接続設定
-
ODBCの通信内容の暗号化
-
PGAとUGA
-
リモート接続について
-
利用可能なODP.NETを教えて
-
異なるOracleサーバ上のテーブ...
おすすめ情報