初识WCF

在学习WCF前,先了解相关的一些概念:

SOA(Service-Oriented Architecture),面向服务架构,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。

SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。SOA可以看作是B/S模型、XML/Web Service技术之后的自然延伸。

SOA将能够帮助软件工程师们站在一个新的高度理解企业级架构中的各种组件的开发、部署形式,它将帮助企业系统架构者以更迅速、更可靠、更具重用性架构整个业务系统。较之以往,以SOA架构的系统能够更加从容地面对业务的急剧变化。

典型的基础结构:

WSDL,UDDI和SOAP是SOA基础的基础部件。WSDL用来描述服务;UDDI用来注册和查找服务;而SOAP,作为传输层,用来在消费者和服务提供者之间传送消息。SOAP是Web服务的默认机制,其他的技术为可以服务实现其他类型的绑定。一个消费者可以在UDDI注册表(registry)查找服务,取得服务的WSDL描述,然后通过SOAP来调用服务。

Web服务技术是一套标准,定义了应用程序如何在web上实现互操作,从而建立可互操作的分布式应用的新平台
用户可使用任何语言,在不同的平台下编写web服务,然后进行注册、查询和访问
Web Services是由企业发布的完成其特定商务需求的在线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项在线服务。

Web服务是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;它是一种新的应用程序分支,是自包含、自描述、模块化的应用,可以发布、定位、通过web调用。用简单点的话说,就是系统对外的接口!

WebService是一个应用组件,它逻辑性的为其他应用程序提供数据与服务.各应用程序通过网络协议和规定的一些标准数据格式(Http,XML,Soap)来访问WebService,通过WebService内部执行得到所需结果.Web Service可以执行从简单的请求到复杂商务处理的任何功能。一旦部署以后,其他WebService应用程序可以发现并调用它部署的服务。

XML:描述数据的标准方法.
SOAP:简单对象访问协议.

    通信协议,HTTP
    传输格式,XML
    服务描述,WSD,服务端提供的自我描述文档
    服务描述语言,WSDL,格式化了的服务描述标记

SOAP定义一种XML语法,用于描述web服务中的方法名称、参数和返回值

UDDI(Universal Description, Discovery and Integration):通用描述、发现与集成,它是一种独立于平台的,基于XML语言的用于在互联网上描述商务的协议。

Web Service完全屏蔽掉各应用程序的差异
提供统一的访问形式
使用HTTP协议传输数据
用XML格式传递参数、接收应答
实质上是接口,通过实验会更加清晰

根据2003年4月的Gartner报道,Yefim V. Natis就这个问题是这样解释的:
Web服务是技术规范,而SOA是设计原则。
Web服务中的WSDL,是一个SOA配套的接口定义标准:这是Web服务和SOA的根本联系。
从本质上来说,SOA是一种架构模式,而Web服务是利用一组标准实现的服务。Web服务是实现SOA的方式之一。

WCF来了:

微软在DotNet 3.0时推出,全称Windows Communication Foudation,通信基础架构
不但能提供web Service,还可以提供Remoting,Enterprise Services,MSMQ等
目标是为这些技术提供统一的编程模型,将编程与通信基础结构分开

实现方式

通信双方的沟通方式,由合约来订定。
通信双方所遵循的通信方法,由协议绑定来订定。
通信期间的安全性,由双方约定的安全性层次来订定

合约:

数据合约 (Data Contract),订定双方沟通时的数据格式。
服务合约 (Service Contract),订定服务的定义。
操作合约 (Operation Contract),订定服务提供的方法。
消息合约 (Message Contract),订定在通信期间改写消息内容的规范。

协议绑定:

由于 WCF 支持了 HTTP,TCP,Named Pipe,MSMQ,Peer-To-Peer TCP 等协议
而 HTTP 又分为基本 HTTP 支持 (BasicHttpBinding) 以及 WS-HTTP 支持 (WsHttpBinding)
 TCP 亦支持 NetTcpBinding,NetPeerTcpBinding 等通信方式
因此,双方必须要统一通信的协议,并且也要在编码以及格式上要有所一致。

安全性层次:

WCF 实现上已经支持了传输层次安全性 (Transport-level security) 以及消息层次安全性 (Message-level security) 两种。
传输层次安全性:在数据传输时期加密,例如 SSL。
消息层次安全性:在数据处理时就加密,例如使用数字签名,散列或是使用密钥加密法等。

客户端:所有 WCF 服务的连接都是由客户端的服务代理(WCF Service Proxy) 来运行,在 Visual Studio 中被称为服务引用(Service Reference)
开发人员不用花费太多心思在通信上,加入 WCF 的服务引用时,Visual Studio 会自动帮开发人员做掉一些必要工作,开发人员只需要在代码中取用 WCF Service Proxy 对象即可

宿主:WCF 的服务可以挂载于
Console Application
Windows Application
IIS (ASP.NET) Application
Windows Service
Windows Activation Services
大多会挂在 Windows Service

基本开发流程:

合约,定义服务接口
实现,完成服务功能
宿主,服务运行的容器
客户端,添加服务引用
使用代理,调用服务

posted @ 2013-03-31 11:37  Mr灬ing  阅读(132)  评论(0)    收藏  举报