私が主な目的は、データベースからデータを取得UIに表示、ユーザー入力に取り、戻ってデータベースにそれらを書くことで、Webベースのアプリケーションを開発していますに階層の数を決めます。このアプリケーションは、どんな工業的強度のアルゴリズムのクランチングもやっていないでしょうが、ピーク時(以下に記載)に非常に多くのヒットを受け、その日に変化します。のn層アプリケーション
プレゼンテーション、ビジネス、データデータレイヤーは、データベースサーバーによって処理されます。ビジネス層には、tcpを介してデータベースサーバーにアクセスするためのDALコンポーネントが含まれます。私は階層に、これらの層を分離しなければならない選択肢は次のとおりです。
プレゼンテーションとビジネス層は同じか 層に保つことができます。
単独で別の層のプレゼンテーション層とそれ自身で別の層の 層を表示します。
選択肢2の場合、ビジネスレイヤーは、httpまたはtcp上のWCFサービスを使用してプレゼンテーションレイヤーによってアクセスされます。
私は、ビジネス層の上に行われている任意の重い処理が表示されていないので、私はオプション上記1に傾いています。私はまた、新しい層を追加すると同じ理由で、ネットワーク遅延を導入するだけで感じる。しかし、スケールアップが必要な場合やスケーラビリティの観点から、どちらの方が良い方法ですか?このアプリケーションでは、1時間に最大600万人のユーザーをサポートできる必要があります。各ユーザセッションには、ユーザの嗜好やその他の詳細を格納する妥当な量のデータが存在する。私は、単純なCRUD Webアプリケーションについて話すとき、私は本当に長期的「n層アーキテクチャ」を好きではありません... ..だけでなく
こんにちはジョシュ、私は – user20358
user20358 @私の答えが残って...私の質問私はちょうど私が本当に別のサーバー上の「アプリケーション層」を持つべき理由について、別の意見を望んでいた:)申し訳可能にする...必要はありません更新同じ。 stackoverflowがどのように構築されているか考えてみてください。あなたは同様のトラフィックを予想していますか? 1時間にどこで6Mのユーザーを獲得しましたか?より多くのコンポーネントではなく、より多くのサーバーで拡張できます。 redisのようなキャッシングを使用します。異種コンポーネントの統合など、n層が必要な場合もあります。しかし、最初からすべてを構築しているのであれば、それは起こりそうにありません。 –
はい、私は数字がクライアントによって私たちに与えている(私はこのプロジェクトのための非開示ブツを締結している)アプリケーションについてはあまり詳細には行かず...類似しない場合より期待しています。ビジネスレイヤー処理の合理的な量で、それはあまりにも過激ではないと同時に過酷なアプリケーションですが.. – user20358