从网站性能的角度来看,DTO的优缺点是什么?

时间:2008-09-18 22:11:45

标签: performance java-ee ejb rpc dto-mapping

从网站性能角度来看,DTO的优势和劣势是什么? (我正在谈论在不同的应用服务器上访问数据库到Web服务器的情况 - 并且Web服务器可以直接访问数据库。)

1 个答案:

答案 0 :(得分:3)

DTO不是性能问题。我认为您所询问的是分层的性能影响。特别是,在Web层(Web服务器)和数据层(数据库服务器)之间使用应用程序层。

通常,其含义是延迟增加(您有额外的网络往返),但通过在机器之间分配负载可以获得一些额外的容量。

人们会这样做的另一个常见原因(同样是非性能)是允许他们将Web服务器放在DMZ中,同时将应用程序和数据库服务器保留在防火墙内。

另一个潜在原因(非性能)是能够在单个应用程序之上插入多个UI。我已经在过去的项目上做了很好的结果(业务需要它)。

另外,不要低估维持这种性质的架构所需的工作。它比非分层解决方案更有效,所以只有在您预计需要时才使用它。

话虽如此,使用DTO并不需要使用Tiering。

我发现分层的最佳描述来自Martin Fowler的书“分析模式”。应用程序外观和分层后面有一小部分。

重申之前的回答,DTO不是性能问题。它只是一个没有用于在应用程序的各个部分之间提供隔离的方法的类。

我还建议学习Martin的另一本书“企业应用程序架构模式”。那里记录了DTO“模式”。