• 学前教育
  • 小学学习
  • 初中学习
  • 高中学习
  • 语文学习
  • 数学学习
  • 英语学习
  • 作文范文
  • 文科资料
  • 理科资料
  • 文档大全
  • 当前位置: 雅意学习网 > 作文范文 > 正文

    物流信息化建设浅析【企业信息化建设中软件并发控制技术应用浅析】

    时间:2019-04-02 03:17:48 来源:雅意学习网 本文已影响 雅意学习网手机站

      【摘 要】对于那些仅仅允许用户查看数据,或者仅有一个用户可以修改数据的web应用软件,不存在多用户并发冲突的问题。然而对于那些允许多个用户修改或删除数据的web应用软件,则有可能发生一个用户所做的更改与另一个并发用户的更改冲突。在没有任何并发策略的地方,当两个用户同时编辑某一条记录,最后提交的用户的更改将覆盖先提交的用户所作的更改。当设计这样的程序时,选择适当的并发控制技术非常重要。本文介绍了三种并发控制策略:最后更新生效、开放式并发、保守式并发,分析各种控制策略优缺点,以寻求适合企业信息化建设的解决方案。
      【关键词】并发控制;最后更新生效;开放式并发;保守式并发
      
      1、引言
      企业信息化建设最主要就是与数据库打交道,对数据库进行插、删、改、查等操作,难免会发生一个用户所做的更改与另一个并发用户的更改冲突,例如:在没有任何并发策略的地方,当两个用户同时编辑某一条记录,最后提交的用户的更改将覆盖先提交的用户所作的更改;当两个用户同时访问一个页面,一个用户可能更新的事另一个用户已经删除的记录;在一个用户加载页面跟他点击删除按钮之间的时间里,另一个用户修改了这条记录的内容等,当设计这样的程序时,选择适当的并发控制技术非常重要。
      本文介绍了三种并发控制策略:最后更新生效、开放式并发、保守式并发,分析各种控制策略优缺点,以寻求并详细介绍适合企业开发信息化建设的解决方案。
      2、并发控制策略
      2.1 最后更新生效
      最后更新生效是开发默认行为,即如果并发用户修改的是同一条记录,让最后提交的结果生效。最后更新生效虽然在开发时不用进行并发控制策略的设置,但在运行时,会使用户混淆数据。此种方式适合单位范围内用户与角色一一对应的系统,例如方案设计、设备参数采集、生产数据采集等。
      2.2 开放式并发
      开放式并发,数据在更新之前都是可以被其他用户使用的,只有在更新的时候,才锁定记录。更新的时候,对比与查询之初的数据是否吻合,如果不一致,则不运行修改。此种控制方式也可以完全保证数据的完整性,其优点是不会占用其他用户访问该数据的权限,缺点是由于其他用户可能已经更新了这些数据,导致本次更新可能不会完成。开放式并发多以开发人员通过程序本身的业务逻辑来实现。
      2.3 保守式并发
      保守式并发,数据从数据库取出之后,一直处于锁定的状态,其他用户不能获取该数据,直至数据更新完毕,用户才能取出该数据进行操作。此控制方式对于性能和资源占用得很多,由于只能同时有一个用户对数据享用操作权,所以可能会在正常业务中,影响其他用户的处理进程。但此控制方式可以完全保证数据的完整性。该方式可以通过.NET提供的事务机制来实现,前提是数据源需要支持事务。保守式并发主要用于对数据存在激烈争用,或用锁保护数据的成本小于在发生并发冲突时回滚事务的成本,例如订票网站。
      3、企业开发信息化建设中并发控制策略选择及实现
      开放式并发不需要锁定任何记录,会提高性能,因为锁定记录需要附加的服务器资源,也不会为了维护记录锁而与数据库服务器保持持久连接,所以可以在较少的时间内为大量的客户端提供服务。因此在企业开发信息化建设中多采用开放式并发来实现并发控制。
      目前,企业信息化建设中用户的权限是通过角色来控制的,单位范围内用户的角色与岗位是一一对应的,所以,一般情况下不需要采用并发控制,就可以保证数据完整性。但是,也会存在特殊情况,例如,用户在采集数据后,审核人员的审核和采集人员的修改就会产生并发情况,这时候就需要采取措施来控制,一种是通过业务逻辑来实现,例如在数据采集后,如果不提交数据,审核人员不能进行审核,这时采集人员可以进行修改、删除等操作,只有在提交后,审核人员才可以进行审核,这时采集人员就不可以进行其它操作了;另一种是通过开发工具来辅助实现并发控制的。
      下面通过.NET的数据库控件为例,介绍开放式并发策略的实现。在开放式并发模型中,如果当某用户接收到来自数据库的值后,另一用户在该用户试图修改该值之前即将其修改,则认为发生了冲突。
      3.1 创建一个支持开放式并发的数据访问层
      与数据打交道时,把数据访问逻辑从表现层分离开来。这个分开的层被称作是数据访问层,简写为DAL,一般是通过一个单独的类库项目来实现的。
      3.2 创建一个支持启用了开放式并发的DAL的业务逻辑层
      业务逻辑层(BLL)是在数据访问层和表现层之间进行数据交换的桥梁,在一个实际的应用程序中,BLL都是以类库的形式来实现的,每一个BLL类都对应DAL中的一个TableAdapter,它们都从各自的TableAdapter中得到读取、插入、修改以及删除等方法以应用合适的业务规则。然后,通过BLL类访问类型化数据集,给DataRow添加字段级验证,并给BLL类添加业务规则。
      3.3 从ASP.NET页面把原始值和新值传入BLL 方法
      完成了DAL和BLL后,剩下的工作就是创建一个能利用系统中内建的开放式并发逻辑的ASP.NET页面,这部分属于表现层,用户就是通过这个层与数据库打交道的。数据Web服务器控件必须记住它的原始值,并且ObjectDataSource必须同时传送这两套值到业务逻辑层。此外,ASP.NET页面必须加以配置从而适当地处理并发冲突。
      3.4 测试并添加提示信息并且在发生并发冲突时显示
      验证并发冲突是否能够被发现,我们需要打开两个浏览器窗口来访问这个页面,并在页面上进行更改操作,当点击第二个窗口中的更新按钮时导致了一个DBConcurrencyException异常,说明现在有了开发式并发设置。当一个并发冲突出现时,可以用Label控件来捕获异常信息。
      4、结束语
      并发冲突可能存在于所有允许多用户同时更新或删除数据的应用程序里。在企业开发信息化建设中,如果极少面对多个用户同时更新数据,或者不同的用户对数据作出不同的更改,那么并发控制并非必选项。然而,如果时常面对多个用户在线并且对同一些数据进行操作,并发控制可以帮助预防一个用户的更新或删除被另一个用户在不知情的情况下覆盖。
      .NET中的类型化数据集提供了支持开放式并发控制的功能。特别地,发送到数据库的UPDATE和DELETE语句包含了这个表的所有字段,从而确保了仅当该记录目前的值与用户开始他们的修改或更新时的原始值相匹配时,修改或删除才会发生。
      参考文献
      [1] Scott Mitchell,在ASP.NET 2.0中操作数据:实现开放式并发

    推荐访问:浅析 并发 企业信息化 控制

    • 文档大全
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章