WCF简介

SOA 面向服务架构

WCF Windows Communication Foundation 公布式通讯框架

SO Service Orientation 面向服务,代表的是一种设计理念

OO Object Orientation

CO Component Orientation 面向组件

Web服务这里指的是广义的Web服务,既包括微软平台下的Asp.net,.asmxWeb服务和WCF,也包括其他平台的Web服务 是 一种实现SOA理想的技术手段。

但是如果设计理念还停留在COM或DCOM的层面,即使采用了Web服务来构建你的应用,也不能说你的应用是基于SOA的。

服务是自治的

服务的自治原则要求单个服务在底层逻辑控制方面尽可能是独立和自包含的,服务尽可能不依赖于访问它的客户端和其他服务。服务可以独立地进行部署及实施版本策略和安全策略。

SOA依赖于开放的标准

SOA的一个目标是让不同厂商开发的服务能够进行互操作。要实现这样一个宏图伟业,就必须依赖于一种开放的、能够被不同的厂商普遍接受的标准。SOA采用基于消息的通信方式,从消息交换的角度来讲,就是要求消息自身标准化。在此方面,SOAP消息的采用对消息承载的内容提供了一致性的表示。

SOA采用XML、XSD、WSDL作为服务描述的语言

SOA支持跨平台

能够让不同的平台进行通信是SOA产生的主因。正因为SOA采用了开放的标准,才使跨平台得以实现。跨平台性最大的好处就是促进了异质系统的集成。

按照扬所提供功能大小的差异,不同的服务具有不同的粒度。我们可以把提供具有最小粒度功能实现的服务称为原子服务。多个原子服务可以通过合理的组合、编排构成一个新的聚合型服务。比如,我们把通过一系列独立服务承载的活动,按照相应的规则进行编排,构成一个聚合型的工作流服务。

SOA鼓劢服务的复用

功能的复用是软件设计思想不变的主题,SOA也鼓励创建具有高复用度的服务。服务的组合性另一方面也促进了服务的重用。

SOA强调松耦合

基于类型系统交互方式面向组件的不同,SOA通过契约实现客户端对服务的调用,双方只需要采用能够匹配的契约就能保证正常的交互。

WCF是对现有分布式通信技术的整合

COM和DCOM

COM采用了基于组件的设计,通过组件对相关功能进行封装。COM遵循相应的规范,使组件之间能够进行相互通信。一个组件通过一个接口和一个唯一标识GUID对外提供功能,该接口和标识也是外界调用该组件的依据。COM的一个显著好处是使通过不同编程语言编写的组件能够通过IKnown或其他一些标准接口进行互操作。OLE和ActiveX完全采用基于COM的设计。COM最初仅仅提供了组件之间的本地调用。随着分布式应用的发展,对于远程组件调用的需求越来越多,于是出现了DCOM。Distributed COM是为了实现分布式远程调用而对COM进行的扩展,其本质还是COM。不过在现有的COM基础上,DCOM对可靠传输、安全等提供了基本的支持。

.Net Remoting

.Net Remoting是微软推出的第一个基于.Net的分布式通信技术。在一定程度上借鉴了DCOM的设计,并在很多方面对DCOM进行了加强,使其成为一个高性能和可扩展的分布式通信框架。在WCF的很多方面都可以看到.NET Remoting的影子,比如相似的远程对象(服务实例)激活方式和远程对象寄宿方式等。但它不能提供跨平台的支持,仅仅提供服务端和客户端均处于.NET平台下的通信。

Web服务+WSE

为了实现对跨平台的支持,微软在ASP.NET平台上开发出了Web服务。ASP.NET Web服务之所以能够提供跨平台的互操作性,在于它建立在一系列开放的标准之上,这些标准包括XML、XSD、SOAP和WSDL等。为了支持WS-*,微软在ASP.NET Web服务的基础上推出了WSE(Web Service Enhancement)是为了弥补ASP.NET Web服务的不足,它在很多方面实现了对现有的ASP.NET Web服务功能的加强,使ASP.NET Web服务正式成为一个适合企业级应用的通信框架。

MSMQ

消息队列(Message Queuing)是微软对消息服务领域的开放性尝试。它采用了特殊的通信机制,对改善和提高系统的可伸缩性和可用性具有重要的意义。具有其他通信手段无法企及的优点。

1)对离线通信方式的支持:消息队列支持离线的通信方式。如果由于网络或其他相关的问题导致目标队列暂时不可达,消息可暂存于本地的消息队列中,一旦检测到可达的目标队列,会自动进行消息的发送。

2)消息的发送方和接收处理方的分离:消息队列采用特殊的通信方式,使得客户端和服务端面对的不是彼此,而是队列。这样的通信机制将消息的发送方和接收方完全分离开来,使它们相互独立的应用。

3)可靠消息传输和错误处理:消息队列通过消息确认和超时重传的机制实现了对消息可靠传输。同时通过毒性队列、死信队列和日志队列在正常的消息交换失败情况下提供一种后务机制。

4)对事务的支持:消息队列同是提供对本地事务和分布事务的支持

猜你喜欢

转载自blog.csdn.net/zang141588761/article/details/89220288
WCF