WCF服务基本概念详解

开发 开发工具
WCF服务可以被看做是一个公开的功能的集合。它的影音在一定程度上减轻了开发人员的压力。在这里我们将会对此做一个详细介绍。

WCF服务在实际应用中位开发人员带来了不小的帮助。那么如何正确理解这一服务机制呢?在这篇文章中,我们将会通过对这内容的剖析为大家详细讲解一下相关应用技术,方便大家理解以及应用。#t#

什么是WCF服务

服务(Services)是公开的一组功能的集合。从软件设计的角度考虑,软件设计思想经历了从函数发展到对象,从对象发展到组件,再从组件发展到服务的几次变迁。在这样一个漫长的发展旅程中,最后发展到服务的一步可以说是最具革新意义的一次飞跃。面向服务(Service-Orientation,SO)是一组原则的抽象,是创建面向服务应用程序的最佳实践。如果你不熟悉面向服务的原则,可以参见附录A,它介绍了使用面向服务的概况与目的。本书假定你对这些原则已经了然于胸。一个面向服务应用程序(SOA)将众多服务聚集到单个逻辑的应用程序中,这就类似于面向组件的应用程序聚合组件,或者面向对象的应用程序聚合对象,如图1-1所示。

WCF服务应程序 

 

图1-1:面向服务应用程序

服务可以是本地的,也可以是远程的,可以由多个参与方使用任意技术进行开发。服务与版本无关,甚至可以在不同的时区同时执行。服务内部包含了诸如语言、技术、平台、版本与框架等诸多概念,而服务之间的交互,则只允许指定的通信模式。

WCF服务的客户端只是使用服务功能的一方。理论上讲,客户端可以是任意的Windows窗体类、ASP.NET页面或其他服务。

客户端与服务通过消息的发送与接收进行交互。消息可以直接在客户端与服务之间进行传递,也可以通过中间方进行传递。WCF中的所有消息均为SOAP消息。注意WCF的消息与传输协议无关,这与Web服务不同。因此,WCF服务可以在不同的协议之间传输,而不仅限于HTTP。WCF客户端可以与非WCF服务完成互操作,而WCF服务也可以与非WCF客户端交互。不过,如果需要同时开发客户端与服务,则创建的应用程序两端都要求支持WCF,这样才能利用WCF的特定优势。

因为服务的创建对于外界而言是不透明的,所以WCF服务通常通过公开元数据(Metadata)的方式描述可用的功能以及服务可能采用的通信方式。元数据的发布可以预先定义,它与具体的技术无关(Technology-Neutral),例如采用基于HTTP-GET方式的WSDL,或者符合元数据交换的行业标准。一个非WCF客户端可以将元数据作为本地类型导入到本地环境中。相似的,WCF客户端也可以导入非WCF服务的元数据,然后以本地CLR类与接口的方式进行调用。

WCF服务的执行边界

WCF不允许客户端直接与服务交互,即使它调用的是本地机器内存中的服务。相反,客户端总是使用代理(Proxy)将调用转发给服务。代理公开的操作与服务相同,同时还增加了一些管理代理的方法。

WCF允许客户端跨越执行边界与服务通信。在同一台机器中,客户端可以调用同一个应用程序域中的WCF服务,也可以在同一进程中跨应用程序域调用,甚至跨进程调用。

责任编辑:曹凯 来源: 博客园
相关推荐

2010-02-24 17:17:04

WCF宿主环境

2009-12-21 15:33:07

WCF集合元素

2009-12-22 10:16:54

WCF服务状态

2009-12-21 10:27:52

WCF基本概念

2010-03-01 16:25:07

WCF体系架构

2010-03-02 13:14:38

WCF MSMQ队列

2010-03-01 14:50:30

WCF行为类型

2010-03-01 18:04:35

WCF配置绑定

2010-02-25 14:46:31

2010-03-02 11:10:43

WCF标准终结点

2009-12-21 16:52:02

WCF序列化

2010-03-01 16:41:04

WCF数据表

2010-03-02 16:22:31

WCF状态应用

2009-12-21 14:37:14

2010-07-12 09:43:38

Symbian开发

2009-12-29 18:29:09

Silverlight

2010-03-01 17:57:11

WCF缓存机制

2010-02-02 10:33:22

C++引用

2010-02-02 15:30:05

C++ include

2010-02-01 17:24:41

C++循环语句
点赞
收藏

51CTO技术栈公众号