【问题标题】:Explain the different tiers of 2 tier & 3 tier architecture? [closed]解释 2 层和 3 层架构的不同层? [关闭]
【发布时间】:2011-01-13 00:56:45
【问题描述】:

我无法理解哪些元素被称为第一层、第二层和第三层以及它们所在的位置。他们可以驻留在同一台机器还是不同的机器上。哪一层驻留在哪台机器上?我们如何将特定应用程序识别为 2 层应用程序或 3 层应用程序。请举例说明

【问题讨论】:

    标签: architecture n-tier-architecture


    【解决方案1】:

    Wikipedia 解释得更好

    从文章 - 顶部是第一层:

    【讨论】:

    • 感谢您的回答!
    【解决方案2】:

    首先,我们必须区分层和层。层是将代码逻辑分解为组件的方式,层是放置组件的物理节点。这个问题更好地解释了它: What's the difference between "Layers" and "Tiers"?

    两层架构通常只是表示层和数据存储层。这些可以位于 1 层(1 台机器)或 2 层(2 台机器)上,以通过分配工作负载来获得更好的性能。

    三层架构通常在表示层和数据存储层之间放置一些东西,例如业务逻辑层或服务层。同样,您可以将其分为 1、2 或 3 层,具体取决于您有多少硬件资金以及您期望的负载量。

    将多台机器放在一个层中将通过提供冗余来帮助提高系统的稳健性。

    下面是分层架构的一个很好的例子:


    (来源:microsoft.com

    可以在 MSDN 上找到所有这些的良好参考: http://msdn.microsoft.com/en-us/library/ms978678.aspx

    【讨论】:

      【解决方案3】:

      这里有一些关于 2Tier 和 3Tier 区别的帮助,请参考下面。

      回答:
      1. 2Tier 是客户端服务器架构,3Tier 是客户端、服务器和数据库架构。
      2. 3Tier有一个Middle stage来客户端与服务器通信,而2Tier客户端直接与服务器通信。
      3. 3Tier 类似于 MVC,但拓扑结构不同
      4. 3Tier是线性的意思是请求流是Client>>>Middle Layer(SErver application)>>>Databse server,Response是反向的。
      而在 2Tier 它是一个三角视图 >>Controller>>Model
      5. 3Tier就像网站,而Web浏览器是客户端应用程序(中间层),而ASP / PHP语言代码是服务器应用程序。

      【讨论】:

        【解决方案4】:

        层只不过是关注点的分离,通常表示层(用户可见的表单或页面)与数据层(类或文件与数据库交互)分离。这种分离是为了提高可维护性、可扩展性、可重用性、灵活性和性能。

        可以在http://www.dotnetfunda.com/articles/article71.aspx阅读关于 3 层和 4 层架构的演示代码的很好的解释

        【讨论】:

          【解决方案5】:

          Dan 的链接中提供了一般解释。


          对于您提出的具体问题:

          它们可以驻留在同一台机器上,甚至在同一个进程中(Java 的 JVM)。这是一种逻辑上的区别(他们做了什么?),而不是物理上的区别(他们在哪里?)。

          【讨论】:

            【解决方案6】:

            在现代的两层架构中,服务器同时保存应用程序和数据。应用程序驻留在服务器上而不是客户端上,可能是因为服务器比 PC 拥有更多的处理能力和磁盘空间。

            在三层架构中,数据和应用程序被拆分到单独的服务器上,服务器端分布在数据库服务器和应用程序服务器之间。客户端是前端,只是请求和显示数据。原因是每台服务器都将专用于处理数据或应用程序请求,因此系统更易于管理,资源争用更少。

            可以参考Difference between three tier vs. n-tier

            【讨论】:

              最近更新 更多