跟我学习WCF服务程序第一天:走近WCF

写在前面:笔者马上毕业了,也要开始准备做毕业设计了。但是不想按照自己熟悉的开发语言来做,选择一个比较陌生的框架和语言来做这个系统。一方面可以让自己每天都有任务学习,另一方面也是在考验自己,看看自己能不能坚持的下去。系统准备融合WCF服务程序来开发,所以今天是学习WCF服务程序的第一天:让我们一起走进WCF。

1. 什么是WCF?

Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台。整合了原有的windows通讯的 .net Remoting,WebService,Socket的机制,并融合有HTTP和FTP的相关技术。

跟我学习WCF服务程序第一天:走近WCF

相关服务

本质上来讲,WCF其实是一套软件开发包。WCF是.NET框架的一部分,由 .NET Framework3.0 开始引入,与Windows Presentation Foundation及Windows Workflow Foundation并行为新一代 Windows操作系统以及 WinFX 的三个重大应用程序开发类库。在 .NET Framework2.0 以及前版本中,微软发展了 Web Service(SOAP with HTTP communication),.NET Remoting (TCP/HTTP/Pipeline communication) 以及基础的 Winsock 等通信支持。

由于各个通信方法的设计方法不同,而且彼此之间也有相互的重叠性,对于开发人员来说,不同的选择会有不同的程序设计模型,而且必须要重新学习,让开发人员在使用中有许多不变。同时,面向服务架构(Service-Oriented Architecture) 也开始盛行于软件工业中,因此微软重新查看了这些通信方法,并设计了一个统一的程序开发模型,对于数据通信提供了最基本最有弹性的支持,这就是WCF。

2. WCF体系架构简介

跟我学习WCF服务程序第一天:走近WCF

WCF体系结构

由上图可以看出,WCF框架服务分为四个部分:

1、协定(也叫契约)

2、服务运行时

3、消息传递

4、激活和承载(宿主程序)

3.WCF基础概念介绍

地址:在WCF中,每一个服务都有唯一的地址(Address)。地址包含两个重要的元素:服务位置及传输协议

地址通信格式:[基地址]/[可选的URI]

基地址常用格式:[传输协议]://[机器名或域名][:可选端口]

备注:URI可以是任意的唯一标识的字符串,如服务台名称或全局统一标识符(GUID)

绑定

:WCF引入绑定(binding),将这些通信特征组合在一起。一个绑定封装了诸如传输协议、消息编码、通信模式、可靠性、安全性、事务传播,以及互操作性等相关选项,使得他们保持一致

WCF定义了五种常用的绑定

基本绑定(BasicHttpBinding)、TCP绑定(NetTcpBinding)、IPC绑定(NetNamePipeBinding)、Web服务绑定(WSHttpBinding)、MSMQ(NetMsmqBinding)

契约:WCF的所有服务都会公开为契约(Contract)。契约与平台无关,是描服务功能标准方式,WCF定义的契约有以下四种类型。

服务契约(ServiceContract)、数据契约(DataContract)、错误契约(FaultContract)、消息契约(MessageContract)

终结点:服务与地址、绑定及契约有关,其中,地址定义了服务的位置,绑定定义了服务通信的方式、契约定义了服务的内容。为方便记忆,可以将这种类似于“三权分立”的管理服务方式简称为服务的ABC。WCF用终结点表示这样一种关系,终结点就是地址、契约与绑定的混合品。如下图所示:


跟我学习WCF服务程序第一天:走近WCF

终结点

元数据:元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。

有两种方式可以发布服务的元数据:一种是基于HTTP-GET协议提供元数据,它是一种绝大多数平台都能支持简单的text-based协议;另一种则是使用专门的终结点方式提供元数据。

宿主:WCF服务不能凭空存在。每个WCF服务都必须托管(Host)在Windows进程中,该进程称为宿主进程(host process)。宿主可以由Internet信息服务(IIS)提供,也可以由Windows Vista、Windows Service 2008、Windows 7,以及更新版本的Windows激活服务(Windows Activation Service WAS)提供。


分享到:


相關文章: