科技时代新浪首页 > 科技时代 > 学园 > 微软Windows Vista操作系统专题 > 正文

WinVista新技术 WCF开发指南之构建服务


http://www.sina.com.cn 2006年11月14日 08:48 天极yesky

  作者:朱先忠编译

    一. 引言

  Windows通讯基础(简称为WCF)是一种SDK,用于让你使用典型的CLR编程结构(例如用于发布和消费服务的类和接口等)来构建Windows面向服务的应用程序。WCF的编程模型是声明性的并且大部分是属性驱动的。

  WCF为通讯服务提供了一种运行时刻环境,使你能够把CLR类型暴露为服务并且以CLR类型来消费服务。

  尽管在理论上你可以不用WCF来构建服务;但是,在实践中,WCF能够显著地简化这一任务。WCF是微软的一组工业标准的实现,该标准定义了服务交互、类型转化、编排和多种协议的管理。因此,WCF提供了服务间的互操作性并且提高了开发效率(包括几乎任何应用程序所要求实现的基本的常规的繁重任务)。本文将描述WCF块及其架构的基本概念和构建,从而使你能够构建简单的服务。

  二. 什么是WCF服务?

  一个服务是一个暴露给外界的功能单元。从编程模型的发展历史来说,它经历了从函数到对象再到组件最后到服务的过程;而WCF服务正代表了下一代的革命性的Windows编程模型。面向服务(SO)是一组原则的抽象集和针对于构建SO应用程序的最好实践,但这其中的一大部分已经超出了本文的范围。

  一个面向服务的应用程序(SOA)把服务聚合成单个逻辑的应用程序(见图1),这类似于一个面向组件的应用程序聚合组件或一个面向对象的应用程序聚合对象的方式。服务可以是本地的也可以是远程的,可以由多种团队使用任何技术开发而成,它们可以被独立地进行版本化管理,甚至可以在不同的时间进度上执行。在一个服务内部,你可以使用例如语言,技术,平台,版本和框架等概念;然而,在服务之间,只允许使用规定的通讯模式。

WinVista新技术WCF开发指南之构建服务
图1:一个面向服务的应用程序的框架。


  客户端通过发送和接收消息与服务进行交互。消息可以从客户端直接或经中介传输到服务。在WCF中,所有的消息都是SOAP消息。注意,这些消息独立于传输协议——不象Web服务,WCF服务可以通过多种传输协议进行通讯,而不仅是HTTP。

  在WCF中,客户端从不直接与服务进行交互,即使在当处理一个本地的内存中服务时。而是,客户端总是使用一个代理来把该调用转发给服务。WCF允许客户端跨越所有执行边界与服务进行通讯。在同一台计算机上(见图2),客户端可以跨越同一进程中的应用程序域或进程来消费同一个应用程序域中的服务。通过跨越计算机边界(图3),客户端能够在企业内网或跨越因特网与服务进行交互。

WinVista新技术WCF开发指南之构建服务
图3.跨机器通讯:这里是一个跨机器使用WCF通讯的例子。
WinVista新技术WCF开发指南之构建服务
图2.使用WCF在同一台机器上通讯。

  因为所有的交互是经由一个代理实现的,所以对于本地和远程情况下,WCF保持相同的编程模型,这样以来不仅能够使你进行位置切换而不影响客户端,而且显著地简化应用程序编程模型。大多数WCF功能被包括到位于System.ServiceModel命名空间的单个的程序集System.ServiceModel.dll中。

  三. 服务地址

  在WCF中,每一个服务都与唯一一个地址相联系。该地址提供了两个重要的元素:服务的位置和用于与服务进行通讯的传输协议。地址的位置部分指出目标计算机名,站点或网络,一个通讯端口,管道或队列,还有一个可选的特定的路径或URI。至于传输,WCF 1.0支持下列:

  · HTTP
  · TCP
  · 端对端网络
  · IPC(通过命名管道进行的进程间通讯)
  · MSMQ

  地址总是使用如下格式:

[base address]/[optional URI]

  其中,基地址总是使用如下格式:

[transport]://[machine or domain][:optional port]

  下面是一些可能的服务地址:

http://localhost:8001
http://localhost:8001/MyService
net.tcp://localhost:8002/MyService
net.pipe://localhost/MyPipe
net.msmq://localhost/private/MyService

 [1] [2] [3] [4] [下一页]

本文导航:
·引言
·服务合同
·WAS宿主
·管理端点配置

发表评论 _COUNT_条

爱问(iAsk.com) 相关网页共约8,920,000



评论】【论坛】【收藏此页】【 】【多种方式看新闻】【下载点点通】【打印】【关闭




科技时代意见反馈留言板 电话:010-82628888-5595   欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

Copyright © 1996 - 2006 SINA Inc. All Rights Reserved

新浪公司 版权所有