【问题标题】:What is service-oriented architecture?什么是面向服务的架构?
【发布时间】:2015-08-27 01:52:30
【问题描述】:

什么是面向服务的架构?

【问题讨论】:

    标签: wcf architecture soa


    【解决方案1】:

    SOA 是开发面向服务的应用程序的方法,而 WCF 是可用于开发面向服务的应用程序的技术。但是 SOA 为应用程序定义了严格的规则(称为 SOA 原则)。如果您不遵循这些规则,那么您正在构建服务,但这些服务不符合 SOA。

    WCF 允许您开发多种类型的服务。您可以开发符合 SOA 或不符合 SOA 的可互操作 SOAP 服务。您可以开发具有不可互操作特性的纯 .NET 服务,也可以开发 REST 服务。

    此外,SOA 服务中的含义与 WCF 中的含义不同。在 WCF 中,服务是在端点上公开的功能集合。在 SOA 中,服务可以是整个应用程序(类似 WCF 的服务集)——小型和大型 SOA 之间的区别。

    SOA 原则是:

    • 边界是明确的 - 服务不与其他服务共享任何内容(甚至无法共享数据库表和数据)
    • 服务是自治的 - 每个服务都是独立的,可以单独部署和版本化
    • 服务共享模式和契约,而不是类 - 服务在 WSDL 中描述,传输的数据在 XSD 中描述,编排(聚合)在 BPEL 中描述
    • 服务兼容性基于策略 - WSDL 包含 WS-Policies 来描述互操作性所需的配置

    如您所见,尤其是前两个原则在构建 WCF 服务时很容易被违反。

    【讨论】:

    • 这意味着我们也可以在Web服务中创建SOA应用程序那么为什么SOA这个词只附加了WCF定义?
    • 是的,你可以。这个词通常附在 WCF 后面,因为它取代了 ASMX Web 服务,而且它提供了更多可互操作的协议。
    • @LadislavMrnka 这是很老的答案,但第一个原则让我感到困惑。这是否意味着在 SOA 中有将 DAL 实现为服务的“DataService”的位置?以便其他服务而不是数据库连接使用 DataService 端点。
    【解决方案2】:

    SOA 是一种设计完整解决方案的方法,它是一组普遍接受的通信、状态管理、兼容性等实践。在软件架构中,SOA 是一组服务(不一定是 Web 服务),它们是独立构建以支持一系列客户端应用程序。模块化设计有助于维护、业务协作。 SOA 还提供了一些开发指南:

    • 向后兼容性的限制
    • 元数据暴露
    • 服务的可发现性

    另一方面,WCF 只是一种支持技术,可帮助您在 .NET 中构建服务。

    您可以在没有 WCF 的情况下创建 SOA,就像创建一堆 WCF 服务不会使您的架构成为面向服务的架构一样。

    【讨论】:

      【解决方案3】:

      面向服务的架构是一种软件架构概念,其中一个或多个服务相互交互。在这里,服务意味着完成某个目的的工作单元。例如,在线销售铁路车票是一项服务,在线酒店预订是一项服务,采购在线支付是一项服务等。现在,让我们考虑一家酒店公司通过自己的网站在线销售客房。在这种情况下,该网站正在使用本地服务。同一家酒店还可以通过第三方旅游门户网站销售客房。在第二种情况下,第三方旅行门户正在使用远程服务或 Web 服务。通过旅游门户在线销售酒店预订就是Service Oriented Architecture 的一个例子。在面向服务的体系结构中,两方或多方使用 Web 服务相互交互。其中,Web 服务提供者很少,Web 服务消费者也很少。可以通过使用 Web 服务遵循面向服务的体系结构来构建软件组件。 WCF 是一种构建服务的技术。

      【讨论】:

        【解决方案4】:

        WCF 是一种使构建服务更容易的技术,它不仅适用于 HTTP,而且适用于所有传输,因此它比仅适用于 Http 的 Web 服务更通用。

        【讨论】:

        • Web 服务仅支持 http ptotocal,WCF 更通用,但我想知道如何确定哪种技术支持 SOA。我们怎么能说 WCF 是 SOA 而 Web 服务不是。实际上在WCF的定义中大部分网站都是用SOA来定义的,为什么?
        【解决方案5】:

        SOA 只是一种方法,通过它我们可以使用 Web 服务在 .NET 和 JAVA 等不同技术之间进行交互。 为此,您必须了解如下所示的几件事。

        1. XML
        2. WSDL
        3. UDDI
        4. 肥皂

        了解了这些之后就可以轻松应用这个 SOA

        【讨论】:

          猜你喜欢
          • 2010-11-08
          • 2011-09-04
          • 1970-01-01
          • 1970-01-01
          • 2016-10-12
          • 1970-01-01
          • 2021-06-20
          • 2012-04-28
          • 1970-01-01
          相关资源
          最近更新 更多