SOA架构与wcf

常见的三种技术:

SO  面向服务    (SOA面向服务架构)

OO 面向对象    (OOP 面向对象编程范式)

CO  面向中组件  (COP面向组件编程范式)

以上三者体现的是一种对关注点进行分解的思想,而向服务是和技术无关的。


有关几种范式的详细情况见勇哥下面的文章:

常用的编程范式以及C#对它们的支持情况   http://47.98.154.65/?id=2247



SOA 面向服务的架构


对SOA最常见的一种误解决是: SOA就是采用web服务的架构

web服务只是一种实现SOA最理想的技术手段。但是SOA并非只有Web服务一种手段 。


SOA定义并没有统一,但是SOA是有普遍认可的基本特征的:

(1)服务是自治的

       强调的是独立和自包含的,即服务不依赖访问其它的客户端和其它服务


(2)SOA依赖于开放的标准

  soa的一个目标是让不同厂商开发的服务能够互操作,这就要使用不同厂商都接受的标准。

  soa采用基于消息的通信方式,而消息自身也要标准化,这此方面,SOAP消息的采用对消息承载的内容提供了一致性的表示 。

客户端在进行服务调用的前提是对服务描述的理解,所以服务描述本身应该也是标准化的表示,这方面,soa采用xml, xsd,及wsdl使用服务描述的语言。

  对于企业级应用,还需要对消息安全、可靠传输、事务的支持方面通过开放的标准确定下来。

  这方面的一些国际组织有:W3C, OASIS, WS-I等,这些标准或规范定义在WS-*规范中。

  这就是为啥wcf的binding中有ws开头的名字。


(3)SOA支持跨平台

  跨平台通信是SOA产生的最主要动机。因此说web技术才是实现SOA最理想的技术手段。


(4)SOA鼓励创建可组合的服务

  按照功能大小的差异,不同的服务具有不同的粒度。最小粒度的服务称为原子服务。

  多个原子服务可以合理的组合、编排成一个新的聚合型服务。

  比如,我们通过一系列独立服务承载的活动,按照相应的规则进行编排构成一个聚合型的工作流服务。


(5)SOA鼓励服务的利用

  鼓励创建具有高复用度的服务。SOA甚至强调创建与场景无关的服务,这样同一服务应用于不同场景的解决方案中


(6)SOA强调松耦合

    soa通过契约实现客户端对服务的调用。基于契约的服务交互,又进一步促进了服务的自治。

    因为只要契约不变化,服务变身的实现怎么变都可以。




WCF(Windows Communication Foundation)是用于实现SOA

(Service-Oriented Architecture,面向服务的架构)架构的框架。

以下是对这一点的详细解释和归纳:


WCF的定义和用途:

WCF是.NET 3.0框架中的一个重要组成部分,用于解决Windows下的通信问题。

它提供了一种统一的编程模型,使得开发人员能够轻松地创建和管理服务。

WCF可以用于构建各种类型的服务,包括Web服务、消息队列服务、分布式事务服务等。


SOA架构的概念:

SOA是一种面向服务的软件架构模式,其中软件系统被分解为多个自治的、可互操作的服务单元。

这些服务单元相互通信并组合以满足特定的业务需求。

SOA架构的主要特点包括松散耦合、自治性、可组合性、可重用性、灵活性、可伸缩性和可靠性。


WCF与SOA的关系:

WCF实际上是Microsoft平台上的SOA架构的实现方式之一。

使用WCF,开发人员可以通过定义服务契约、实现服务契约、配置终结点、

托管服务和创建客户端等步骤,构建出符合SOA架构规范的分布式应用程序。

WCF的好处在于它提供了统一的编程模型,使得程序员只需要学习一种技术(即WCF)

就可以通过配置文件的方式实现不同技术的要求,从而提高了开发效率和系统的可维护性。


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:
本帖最后由 勇哥,很想停止 于 2024-06-17 08:16:59 编辑

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2025年6月    »
1
2345678
9101112131415
16171819202122
23242526272829
30
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864