基于WCF的数据库应用开发

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:hrwhrw
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:在开放网络环境下直接暴露数据库给客户端应用存在着众多的安全威胁。将数据库从开放网络中隔离开,借助WCF将应用所需的数据库操作以数据库服务的方式发布出来;客户端不再直接访问数据库,而是通过服务引用完成数据库操作。从而提高数据库的安全性、消除客户端应用与数据库之间的耦合、增强系统结构的灵活性。通过实际应用开发表明,该方法具有良好的效果。
  关键词: 服务;契约;终结点;SQL Server
  中图分类号:TP319 文献标识码:A 文章编号:1009-3044(2018)17-0017-02
  在数据库应用开发中,一种传统的做法是将数据库暴露给客户端应用。客户端应用程序根据需求直接连接数据库以实现对数据库的各项操作。但当整个系统建立在开放网络环境下时,数据库的安全问题便凸显出来。其主要存在的安全威胁有:漏洞或误操作导致的数据库数据错误、非权限范围内的数据被非法访问、数据库的访问受到攻击、数据库内的数据被非法窃取或篡改等。
  微软的WCF技术允许创建服务,可以跨进程、计算机和网络从其他应用程序访问这些服务。利用这些服务,可在多个应用程序中共享功能,提供数据源,或者抽象复杂进程[1]。对于开放网络环境下的数据库应用,我们可以将数据库从开放网络中隔离开,借助WCF将应用所需的数据库操作以数据库服务的方式发布出来;客户端不再直接对数据库进行访问,而是通过服务引用完成数据库操作,从而提高数据库的安全性、消除客户端应用与数据库之间的耦合、增强系统结构的灵活性。
  综上,在我校《成人高等教育毕业生审核系统》的开发中,最终采用WCF技术对数据库操作及访问进行了开发实现。
  1数据契约的建立
  WCF的服务是以消息交换的方式实现的。在数据库应用中,客户端生成数据操作请求,对应的请求参数会被WCF序列化为XML信息集并捆绑到请求消息中发送到服务端;而服务则将接收到的请求消息中表示输入参数的XML信息反序列化为CLR数据类型,并实现相应的数据库操作,其操作的返回值及输出参数又会被序列化为XML信息集并捆绑到回复消息中发送到客户端。最后,客户端再通过反序列化获得并应用返回结果。而数据契约是声明CLR数据类型与XML信息集之间的转换的一种正式规格说明。
  WCF的数据契约的建立首先通过在相应类或结构上应用DataContract特性,表明类或结构可以被按值封送。对于类或结构中需要序列化的字段或属性成员,还必须应用DataMember特性。例如为了表示系统中的学生实体,我们编写了如下数据契约:
  2数据库访问的实现
  在基于WCF的数据库应用程序开发中,其数据库访问的实现具有极强的灵活性。首先对于数据库应用程序的模式,无论是B/S还是C/S,WCF都没有严格的限制。其次,在基于三层架构的应用开发中,既可以选择将数据访问层DAL作为服务发布,业务逻辑层BLL与UI层则由客户端实现;也可以将业务逻辑层作为服务发布出来,客户端只需要实现UI。最后,在数据库访问技术的选择上,无论是ODBC、LINQ to SQL还是ADO.NET,都可以在WCF中实现。
  本系统采用的是SQL Server數据库管理系统,由于目前的应用需求只局限在Intranet,因此我们选择了基于C/S模式并将业务逻辑层、UI置于客户端,只将数据访问层作为WCF服务发布出来,而数据库的访问技术上我们选择了ADO.NET。为了完成系统各项数据库操作,首先在SQL Server中建立所需要的存储过程,系统的数据库访问实现结构如图1所示。
  数据库的通用基础操作由抽象类DbHelper实现,具体对SQL数据库的支持是通过继承自DbHelper的SqlDbHelper来实现。而最终的数据访问类型GraduatesDA则继承自抽象类DbAccessBase实现。例如GraduatesDA类中通过考生号查询待审核毕业学生的信息的查询操作实现为:
  (1)服务契约的建立
  服务契约是对服务能够提供的操作的描述,是对操作所采用的消息交换方式的描述和消息格式的定义,以便实现跨越服务边界的服务调用。为了完成数据契约的定义,我们需要在相应的接口或类上应用ServiceContract特性,并在需要暴露为WCF契约的方法上显式使用OperationContract特性,使其成为契约的一部分。
  例如,为了描述上述通过考生号查询待审核毕业学生的信息,建立的契约接口如下:
  (2)服务的发布与寄宿
  服务端最终通过终结点将服务发布出来,而客户端对服务的调用则是通过与之相匹配的终结点进行,终结点承载了WCF的所有通信功能。终结点由地址、绑定和契约三要素组成,每个服务至少必须公开一个终结点。终结点的配置既可以以配置的方式实现,也可以以编程的方式实现。
  终结点中的地址表明服务的位置,用于完成服务的寻址。
  终结点中的绑定用于定义服务的通信方式。绑定是对服务之间的通信方式的特征的封装,包括传输协议、消息编码、通信模式、通信的安全要求等。本系统在绑定的配置选择了基于TCP作为传输协议的NetTcpBinding,其对应的编码格式为Binary,默认使用点到点的Transport安全。
  WCF的服务是驻留在Windows进程中实现的,这种方式被称为寄宿。用于实现寄宿的进程可以由IIS或WAS提供,也可以是某个特定的应用程序提供。基于IIS寄宿所具备的自动化进程激活与关闭、自动化进程回收等优点,我们选择了IIS 7.0作为服务的寄宿方式。服务的终结点、行为及行为扩展等均配置在位于Web应用项目目录下的Web.config中。
  IIS默认使用的是HTTP协议,为了实现对NetTcpBinding的支持,需要对IIS 7.0进行配置以完成对Net.Tcp协议的监听绑定。
  4客户端实现
  系统客户端的开发基于WPF完成,对于WCF服务的引用,一种最简单的方式在项目内通过添加服务引用的方式实现。然后基于引入的等效服务契约接口,创建单独的类型来封装所有的对服务端的服务调用,实现业务逻辑层及UI层即可。
  5结语
  通过实际开发应用,基于WCF的数据库操作及访问的服务发布,能够将数据库从开放网络中隔离出来,提高了数据库的安全性,消除客户端应用与数据库之间的耦合,并能很好地适应未来系统结构改变的需求,增强了系统结构的灵活性。
  参考文献:
  [1](美)Karli Watson.C#入门经典[M]. 6版.北京:清华大学出版社,2014.
  [2](美)Juval L?wy,Michael Montgomery. WCF服务编程 [M]. 4版.武汉:华中科技大学出版社,2017.
  [3]蒋金楠. WCF全面解析(上册) [M].北京:电子工业出版社,2012.
  [4]蒋金楠. WCF全面解析(下册) [M].北京:电子工业出版社,2012.
  [5](美)Steve Resnick. WCF核心技术[M].北京:人民邮电出版社,2009.
  [6](美)Christian Nagel. C#高级编程[M]. 9版.北京:清华大学出版社,2014.
  [7](美)Matthew MacDonald.WPF编程宝典 [M]. 4版.北京:清华大学出版社,2009.
  [8](美)刘铁猛. 深入浅出WPF [M].北京:中国水利出版社,2010.
  [9](美)Mark Michaelis. C#本质论 [M]. 2版.北京:人民邮电出版社,2009.
  [10](美)Erik Freeman. Head First设计模式[M].北京:中国电力出版社,2007.
