什么是面向服务的架构?

时间:2010-10-01 06:07:38

标签: wcf architecture soa

什么是面向服务的架构?

4 个答案:

答案 0 :(得分:20)

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服务时,特别容易违反前两个原则。

答案 1 :(得分:6)

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

  • 对后向兼容性的限制
  • 元数据曝光
  • 服务的可发现性

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

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

答案 2 :(得分:1)

WCF是一种使构建服务更容易的技术,它不仅可以在所有传输上运行,因此它比仅适用于Http的Web服务更通用。

答案 3 :(得分:1)

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

  1. XML
  2. WSDL
  3. UDDI
  4. SOAP
  5. 了解了这些内容后,您可以轻松应用此SOA