WCF从理论到实践(2):决战紫禁之巅

转载 2011年01月12日 10:22:00

本文的出发点

通过阅读本文,能解决如下问题:

  1. WCF与以往的分布式技术有何区别?
  2. WCF 在安全性方面做了哪些改进?
  3. WCF在性能方面有那些改进?
  4. WCF开发模型和以往的其他分布式技术有何区别?

     

本文适合的读者

有过分布式开发和SOA相关实施经验的开发人员

 

WCF与以往的分布式技术有何区别?

在上篇文章 WCF从理论到实践一:揭开神秘面纱 中曾经阐述过WCF的前生今世,说的比较概括,本文详细的说明WCF和以往的分布式技术的区别,目的是让大家更详细的了解WcF的应用场合,为日后系统的架构作铺垫。首先先看下面这张对比表格

WCF与其他分布式技术对比表

 

Xml Web Service

.Net Remoting

Enterprice Service

WSE

MSMQ

WCF

跨平台

       

.Net与.Net通讯

 

     

分布式事务

   

   

安全可靠性

     

 

消息队列

       

:  

上面的表格参考了Bruchzhang文章中的对比图,原文地址: http://www.cnblogs.com/wayfarer/archive/2006/04/05/367474.html

从表格中我们可以看出,WCF似乎等于前面几项技术之和,但事实并非如此,它既整合了原来的多项技术,而且拥有着自己得天独厚的优点,如下

  1. 统一性(Integration)
  2. 互操作性
  3. 安全可靠(Secure and Reliable)
  4. 兼容性


WCF 在安全性方面做了哪些改进?

为了保证数据通讯的安全,WCF提供了三种保护措施:1)机密性(Confidentiality)2)完整性(Integrity) 3)可验证性(Authentication),这三种措施联合起来被称为CIA。并且这些措施在WCF中是默认支持的。机密性能保证传输的数据是经过加密的,不被非法监听(eavesdrop),而完整性利用数字签名技术防止数据在传输过程中被注入(injected)或篡改(tampered),而验证(Authentication)可以采用灵活的策略来处理达到的客户端请求,比如用户名密码验证,客户端证书验证等。为了显示WCF在安全性方面的特点和优点,我制作了演示程序:Security_Compare方案,这个方案主要通过对比wcf和xml web service的消息来表现wcf在安全方面的改进,工程清单如下:

ProjectName(项目名称)

Remark(备注)

Wcf

WCF的服务端程序,默认创建,功能未经修改

WcfClient

WCF程序的客户端,用于调用Wcf

WebService

Xml Web Service服务程序,完成功能和Wcf一样

WsClient

是Xml Web Service的客户端,用于调用WebService

为了跟踪Web Service和WCF的消息,我们还需要了解一下两个工具:

  1. Microsoft SOAP Toolkit Version 3 中的 Trace Utility
  2. tcpTrace

原来一直用Trace Utilty来跟踪xml web service的消息报文,非常好用,它能按包显示出Soap信息,看起来也非常方便。有关它的消息,请从http://www.microsoft.com/downloads/details.aspx?FamilyId=C943C0DD-CEEC-4088-9753-86F052EC8450&displaylang=en 上下载SOAP Toolkit 3.0,安装后,便出现了这个工具,在跟踪xml web service的消息报文的时候,这个工具很好用,但跟踪wcf的报文却不行,能截获到数据,但每个报文都是空的,可能也和wcf报文是经过加密的有关系吧, 搜索了一下,在artech的blog中发现这么一篇文章:[原创]我的WCF之旅(9):如何在WCF中使用tcpTrace来进行Soap Trace,解决了我不能跟踪wcf消息报文的难题,他也提到Trace Utilty不能跟踪wcf,同时建议大家使用tcpTrace,并且说明了使用方法,对tcpTrace不熟悉的同学可以到他的blog上学习,很实用,我在这里就不再赘述。

经过我的跟踪,我分别将Xml web Service的消息log到ws.txt中,将wcf的消息log到wcf.txt中,您可以从下面的本文相关文件下载中获取这两个文件,观察二者在消息上的不同。用于演示的示例解决方案您也在相关文件下载中获得。

 

WCF在性能方面有那些改进?

大家都知道,越复杂,结构层次越多的框架一般效率也越低,WCF是以往其他分布式技术的集成者,它结构相对复杂,且由于默认支持安全传输,在性能上应该不如Xml Web Service技术,更不用和.Net Remoting等比较,这是一个有框架设计经验和架构师们都明白的简单道理,但是事实怎么样呢?wcf比xml web service性能到底是高还是底,低要低多少?这些问题很值得大家的研究和讨论,其实已经有人在此方面做了很详细的对比,msdn上便有一篇专门介绍此方面知识的文章: WCF Performance Comparison ,对wcf性能感兴趣的同学,可以到这文章中学习。很详尽。限于条件的限制,我这里只在我一台机器上作一个简单的对比,仅供参考。分别测试循环1000次对wcf和xml web service相同功能方法的调用,得到如下的数据:
 

 

WCF

Web Service

第一次

9523ms

7561ms

第二次

9480ms

7465ms

第三次

9508ms

7708ms

第四次

9487ms

7900ms

 

WCF开发模型和以往的其他分布式技术有何区别?

WCF不仅仅在功能上集成了以往的分布式开发技术,而且在编程模型中充分吸取原来技术的优点,如xml web service的声明性编程(declareable),和.net remoting中的配置(configuration)和wse中的安全策略声明性配置方法,这样wcf虽然功能强大,而且学习简单,便于推广。在vs2008中还集成了WCF Test Client,开发服务的时候,甚至不需要再开发测试客户端就能用WCF Test Client来进行调用,简单之极,示例程序更是无需更改以行代码,便可以运行。

上面这些是说了wse编程的简单易学性,我总结出来,主要包括以下几种特性

  1. 基于声明性编程模型
  2. 充分利用配置来实现框架的灵活。
  3. 使用配置的同时,仍保留代码编程的模型,使得框架更加丰富,便于控制。
  4. 默认的CIA支持,极大地简化了安全控制

 

相关示例文件

  1. 安全对比示例解决方案Security_Compare: /Files/jillzhang/Security_Compare.rar
  2. 跟踪soap消息的工具tcpTrace: /Files/jillzhang/tcpTrace.rar
  3. 安全对比示例跟踪结果: /Files/jillzhang/wcf.txt  ,   /Files/jillzhang/ws.txt
  4. 性能测试解决方案Perfermence_Compare: /Files/jillzhang/Perfermence_Compare.rar

 

示例程序和本文对比测试的平台依据

windows xp sp2 + visual studio.net 2008 rtm

 

参考资料

 

 

 

作者:jillzhang
出处:http://jillzhang.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

相关文章推荐

滨湖区合肥鸟巢翻新展现

有人提出,问道外挂刷道,发展“绿色金融”任重道远,天龙八部2挂机脚本。银行业应加大金融翻新力度……...要害字:竞技场⑧:融侨天骏VS融新华・银行行长论坛房周刊:滨湖大涨滨湖区合肥鸟巢立异展现肥商品房...

Npoi导出word(Peanuts)

Npoi导出word,和并列以及设置列的样式
  • mt122
  • mt122
  • 2015-10-05 22:16
  • 3369

MVC通过NPOI.dll导出excel、word文档

1.首先项目添加并引用:NPOI.dll    2.控制器引用NPOI:           using NPOI.HSSF.UserModel;           u...

NPOI创建docx表

NPOI已出现一段时间了,目前版本2.0 Beta 2 [v2.0.5],网上关于NPOI操作xlsx文章较多,而关于docx的几乎没有,尽管NPOI对于Word还不稳定,经过一阵捣鼓后终于实现了表的...
  • gltide
  • gltide
  • 2013-12-19 15:49
  • 7130

Java POI通过模板方法生成word文档

大家可能看过另一篇博客,这个是博客地址点击打开链接 里面说到使用模板的方式生成word文档,但是给出的代码并没有起效,这里我稍作了修改,这个是word文档模板方法操作工具类: package util...

什么是Web 2.0

文字太多请大家请点击超链接:什么是Web 2.0

NPOI导出数据到Word

以前的项目都是导出数据到Excel中,这个对于NPOI来说,技术是比较成熟的,但是导出到Word的,就差一些。 刚好手头的项目需要导出一些数据到Word中,基于对NPOI导出到Word的认知是一片黑...
  • yw1688
  • yw1688
  • 2016-07-29 18:30
  • 2645
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)