WCF特性及体系结构

一.特性

1. Microsoft 分布式计算技术的统一性

.NET Framework 的最初版本中包含多种不同的技术,用于创建分布式应用程序。下图列出了每种技术与开发人员采用该技术的主要理由。例如,要构建基本的可互操作的 Web 服务,最佳选择是 ASP.NET Web 服务,即通常所说的 ASMX。要连接两个基于 .NET Framework 的应用程序,有时应当选择 .NET Remoting。如果应用程序需要分布式事务和其他更高级的服务,其创建者一般会使用企业服务,即 .NET Framework 推出的 COM+COM plus 的继任者。要了解最新的 Web 服务规范,如 WS-Addressing WS-Security,开发人员可以构建采用 Web 服务增强(缩写为 WSE,是 Microsoft 对这些新兴规范的初始实现)的应用程序。而要创建基于消息的排队式应用程序,基于 Windows 的开发人员则应使用 Microsoft 消息队

 

  WCF是对于ASMX.Net RemotingEnterprise ServiceWSEMSMQ等技术的整合。由于WCF完全是由托管代码编写,因此开发WCF的应用程序与开发其它的.Net应用程序没有太大的区别,我们仍然可以像创建面向对象的应用程序那样,利用WCF来创建面向服务的应用程序。



2.与应用程序的互操作性
   
由于WCF最基本的通信机制是SOAP,这就保证了系统之间的互操作性,即使是运行不同的上下文中。这种通信可以是基于.Net.Net间的通信,如下图所示:

可以跨进程、跨机器甚至于跨平台的通信,只要支持标准的Web Service,例如J2EE应用服务器(如WebSphereWebLogic)。应用程序可以运行在Windows操作系统下,也可以运行在其他的操作系统,如Sun SolarisHP UnixLinux等等。如下图所示:



3面向服务的开发

设计WCF过程中四项原则 :

共享架构

,而不是类:与旧的分布式对象技术不同,服务仅通过精心定义的 XML 接口与其客户端进行交互。跨越服务边界传递完整的类、方法及全部之类的行为被禁止。

服务具有自主性:服务及其客户端同意它们之间的接口,但相互独立。它们可以采用不同的语言编写,可以使用不同的运行时环境(如 CLR Java 虚拟机),可以运行在不同操作系统上,还可以存在其他方面的不同。

边界是显式的:分布式对象技术 [如分布式 COM (DCOM)] 的目标之一是使远程对象尽可能看上去像本地对象一样。虽然这种方法通过提供一种通用编程模型在某些方面简化了开发,但也同时隐藏了本地对象与远程对象之间不可避免的区别。服务通过使服务与其客户端之间的交互更明显而避免了这一问题。隐藏分布式特性并非目的。

采用基于策略的兼容性:如果可能,决定在系统之间使用哪些选项应取决于基于 WS-Policy 的机制。


