【发布时间】:2011-07-30 18:15:48
【问题描述】:
三层架构和三层架构有什么区别?
【问题讨论】:
-
架构与编程无关?
标签: architecture
三层架构和三层架构有什么区别?
【问题讨论】:
标签: architecture
- 表示层
- 业务层
- 数据层
代码的逻辑分离
如果所有三层都部署在单个系统中,那么它在 3 层架构
即我们也可以说它是单层架构,因为所有 这些层部署在单个系统中。
代码的物理分离
如果所有三层都部署在三个不同的系统中,那么它 采用 3 层架构
即但我们不能说它是 3 层架构,因为它是 物理分离
【讨论】:
在构建网站时,您需要考虑在网站运营的每个级别需要多少计算能力和内存。您还需要考虑站点的安全性、可扩展性和可管理性。出于这个原因,最好将您的站点构建为单独的应用程序部分,作为共享解决方案一起工作。
什么是层: 一层只是运行在同一台服务器上的应用程序划分(或不同的应用程序)。
什么是层级: 层引用作为整个站点或解决方案一部分的应用程序在不同的服务器(或机器)上运行的事实。在这种情况下,您不能在同一台机器上托管多个层,因为根据定义,层是一台单独的机器。可视化(像 VMware 或 Hyper-V 这样的管理程序可以模糊这条线,但为了清楚起见,我们暂时忽略它们)
为什么需要考虑这个? 您的整个网站或解决方案的某些方面在同一台机器上运行良好,而其他方面则不行。一个很好的例子是,随着站点的增长,数据访问层 (DAL) 和数据库 (DB) 使用它们的处理和内存的方式与表示层(PL 或 GUI - 通用用户界面)和业务逻辑层 (BL) 不同。此外,您还希望 DAL 和 DB 端有更高的安全性,以确保数据不被篡改。
LAYERS 和 Tiers 之间的重叠: 您可以在一层(机器)上运行多个层。开始一个网站在一台服务器上运行大部分功能,然后随着网站的增长和添加更多功能而将其分解是很常见的。在同一层上运行表示层和业务逻辑层也很常见。但是,当您向 BL 层添加规则时,以及随着事情变得更加复杂,您希望拥有一个允许您在需要时将层移动到另一台服务器(或层)的站点。
希望这会有所帮助!如果您最喜欢答案标记,请。
【讨论】:
在架构中,层与“平台”层相关(sql server 是数据层,iis 是 Web 层),层与逻辑层(表示层、业务层、数据访问层、数据层)相关。
层和层之间存在重叠(例如,您可以将数据层部署到数据层)。您可以选择在同一台机器上托管多个层,而不会影响架构。组合层违反了 3 层架构。
关系是您在层上部署层。在 UML 中,这是在部署视图中建模的。
【讨论】: