成品油存量数据交换系统中WCF的应用

来源 :软件 | 被引量 : 0次 | 上传用户:xiaoqiudyy1988
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:Windows Communication Foundation (WCF)是Microsoft为构建面向服务的应用提供的分布式通信编程框架,是.NET Framework 3.5的重要组成部分。使用该框架,开发人员可以构建跨平台、安全、可靠和支持事务处理的企业级互联应用解决方案。本文中对WCF进行了一定的研究和介绍。
  关键字:WCF ;分布式 ;跨平台; 成品油 ;交换
  中图分类号:TP311.52 文献标识码:A DOI:10.3969/j.issn.1003-6970.2013.08.004
  本文著录格式:[1]宋明.成品油存量数据交换系统中WCF的应用[J].软件,2013,34(8):10-12
  0引言
  WCF(Windows Communication Foundation,Windows通信基础)是微软基于 SOA(Service-Oriented Architecture,面向服务构架)推出的.Net 平台下的框架产品,它代表了软件架构设计与开发的一种发展方向。
  1 WCF综述
  1.1 WCF的概论
  WCF是微软分布式应用程序开发的集大成者,它整合了.Net平台下所有的和分布式系统有关的技术,例如.Net Remoting、ASMX、WSE和 MSMQ。
  以通信(Communiation)范围而论,它可以跨进程、跨机器、跨子网、企业网乃至于 Internet;
  以宿主程序而论,可以以 ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作为宿主(Host)。
  WCF可以支持的协议包括 TCP,HTTP,跨进程以及自定义,安全模式则包括 SAML,Kerberos,X509,用户/密码,自定义等多种标准与模式。即在WCF框架下,开发基于 SOA的分布式系统变得容易了,微软将所有与此相关的技术要素都包含在内,掌握了 WCF就相当于掌握了叩开 SOA大门的钥匙。
  1.2 WCF的体系结构
  如上图所示,WCF分为四层体系结构。
  ◆WCF体系结构之协定:协定定义消息系统的各个方面。
  ◆WCF体系结构之服务运行时:服务运行时层包含仅在服务实际运行期间发生的行为,即该服务的运行时行为。
  ◆WCF体系结构之消息传递:消息传递层由通道组成。
  ◆WCF体系结构之承载和激活:服务的最终形式为程序。
  1.3 WCF的运行机制
  WCF的体系架构是基于一种拦截机制来实现的,负责传递和拦截消息的组件为通道,在客户端发出对服务端服务的调用时,首先会通过一个服务代理对象,将调用方提供的对象序列化到消息中,然后该消息则通过通道进行传递。通道不只是包括一个,而是多个通道对消息进行处理,包括传输、消息编码、管理会话、传播事务等,但最底层的通道总是传输通道。这些通道的构成形成了一个通道堆栈。由于对象已经被序列化,因而此时通道传递的消息可以跨进程或机器进行传递,利用传输通道传递到服务端。服务端的构成与客户端基本相似,仍然是通过通道栈中最底层的传输通道接收消息,然后解析消息编码,并一层层地往上传输。在服务端的通道栈之上,则是一个分发器(Dispatcher,或者说是调度器),它会首先对消息进行检查,然后选择一个客户端要调用的操作。在这个过程中,消息会被反序列化。
  由于WCF通过通道的方式传递消息,整个通道同时担当了侦听器和拦截器的功能,它可以根据服务的定义,在方法执行的前或后执行不同的操作,例如事务、会话管理、安全等。这些操作在WCF中,大多数都可以以Attribute的方式应用到服务契约上,这样的实现方式,就类似于采用了AOP(面向服务编程)的方法为服务提供了大量的基础功能,有助于简化服务开发者的工作。
  1.4 WCF的优势
  WCF是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案,且能与已有系统兼容协作。WCF是微软分布式应用程序开发的集大成者,它整合了.Net平台下所有的和分布式系统有关的技术,例如.Net Remoting、ASMX、WSE和MSMQ。以通信(Communication)范围而论,它可以跨进程、跨机器、跨子网、企业网乃至于 Internet;以宿主程序而论,可以以ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作为宿主(Host)。WCF可以支持的协议包括TCP,HTTP,跨进程以及自定义,安全模式则包括SAML, Kerberos,X509,用户/密码,自定义等多种标准与模式。也就是说,在WCF框架下,开发基于SOA的分布式系统变得容易了,微软将所有与此相关的技术要素都包含在内,掌握了WCF,就相当于掌握了叩开SOA大门的钥匙。
  如图1所示,WCF完全可以看作是ASMX,.Net Remoting,Enterprise Service,WSE,MSMQ等技术的并集。
  概括地说,WCF具有如下的优势:
  ◆统一性:
  前面已经叙述,WCF是对于ASMX,.Net Remoting,Enterprise Service,WSE,MSMQ等技术的整合。由于WCF完全是由托管代码编写,因此开发WCF的应用程序与开发其它的.Net应用程序没有太大的区别,我们仍然可以像创建面向对象的应用程序那样,利用WCF来创建面向服务的应用程序。
  ◆互操作性:
  由于WCF最基本的通信机制是SOAP(Simple Object Access Protocol 简易对象访问协议),这就保证了系统之间的互操作性,即使是运行不同的上下文中。这种通信可以是基于.Net到.Net间的通信,可以跨进程、跨机器甚至于跨平台的通信,只要支持标准的Web Service,例如J2EE应用服务器(如WebSphere,WebLogic)。应用程序可以运行在Windows操作系统下,也可以运行在其他的操作系统 。   ◆安全与可信赖
  WS-Security,WS-Trust和WS-SecureConversation均被添加到SOAP消息中,以用于用户认证,数据完整性验证,数据隐私等多种安全因素。
  ◆兼容性
  WCF充分的考虑到了与旧有系统的兼容性。安装WCF并不会影响原有的技术如ASMX和.Net Remoting。即使对于WCF和ASMX而言,虽然两者都使用了SOAP,但基于WCF开发的应用程序,仍然可以直接与ASMX进行交互。
  举个形象的例子来说,现在有三个人,一个只会英文美国人(不会日语汉语)、一个只会日语的日本人(不会英语与汉语),3个人要沟通怎么沟通呢?假如英国人带着一个设备,讲话之后,会自动翻译成汉语与日语,这样的话中国人与日本人就理解英国人讲的是什么了。同样中国人带着设备就可以同日本人与英国人进行沟通了。WCF就好比这个神奇的设备,我只要对着这个设备讲话,不管对方是不是懂汉语,都可以理解我在讲什么。
  2 WCF的实际应用
  2.1 应用项目的背景
  成品油存量数据交换系统是成品油协同监管服务平台的一个子系统。为相关协同单位提供成品油数据交换和统一数据接口的管理。该系统提供标准化成品油交换系统数据服务应用。数据交换管理系统通过WCF 技术,进行外部接口的通信管理,通过开发接口管理模块可以方便的对外部系统进行数据接口推送与配置。
  交换系统重点研究成品油集成数据交换调度机制和成品油集成数据交换技术,为快速准确可靠地完成数据的调度提供基础。研究面向协同相关单位或其他企业的应用系统间的一体化数据调度、中转和交换技术,以适应不同协同单位系统间的复杂环境下的数据交换的需求。
  2.2 技术难点以及解决方案
  2.2.1技术难点
  ◆多个企业的多种信息系统和平台带来的多种数据接口,给数据采集和数据标准化以及数据接口的设计实现带来很大的困难。
  ◆成品油的经营企业种类多、信息化水平高低不一,占成品零售油市场份额4成多、规模较小的相关企业数据难以采集从而导致部署数据采集系统难度大;各企业数据异构性强导致数据的规范化难度大。
  2.2.2解决方案
  WCF涵盖了之前微软推出的所有用于分布式开发的技术,包括Remoting、Web Services、WSE、MSMQ等,并以一种统一的编程模式来实现。WCF好处:WCF既支持具有互操作性的Web服务,也能够实现.NET客户端与.NET服务端的通信,提供了分布式事务的支持,同时在安全性上,它完全遵循了WS-*的标准,此外,它还支持队列服务,可以非常方便地利用消息队列完成异步操作与脱机调用。而这些功能 ,以前的技术都只是部分的实现。WCF同时也使得面向服务编程更加简单而统一了。如果采用旧有的技术,由于各种技术的编程模型完全不一致,使得程序的迁移非常的困难。WCF引入了用通道,它封装了消息的通信细节,例如编码、事务处理、安全等,然后又通过引入绑定的概念,封装了通道的组成顺序与处理细节。最后,引入了独有的Endpoint元素,集成了地址、绑定和契约之间的“三位一体”,以最简单的方式定义和发布服务。
  综上所述,采用WCF技术来实现为成品油协同监管服务平台提供数据接口标准及技术接口的开发。
  2.3 WCF的使用
  2.3.1合约接口的定义
  定义合约接口IInternalService如下所示:
  [ServiceContract]
  public interface IInternalService
  {
  获取油罐变化量
  [OperationContract]
  DataTable GetOilCanVariation(string BeginLastUpdateTime);
  获取油品变化量
  [OperationContract]
  DataTable GetOilVariation(string BeginLastUpdateTime);
  }
  2.3.2实现合约接口的服务类
  实现计算合约接口的服务类InternalService如下如示:
  public class InternalService : IInternalService
  {
  MOCOil.Bll.InternalService bll = new MOCOil.Bll.InternalService();
  获取油罐变化量
  public DataTable GetOilCanVariation(string BeginLastUpdateTime)
  {
  return bll.GetOilCanVariation(BeginLastUpdateTime);
  }
  获取油品变化量
  public DataTable GetOilVariation(string BeginLastUpdateTime)
  {
  return bll.GetOilVariation(BeginLastUpdateTime);
  }
  }
  2.3.3WCF的引用
  当我们把WCF服务发布到服务端,就可以为多种信息系统和平台提供服务了。调用实例如下所示:
  InternalServiceClient is = new InternalServiceClient();
  DataSet ds = is. GetOilVariation("2012-08-12");
  3总结
  在成品油存量数据交换系统中,WCF的使用还有更多需要完善的地方,WCF还有更多的功能等待我们去使用,在今后的系统扩展中,会给我们带来更加方便、快捷的功能。
  参考文献
  [1] 部分资料来源于网络.
其他文献
阐述《小猪佩奇》中蕴含的西方传统文化因素,研究这些传统文化因素在动画中所传递的含义以及它们和当下人们生活的关系。其中选取了牙仙子、幻想朋友、树屋、圣诞节4个具有代
为了保障城市公路交通安全,从源头上遏制车辆超载现象,本文提出了一种基于VPN技术的货运源头超载治理系统的软件设计。该系统整体采用C/S构架,在货运源头企业现场安装有网络
ue*M#’#dkB4##8#”专利申请号:00109“7公开号:1278062申请日:00.06.23公开日:00.12.27申请人地址:(100084川C京市海淀区清华园申请人:清华大学发明人:隋森芳文摘:本发明属于生物技
随着科学技术的发展,影视制作行业发生了很大的改变,技术与艺术相结合,对影视制作人员提出了更高的要求。数字化时代,我国影视制作行业深受大众欢迎和喜爱,对人们的生活影响较大。技术不断升级,艺术展现形式多种多样,数字化技术推动影视制作行业的发展。短视频、自媒体的兴起,使得人们对影视制作技术提出了更高的要求,要满足大众的需求,利用数字化技术改变、丰富影视制作内容。主要分析影视制作中技术与艺术的关系,讲述数
目的探究腹腔镜根治术与开腹手术对结肠癌的对照治疗效果。方法择取于2015年4月—2017年4月我院收治的68例结肠癌患者,通过抽签法分为对照组与研究组,各34例,分别行开腹与腹
Ji TT充分体现了Blending Learning的本质特点,把传统学习方式的优势和E-Learning(即网络化学习)的优势结合起来。Ji TT—Blending Learning理念下的C++课程特色网站突破了时
介绍了柔性自动翻转机构的组成和工作原理,详细分析了柔性弹簧模拟翻转位移的试验方法和变化规律。在此基础上,对翻转机构的输送胶带几何尺寸、运输速度、卷轴圆周驱动力、马
2019年12月以来,新冠肺炎疫情成为我国突发的公共卫生事件,严重威胁人民健康,严重影响各行各业工作的开展。结合科技期刊的工作实际情况,本文对科技期刊如何应对新冠肺炎类紧
ue*M#’#dkB4##8#”专利申请号:00109“7公开号:1278062申请日:00.06.23公开日:00.12.27申请人地址:(100084川C京市海淀区清华园申请人:清华大学发明人:隋森芳文摘:本发明属于生物技
ue*M#’#dkB4##8#”专利申请号:00109“7公开号:1278062申请日:00.06.23公开日:00.12.27申请人地址:(100084川C京市海淀区清华园申请人:清华大学发明人:隋森芳文摘:本发明属于生物技