td { font-size: 12px; } .commentTextBox { font-family: Verdana; font-size: 13px; } a.blue:visited, a.blue:active, a.blue:link, a.blue:hover { color: blue; } .userData { behavior: url(#default#userdata); }

二.体系结构


协定和说明


协定定义消息系统的各个方面
。 数据协定描述组成某一服务可创建或使用的每则消息的每个参数。 消息参数由 XML 架构定义语言 (XSD) 文档定义,这使得任何理解 XML 的系统均可处理该文档。 消息协定使用 SOAP 协议定义特定消息部分,当互操作性要求对消息的某些部分进行更精细的控制时,消息协定可实现这种控制。服务协定指定服务的实际方法签名,并以支持的编程语 言之一(例如 Visual Basic 或 Visual C#)作为接口进行分发。
策略和绑定规定与某一服务进行通信所需的条件。 例如,绑定必须(至少)指定所使用的传输(例如 HTTP 或 TCP)和编码。 策略包括安全要求和其他条件,必须满足这些要求和条件才能与服务进行通信。

服务运行时


服务运行时层包含仅在服务实际运行期间发生的行为,即该服务的运行时行为。 遏制控制处理的消息数,如果对服务的需求增长到预设限制,该消息数则会发生变化。错误行为指定服务出现内部错误时应采取的操作,例如控制传递给客户端的信 息 (信息过多会向恶意用户提供攻击的机会)。元数据行为控制是否以及如何向外部提供元数据。 实例行为指定可运行的服务实例的数目(例如,singleton 指定只能用单一实例来处理所有消息)。 通过事务行为,可以在失败时回滚已进行事务处理的操作。 调度行为用于控制 WCF 基础结构处理消息的方式。
通过扩展性功能可以自定义运行时进程。 例如,消息检查功能用于检查消息的各个部分,使用参数筛选功能可以根据作用于消息头的筛选器来执行预设操作。

消息传递


消息传递层由通道组成。 通道是以某种方式对消息进行处理(例如通过对消息进行身份验证)的组件。 一组通道也称为“通道堆栈”。 通道对消息和消息头进行操作。 这与服务运行时层不同,服务运行时层主要涉及对消息正文内容的处理。
有两种类型的通道:传输通道和协议通道。
传 输通道读取和写入来自网络(或外部的某些其他通信点)的消息。 某些传输通道使用编码器来将消息(表示为 XML Infoset)转换为网络所使用的字节流的表示形式,或将字节流表示形式转换为消息。 传输通道的示例包括 HTTP、命名管道、TCP 和 MSMQ。 编码的示例包括 XML 和优化的二进制文件。
协议通道经常通过读取或写入消息的其他头的方式来实现消息处理协议。 此类协议的示例包括 WS-Security 和 WS-Reliability。
消 息传递层说明数据的可能格式和交换模式。 WS-Security 是对在消息层启用安全性的 WS-Security 规范的实现。 通过 WS-Reliable Messaging 通道可以保证消息的传递。 编码器提供了大量的编码,可使用这些编码来满足消息的需要。 HTTP 通道指定应使用超文本传输协议来传递消息。 同理,TCP 通道指定 TCP 协议。 事务流通道控制已经过事务处理的消息模式。通过命名管道通道可以进行进程间通信。 使用 MSMQ 通道可以与 MSMQ 应用程序进行互操作。

承载和激活


服务的最终形式为程序。 与其他程序类似,服务必须在可执行文件中运行。 这称为“自承载”服务。
某 些服务(如 IIS 或 Windows 激活服务 (WAS))“被承载”,即在外部代理管理的可执行文件中运行。 通过 WAS,可以在运行 WAS 的计算机上部署 WCF 应用程序时自动激活该应用程序。 还可通过可执行文件(.exe 文件)的形式来手动运行服务。 服务也可作为 Windows 服务自动运行。 COM+ 组件也可作为 WCF 服务承载。
<script type="text/javascript"> </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好消息:基于WCF构建企业级大型分布式SOA架构(中级篇)的源码开放下载了,可以向老师索取或者查看最后一个课时下载 下载即可获得如下大礼包:企业级大型分布式SOA框架源码 + 模板网站实践项目源码 + 框架工具、资料 + 初级篇全套源码、视频 学.Net WCF——当架构师 轻松就业 前途无限 掌握高端技术、迈进高收入行列 .Net都是谁在用?——微软、腾讯、网易、戴尔、当当网、携程、招商银行、中国知网、申通快递、房天下、汽车之家等。微软在软件行业的龙头老大位置没有任何人能够否认,它总是站在开发技术的前沿。如今微软正高举.NET大旗继续向前,他正努力使开发变得更加轻松。 学习目标  1、让学员熟练掌握WCF的核心概念及相关编程技能,对WCF技术有一个全面的、深入的、系统的了解;  2、让学员对SOA架构设计的思想和方式具有初步的认识, 对后期我们将要学习的SOA架构有一个宏观的了解;  3、让学员通过完整的示例的学习, 能够熟练搭建开发环境, 服务构建,服务配置,服务调试、服务单元测试, Restful服务的编写, 客户端代理的编写、各种应用程序中消费使用服务等;  4、通过项目实战让学员达到1-3年工作经验水平。达到.NET软件工程师,.Net/C#研发工程师、中高级工程师等岗位所需技能; 课程简介 专注15年C#/.Net开发、科研,在多个中大型企业中负责过多个中大型项目的架构设计、开发、实施部署,积累丰富的研发及实践经验,为Net学习者快速掌握.Net企业级开发常用技术及架构,录制本视频课程系列(分为初级篇,中级篇,高级篇三大课程),采用实战项目从0开始一步步讲授如何搭建项目架构及分析各技术的优劣,提供系统/示例完整源码(价值高)及详细上课日志,及时为您解惑答疑,让课程价值无限; 无论您是Java、C++、Python还是其它语言的开发者,都可以学习本系列课程,因为这种架构设计思想和方式对任何语言来说是一样的,只是实现的技术、语言不一样而已;纯干货,含金量高,价格实惠,物超所值 ,配套的项目架构源码等均能直接应用于实际项目开发中;        课程特色        1:课程设计循序渐进,讲解细致,通俗易懂,由浅入深, 非常适合自主学习;        2:以PPT为大纲,教学过程示例丰富,强调技术关键点,并且分析透彻;先概念后示例再应用实践;        3:物美价廉,本着知识共享,帮助更多有需求者原则,毫无保留,此外,提供源代码/示例代码+课程资料+课程相关工具; 本课程示例程序解决方案 SOA架构部署(中级篇) SOA架构特色(中级篇) SOA架构解决方案(中级篇) 与SOA架构配合开发的Web实战项目解决方案(中级篇) 教学理念        1:把需要工作的人变成工作需要的人;        2:创设立足学员,突出项目,强化技术,提高能力的教学局面; 注意 1.开发环境VS2015、Eclipse、Sql Server 2008R2; 2.赠送配套资料:详细注释的示例项目源码、详实的讲义等; 3.由初级篇—中级篇—高级篇,建议按顺序一节节学习,一节节理解;从而快速实现架构师之梦;

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值