常见的三种技术:
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)
就可以通过配置文件的方式实现不同技术的要求,从而提高了开发效率和系统的可维护性。

