浅谈用SQL实现工作流的并发控制的论文.docVIP

浅谈用SQL实现工作流的并发控制的论文.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅谈用SQL实现工作流的并发控制的论文.doc

  浅谈用SQL实现工作流的并发控制的论文 论文关键词:工作流 并发控制 sql 数据约束 任务约束   论文摘要:工作流技术在信息系统的应用中,并发控制机制的设计是经常要面临的问题。给出一种基于将工作流中数据和任务分离的工作流并发控制机制,在保证工作流正确性的前提下,引入“数据约束”和“任务约束”的概念来提高工作流的工作性能和降低工作流设计的复杂性,并用数据库中sql语言强有力的约束控制加以实现。   1引言   工作流是针对工作中具有固定程序的常规活动而提出的一个概念。通过将工作活动分解成定义良好的任务、角色、规则和过程来进行执行和监控,达到提高生产组织水平和工作效率的目的。一个工作流包括一组活动及它们的相互顺序关系,还包括过程及活动的启动和终止条件,以及对每个活动的描述川。工作流模型建立的目的是为了实现业务过程自动化和用计算机来执行,这就要求工作流模型不仅能够描述活动及其他们之间的相互连接关系,而且需要定义其他许多的信息,如组织、数据、资源等,同时对工作流模型的准确性有很高的要求。   目前的工作流业务系统对系统运行过程中出现的并发访问和异常错误的解决还存在一定的缺陷。工作流实例在运行过程中,有可能出现多个活动同时访问共享资源的情况,多个活动在数据操作上会相互重叠。为了保证系统能够正常运行,必须进行并发控制(concurreneycontrol),防止出现“脏数据”,等现象。   在本文中,我们将主要讨论如何用sql来实现工作流的并发控制,防止出现“脏数据”等现象。解决这个问题的核心是如何让这些独立的活动能够拥有自己独立的数据,而在某个活动需要访问共享资源而又正被其他活动所拥有时,让其等待。.并发控制的实现必须有两个最基本的条件限制:①每个活动拥有共享资源的时间应该最短;②每个活动应该拥有尽可能少的共享资源[4l。同时,我们在寻找解决方法时还应考虑以下两个方面:①不能过多地增加工作流设计的难度;②尽可能地利用现有数据库系统所提供的服务功能来实现。   为了达到以上的要求,我们引入类似传统“锁”机制的“约束”机制来实现。这里的“约束”是一种临时的、强加在数据项(数据约束)或者任务状态信息(任务约束)上的一致性限制。数据约束主要控制数据项的修改,而任务约束主要控制任务中各个活动间的执行顺序,因而工作流中各活动间的相互关系可以通过控制对数据库的访问和限制各个活动的执行顺序来体现,而这两者的限制均能通过数据库管理系统(dbms)中的sql查询语言来实现。   2一个工作流实例   工作流根据所实现的业务过程可以分为管理型工作流(adillinistrative(advancedtransaetionmodel)方法、transaetionaltaskinte脚tion、语义锁(semantieloeking)和冲突说明(conflietspeeifieation),但是工作流的形式过于多种多样,单一的一种解决方法没法满足具体的某一工作流的需要,因而我们在项目开发的实际过程中采用了一种基于将数据和任务分开的方法,类似于操作系统中进程主体与系统资源分开,而进程主体应获得其最小资源的思想。它综合考虑了以下3个因素:①工作流执行的正确性;②工作流的系统性能;③一工作流模型建立和管理的复杂度。   我们分析前面两种需要串行化操作才能完成的情况,整个过程基本上都是通过不停地访问数据库来实现的,其中最主要的就是对数据库的读写操作。我们把一组不可分割的数据库操作视为一个原子操作,同时我们把任务或活动主体完成这一操作需要访问的共享资源视为临界资源。多个任务访问和拥有这些资源必须满足“空闲占有,忙则等待”的原则。   为了将数据和任务分开,同时能保证数据库中数据的正确性、有效性和一致性,并且能满足数据库中自定义的各种完整性约束规则,我们引入了“数据约束”和“任务约束”。我们的思想是运用类似于典型的并发控制中的“锁”约束来实现数据库的完整性和一致性约束,但是它又不同于“锁”约束。我们引入的“数据约束”和“任务约束”是一个短时间的约束控制,他们随着工作流实例的启动而创建,随着工作流的结束而撤销。另一方面,“数据约束”随工作流或者任务实例的输入参数的不同而不同,不同的实例将建立不同的“数据约束”和“任务约束”。“数据约束”主要是为了保证正确的数据输入能够得到正确的数据输出,同时实现数据库中的各种静态约束、动态约束和自定义约束,而“任务约束”是为了保证工作流中各个任务能够按照他们之间的相互关系、前后顺序正确地执行。在上述工作流中,我们将实现某一活动执行的正确性和控制多个活动间的执行顺序作为两个目标来分开处理。譬如在库存检查中,“数据约束”是为了保证满足库中的物资数量不能低于最低数量的限制,而“任务约束”是为了保证领料单只有在执行完库存

您可能关注的文档

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档