其他文献
近年来,我市不少苹果园的落叶病、腐烂病、红点病、黑点病、康氏粉蚧、螨类和潜叶蛾等病虫危害有上升趋势。其原因是多方面的,其中,忽视春季清园是重要原因之一。春季及时清园,降
<正>【裁判要旨】治安管理处罚法第七十条规定中的"赌资较大、情节严重",在性质上属于不确定法律概念,其实质是授予公安机关行政处罚的自由裁量权。江苏省公安厅《关于赌博违
近年来,内镜逆行胰胆管造影术(ERCP)已成为胃肠和胆胰疾病的主要治疗方法之一。我院在诊断性ERCP的基础上,开展了内镜下乳头肌切开取出术、胰胆管引流术、胆管内支架置入及胆总
目的探讨重组牛碱性成纤维细胞生长因子处理全脱位牙再植的临床效果,寻找有利于全脱位牙再植后愈合的方法。方法收集了37例全脱位牙病例(57颗)进行观察,实验组在常规处理的基
目的探讨达美康缓释片在老年2型糖尿病中的应用价值。方法达美康缓释片(30~60)mg/日,一次服用.观察治疗前后的空腹血糖、餐后2小时血糖、糖化血红蛋白,空腹胰岛素及体质指数等指标,疗
2016年3月28日最高人民法院、最高人民检察院《关于办理贪污贿赂刑事案件适用法律若干问题的解释》规定了影响受贿罪定罪量刑的八种特定情节,并赋予它们在一定数额基础上"降
云平台为高校教学提供完善的软件交互服务,基于云平台构建的教学系统在很大程度上给学生提供了更加广泛的学习空间,不仅培养学生的自主学习能力,同时有利于教师进行多元化教
本文在探讨太原市党员干部理论武装工作存在的主要问题的基础上,有针对性地提出了强化和改进的对策建议。第一,深刻认识党员干部理论武装的重要性、必要性;第二,培养党员干部
目的:研究茵栀黄口服液在免疫性肝损伤中的作用。方法:实验分为6组,即空白(生理盐水)、模型(生理盐水)、联苯双酯(150mg·kg-1)及茵栀黄口服液高、中、低剂量(30、20、10mL·
近年来,随着国内外教育工作者对趣味教学的研究越来越深入,其优势也逐渐显著。对小学生而言,在英语教学中是否使用趣味教学模式对学生的学习积极性、学习主动性和学习方法的