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

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

ID:15105325

大小:32.00 KB

页数:5页

时间:2018-08-01

浅谈用SQL实现工作流的并发控制.doc_第1页
浅谈用SQL实现工作流的并发控制.doc_第2页
浅谈用SQL实现工作流的并发控制.doc_第3页
浅谈用SQL实现工作流的并发控制.doc_第4页
浅谈用SQL实现工作流的并发控制.doc_第5页
资源描述:

《浅谈用SQL实现工作流的并发控制.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、浅谈用SQL实现工作流的并发控制  论文关键词:工作流 并发控制 SQL 数据约束 任务约束  论文摘要:工作流技术在信息系统的应用中,并发控制机制的设计是经常要面临的问题。给出一种基于将工作流中数据和任务分离的工作流并发控制机制,在保证工作流正确性的前提下,引入“数据约束”和“任务约束”的概念来提高工作流的工作性能和降低工作流设计的复杂性,并用数据库中sQL语言强有力的约束控制加以实现。  1引言  工作流是针对工作中具有固定程序的常规活动而提出的一个概念。通过将工作活动分解成定义良好的任务、角色、规则和过程来进行执行和监控,

2、达到提高生产组织水平和工作效率的目的。一个工作流包括一组活动及它们的相互顺序关系,还包括过程及活动的启动和终止条件,以及对每个活动的描述川。工作流模型建立的目的是为了实现业务过程自动化和用计算机来执行,这就要求工作流模型不仅能够描述活动及其他们之间的相互连接关系,而且需要定义其他许多的信息,如组织、数据、资源等,同时对工作流模型的准确性有很高的要求。  目前的工作流业务系统对系统运行过程中出现的并发访问和异常错误的解决还存在一定的缺陷。工作流实例在运行过程中,有可能出现多个活动同时访问共享资源的情况,多个活动在数据操作上会相互重

3、叠。为了保证系统能够正常运行,必须进行并发控制(ConcurreneyControl),防止出现“脏数据”,等现象。  在本文中,我们将主要讨论如何用SQL来实现工作流的并发控制,防止出现“脏数据”等现象。解决这个问题的核心是如何让这些独立的活动能够拥有自己独立的数据,而在某个活动需要访问共享资源而又正被其他活动所拥有时,让其等待。并发控制的实现必须有两个最基本的条件限制:①每个活动拥有共享资源的时间应该最短;②每个活动应该拥有尽可能少的共享资源[4l。同时,我们在寻找解决方法时还应考虑以下两个方面:①不能过多地增加工作流设计的

4、难度;②尽可能地利用现有数据库系统所提供的服务功能来实现。  为了达到以上的要求,我们引入类似传统“锁”机制的“约束”机制来实现。这里的“约束”是一种临时的、强加在数据项(数据约束)或者任务状态信息(任务约束)上的一致性限制。数据约束主要控制数据项的修改,而任务约束主要控制任务中各个活动间的执行顺序,因而工作流中各活动间的相互关系可以通过控制对数据库的访问和限制各个活动的执行顺序来体现,而这两者的限制均能通过数据库管理系统(DBMs)中的SQL查询语言来实现。  2一个工作流实例  工作流根据所实现的业务过程可以分为管理型工作流

5、(AdillinistrativeWrkflow)、设定型工作流(AdhoeWOrkflow)、协作型工作流(CollaborativeW6rkflow)和生产型工作流(ProduetionWbrkflow)!,,。在本文中,我们所讨论的工作流是基于生产型工作流,它应用在一个大规模、复杂和异构的环境下,包括一个周期重复的、可预测的复杂过程,同时,它还要接受和处理来自各个层次和各个方面的数据。下面我们简单介绍一下这一工作流的情况。  在图1中所示的工作流是基于一个供电系统内部的物资领料过程。当一份领料单到来时,这一工作流开始启动。

6、领料开票人将领料单中信息输入电子表格同时产生一条新的纪录,接着两个并行任务将被执行:库存检查—5检查库中物资种类和数量是否能够满足需要;计划审批验证—验证该张领料单是否经过相关部门审批。如果上述两个验证均能通过,则确认领料、产生销售清单、结账,最后从仓库中发料。其中每个任务都要涉及到对数据库的读和写操作。    3工作流分解—数据和任务的分离  在图1中所提到的领料工作流中,有两种典型的情况必须加以说明:①在物资管理系统中经常出现多个工作流同时启动,因而开票员将信息输入电子表格的同时必须为每条纪录提供一个唯一且没有冲突的领料编号

7、,但是在这个任务没有结束前,开票员可能会取消操作或者出现其他异常情况,导致工作流没法正常结束。为了保证其领料编号的唯一且不冲突只能采用串行化操作;②假定一领料单己经执行库存检查和计划审批验证两个任务,而且己经完成结账,但是单子中的物资还没有从库中领走,而此时有另一单子也要求领与上一单子相同的物资,但是库中的物资数量只能满足一张单子的要求,如何解决他们两者之间的冲突,从而不至于违反数据库的一致性约束,又不得不要求工作流只能采用串行化操作。  如果不能有效地解决以上的问题,那这一工作流的系统性能将大打折扣,而且根本没法满足现代业务管

8、理系统的要求。典型的解决方法有ATM(AdvancedTransaetionModel)方法、TransaetionalTaskInte脚tion、语义锁(SemantieLoeking)和冲突说明(ConflietSPeeifieation),但是工作流的形式

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。