【问题标题】:What is the difference between N-Tier and SOA architectureN-Tier 和 SOA 架构有什么区别
【发布时间】:2011-03-30 03:20:22
【问题描述】:

根据我对 N-Tier 和 SOA 架构的理解。

N 层

N-Tier 意味着将应用程序分层,例如我在 asp.net 中开发应用程序,我将整个 DB 层推送到 WCF,然后它被称为 N-tier。[紧密耦合]

SOA[松散耦合]

根据我对 SOA 的理解,它是一个非常通用的术语,以及我们如何将我们的架构松散耦合,然后将其称为 SOA。 SOA 服务的最佳示例 - 股票源/天气源。

我的结论:

即使我们使用 WCF 开发应用程序,如果它与单个客户端/或 .net 应用程序紧密耦合,这并不意味着它的 SOA 只能理解服务。

你能帮我理解 SOA VS N-Tier。

【问题讨论】:

    标签: asp.net wcf soa


    【解决方案1】:

    这两个不能比较,因为每个都描述了不同的东西。另外请注意,Tier 与 Layer 不同。

    层 - 进程边界。当您构建 3 层应用程序时,您知道 UI、BL 和 DB 将位于 3 个不同的进程中,这些进程可能位于三台不同的机器上。

    层 - 逻辑边界。一个层可以包含多个层。这正是您构建应用程序以遵循 OO 原则的方式。

    SOA - SOA 应用程序可以是多层的,但通常不是必须的。 SOA 是一种架构应用程序的方法,其含义是可重用、自主、可互操作的远程调用组件。 SOA 服务必须遵循four tenets

    为了展示 N-Tier 和 SOA 之间的简单区别,我们假设您正在使用一些数据库的业务逻辑之上构建一个服务层。看起来您正在构建一个 N 层 SOA 应用程序,不是吗?不幸的是,并不是每个暴露服务的应用程序都遵循这些原则。在这种情况下,最关键的可能是“显式服务边界”和“服务是自治的”。如果您的服务共享数据库中的某些业务逻辑功能或数据,则它们没有明确的边界并且它们不是自治的 => 应用程序不是作为 SOA 设计的。

    小型 SOA 和大型 SOA 之间也有区别。提到的应用程序是一个小型 SOA - 每个服务都必须遵循原则。大型 SOA 用于企业集成,您可以将应用程序及其所有服务视为一个必须遵循原则的单元。

    【讨论】:

      【解决方案2】:

      Ladislav 是正确的,您的假设是正确的,即单独使用 WCF 并不能保证构建 SOA。

      以下是一些关于如何使用 WCF 构建 SOA 的实际示例。

      我建议您阅读 Thomas Erl 和 Roger Sessions 的文章,这将使您牢牢掌握 SOA 的全部内容。

      SOA Design Pattern

      Achieving integrity in a SOA

      Why your SOA should be like a VW Beetle

      SOA explained for your boss

      【讨论】:

        【解决方案3】:

        我认为 SOA 的要点(与标准 N 层架构相比)是底层服务的可重用性。这就是您创建 Web 服务作为数据源的原因,目的是它们可以为您将来编写的其他应用程序提供服务。这就是前面提到的松散耦合非常方便的地方 - 您的 Web 服务足够通用且足够独立,可以在许多不同的应用程序中使用。

        【讨论】:

          【解决方案4】:

          这样想:SOA 服务是您的 N 层应用程序中的数据访问层可以调用的东西,但它也是我的 N 层应用程序中的数据访问层可以调用的东西。但是,我可能不会在我的应用程序中使用您的数据访问层。

          例如:

          您用于处理员工时间表的数据访问层将根据您与时间表相关的应用程序进行定制。

          我用于处理员工工作质量审查的数据访问层将针对执行员工工作质量审查的功能进行定制。

          但是,我们的应用程序以及任何其他与员工相关的应用程序都可以从 SOA 服务中受益,该服务可处理员工 ID、姓名、隔间编号等核心员工数据。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2017-09-04
            • 2012-03-18
            • 2015-12-08
            • 1970-01-01
            • 2020-04-23
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多