2008-09-18 16 views
2

ウェブサイトのパフォーマンスの観点から、DTOのメリットとデメリットは何ですか? (データベースが別のアプリケーションサーバー上でWebサーバーにアクセスし、Webサーバーがデータベースに直接アクセスできる場合は、私は話しています)。ウェブサイトのパフォーマンスの観点から、DTOのメリットとデメリットは何ですか?

+0

DTOとは何ですか? – GateKiller

+0

データ転送オブジェクト –

答えて

3

DTOはパフォーマンス上の問題ではありません。あなたが求めているのは、階層化のパフォーマンスの影響です。特に、Web層(Webサーバー)とデータ層(データベースサーバー)の間のアプリケーション層を使用します。

一般的に、レイテンシが増加する(ネットワークラウンドトリップは余分に増えます)が、マシン間で負荷を分割することで、追加の容量が増えます。

人々が行うもう1つの一般的な理由は、アプリケーションサーバーとデータベースサーバーをファイアウォール内に保ちながら、WebサーバーをDMZに配置できるようにすることです。

別の潜在的な理由(非パフォーマンス)は、1つのアプリケーションの上に複数のUIを接続できることです。過去のプロジェクトでこれをやって、素晴らしい結果(ビジネスが必要な場所)を得ました。

また、その性質のアーキテクチャを維持するために必要な作業を過小評価しないでください。それは、非階層化ソリューションよりも多くの作業を必要とする場合にのみ使用してください。

言われているように、DTOの使用は階層化の使用を必要としません。

ティアリングの最も良い説明は、Martin Fowlerの本「分析パターン」です。アプリケーションファサードと階層化には、背中に小さなセクションがあります。

これまでの回答を繰り返すと、DTOはパフォーマンス上の問題ではありません。これは、アプリケーションのさまざまな部分間の分離を提供するためのメソッドのない単なるクラスです。

Martinの他の著書であるパターンエンタープライズアプリケーションアーキテクチャーを取り上げることもお勧めします。そこにDTOの「パターン」が書かれています。